FTP(File Transfer Protocol)는 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능
FTP에 사용되는 Port 번호 // 각 채널이 독립적으로 동작
- 데이터 포트[20] : *데이터 연결을 위해 사용
- DTP(Data Transmission Process) : 데이터를 송/수신하는 역할
- 명령 포트[21] : *제어 연결을 위해 사용(USER, PASS, GET 등 FTP 명령을 FTP 서버에 전송하기 위한 포트)
- PI(Protocol Interpreter) : 제어 명령 송/수신하는 역할
* 제어 연결: 클라이언트에서 서버로의 명령과 응답을 위한 연결, 전체 FTP 세션 동안 계속 연결 상태 유지
* 데이터 연결: 파일이 전송될 때 생성되는 데이터 연결, 20번 혹은 1024 이후 포트 사용, 각 파일 전송 때마다 설정 되며 전송이 완료되면 폐쇄
FTP 응답 코드
FTP 명령 | FTP 응답 코드 |
|
|
FTP 연결 종류
- Active Mode(능동) | 서버가 21번, 20번 포트 사용
FTP 클라이언트의 기본 값
클라이언트에서 21번 포트로 접속하여 제어 채널을 생성
데이터는 서버에서 클라이언트로 접속하여 데이터 전송
*방화벽이 설치되어 외부에서 접속을 허용하지 않아도 FTP 접속은 가능(제어 채널 연결, 데이터 채널 연결 불가)
동작방식
- 클라이언트가 21번 포트로 연결 설정하여 제어 채널을 생성
- 사용자가 파일 목록을 보기 위해 "ls" 명령을 입력하면 FTP 클라이언트는 사용할 임시 포트(1024번 이상)를 결정
- FTP 서버에게 결정한 포트 번호를 EPRT 명령을 사용해 알린 후, 서버는 클라이언트가 알려준 포트(1024번 이상)로 연결을 설정
- 데이터 채널을 생성하고, 그 채널을 통해 데이터를 송신한 후, 데이터 채널 연결을 종료
- Passive Mode(수동) | 서버가 21번, 1024번 이후 포트 사용
클라이언트에서 21번 포트로 접속하여 제어 채널을 생성
데이터 채널도 클라이언트에서 서버로 접속하여 데이터를 전송
동작방식
- 클라이언트가 21번 포트로 "EPSV/PASV"명령을 서버로 보내 제어 채널을 생성
- 사용자가 파일 목록을 보기 위해 "ls" 명령을 입력하면 FTP 클라이언트는 수동 모드로 연결하기 위해 PASV 명령을 전송하고,이 명령을 받은 FTP 서버는 사용할 임시 포트(1024번 이상)를 결정하여 클라이언트에게 알려 줌
- 클라이언트는 FTP 서버가 알려준 포트(1024번 이상)로 연결을 설정하여 데이터 채널을 생성
- 데이터 채널을 통해 데이터를 송신한 후, 데이터 채널 연결을 종료
FTP NAT/Firewall 설정
- NAT와 방화벽은 외부에서 내부로 들어오는 모든 연결을 거부, 내부에서 외부는 자유
- FTP에선 명령 및 데이터 연결이 분리되어 있기 때문에 데이터 연결은 NAT/방화벽에서 쉽게 차단 될 수 있음
문제가 되는 경우들
- Active 모드에서 클라이언트 측의 NAT/방화벽이 설치된 경우 => Passive 모드를 사용해 문제를 해결
- Passive 모드에서 서버 측의 NAT/방화벽이 설치된 경우 => Active 모드를 사용해 문제를 해결
- 서버, 클라이언트 양쪽에서 NAT/방화벽이 설치된 경우 => NAT/방화벽에서 FTP/프록시를 운영
익명 FTP
- 계정이 없는 사용자가 서버 자원에 한정된 접근을 할 수 있는 권한을 제공
- 기술지원, 고객지원, 파일 배포등을 하고자 하는 단체에서 사용
- 접속할 때, 아이디로 [anonymous]란 단어를, 패스워드로 [이메일 주소]를 사용할 수 있음
- 이때 입력한 비밀번호는 로그 기록용
FTP 서버 로그인 과정
- FTP 클라이언트는 서버 호출 USER와 PASS 명령으로 사용자 ID와 패스워드를 입력
- FTP 서버는 로그인 성공시 응답코드 230번으로 FTP 클라이언트에게 전송하여 로그인 성공을 알림
- FTP 서비스 운영
- Unix/Linux에서 사용자별로 FTP Server에 접근 제어를 하려면 /etc/ftpusers에 등록함
- Window에선 FTP Server를 만들려면 IIS가 설치, Third Party 프로그램으로 간이 설정 가능
'정보보안 > 정보보안 기사' 카테고리의 다른 글
WebHacking - OWASP Top 10(2019.ver), 웹 보안 (0) | 2022.04.19 |
---|---|
이메일 보안 기술 (0) | 2022.04.15 |
Network - Transfer Layer (0) | 2022.04.13 |
FTP 보안 위협 및 대책 (0) | 2022.04.13 |
FTP - TFTP (0) | 2022.04.13 |