회사에서 공부하면서 꼭 알아야하는 부분 다시 공부할 겸 정리했다
꼼꼼히 짚고 넘어가야지~
FTP(File Transfer Protocol)
인터넷을 통해 한 컴퓨터에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과, 그런 프로그램을 모두 일컫는 말
- 원격 host로 파일을 송수신하는 protocol (id, pw로 원격 host에 접속)
- Client-Server model (즉, 내 컴퓨터에 Client, 호스트 Server가 파일을 송수신할 수 있다)
- FTP server의 Port Number는 21이다
- 익명으로 엑세스할 수 있는 FTP도 존재한다
- FTP 서버에 접속할 때 입력하는 사용자 계정 및 암호 등의 정보나 파일 전송 명령 및 결과 등은 데이터 제어용 연결에서, 이후 실제 파일 송수신 작업은 데이터 전송 연결에서 처리된다
- FTP Client 프로그램은 여러 파일을 연속으로 송수신해야 하기에, Server와의 지속적인 응답 메시지 전송을 통해 연결 상태(세션)을 유지한다
- FTP에는 서비스 요청 및 결과, 통보를 알리기 위한 명령 포트와 실제로 파일을 전송하기 위한 데이터 전송 포트가 존재한다 (신호/명령 제어 21번, 데이터 전송 20번)
- Client측은 제어 연결을 통해 id, pw 와 명령을 전송한다 -> Server측은 명령을 받은 TCP data connection을 초기화한다 -> 하나의 파일 전송이 끝나면 data 연결이 close된다 -> 다음 파일 전송을 위해서는 새로운 TCP connection을 생성한다
1) Out of band (Active mode)
파일을 전송하는 Connection과 제어를 위한 Connection을 다르게 하는 것
21번 포트번호로 접속을 제어하고 파일을 전송할 때에는 20번 포트를 사용하는 방식 (Active mode)
21번은 계속 유지되지만 20번은 파일을 주고 받을 때만 연결된다
2) Passive mode
Active mode에서 Server가 Client에 접속을 시도하기 때문에 클라이언트의 방화벽이 서버의 접근을 차단하면 FTP가 정상적으로 동작하지 않는다 ->그래서 Passive mode 등장
20번 포트번호 대신 1024번 이후로 임의의 포트를 이용하는 방식이다
Passive mode로 동작하기 위해서는 FTP Server와 Client 양쪽에서 Passive mode를 지원해야하는데 대부분 이 모드를 지원한다
3) 익명 계정
사용자 계정 및 암호이 필요없는 공개형 FTP형 Server의 경우 하나의 공용 계정을 통해 모든 사용자가 간편하게 접속할 수 있도록 한다
Anonymouse 라는 계정에 자신의 이메일 주소를 암호로 입력하면 접속 가능
SFTP
ssh 방식을 이용하여 안전하게 암호화된 구간에서 FTP 기능을 이용할 수 있다
- 사용하는 포트는 FTP포트(기본 포트21)이 아닌 SSH 접속시 사용하는 포트를 사용하고, SSH 접속 계정으로 로그인할 수 있는 FTP이다
- 즉, FTP의 형태를 가지고 있지만 그 안에 내용물은 SSH를 이용해서 연결을 하는 것이 SFTP인 것이다
telnet(teletype network)
인터넷, 로컬 영역 네트워크 연결에 쓰이는 TCP/IP 기반의 네트워크 프로토콜
- 프로토콜의 클라이언트 일부 기능이 추가된 소프트웨어를 말한다
- 사용자로써 로그인해서 부여된 권한에 따라 데이터 접근 또는 프로그램 실행이 가능
- 대표적인 telnet client로는 Putty가 있다
- 바이트 스트림 형식으로 주고받아서 정보노출 위험이 크다
SSH(Secure SHell)
네트워크를 통한 원격 호스트 연결 과정을 보호하기 위해 설계되었다
- 강력한 인증방법을 제공하거나 보안통신 기능을 제공한다
- 다양한 암호화 기법을 사용하므로 통신이 노출되어도 암호화된 문자로 보여진다 (암호화 비트를 높일 수록 네트워크 대역폭을 더 많이 사용하는 부작용이 있다)
- 기본 포트 22번
- IP스푸핑을 방지하기 위한 기능 제공
- 원격 호스트 엑세스에 대해서는 다양한 설정을 통해 보안성을 더 강화할 수 있음
- DES, RSA 등 고급 암호화를 통해 통신한다