[FTP(File Transfer Protocol) 란?]
• 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 프로토콜
• 20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답 등 제어 정보를 위해 사용된다.
• 비밀번호, 데이터 전송 연결이 평문으로 전송됨
[FTP 접속 시 확인 설정]
- /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사
- /etc/ftpusers에 사용자 id가 있으면 거부
- /etc/shell에 등록되지 않는 쉘을 사용하는 유저는 거부
[FTP 로그 저장]
/var/log/xferlog : FTP 관련 로그
[FTP 연결 Mode]
• Active Mode- FTP 클라이언트의 기본 값.
서버에서 제어 포트로 21번 포트 / 데이터 전송으로 20번 포트 사용
- 동작 방식
(1) 클라이언트는 서버의 21번 포트로 연결하여 제어(Control)채널을 생성
(2) 사용자가 파일 목록을 불러오는 명령(ls)을 입력하면 클라이언트는 1024번 이상의 임시 포트를 결정하여 서버에게 전달(PORT 명령)한다.
(3) 서버는 클라이언트가 알려준 포트로 연결을 설정하여 데이터채널을 생성(4) 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료
• Passive Mode
- 서버에서 제어 포트로 21번 포트 / 데이터 전송으로 1024번 이상의 포트 사용
- 동작 방식
(1) 클라이언트는 서버의 21번 포트로 연결하여 제어채널을 생성
(2) 사용자가 파일 목록을 불러오는 명령(ls)을 입력하면 클라이언트는 수동모드로 연결하기 위해 PASV 명령을 전송하고 서버는 1024번 이상의 임시 포트를 결정하여 클라이언트에게 전달한다.
(3) 클라이언트는 서버가 알려준 포트로 연결을 설정하여 데이터채널을 생성
(4) 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료
* Actvie Mode 에서는 “클라이언트가 서버에 접속을 하는 것이 아닌 서버가 클라이언트에 접속을 하는 것”을 확인 가능하며, 클라이언트가 방화벽 뒤에 있으면 Active의 경우 데이터 통신을 "서버->클라이언트" 라 방화벽 정책 허용없이는 접속할 수 없습니다. 반면, Passive Mode의 경우 데이터 통신을 "클라이언트->서버" 라 접속할 수 있습니다.
[FTP 보안 위협 및 대책]
• FTP는 비밀번호, 데이터 전송 연결이 평문으로 되어있어 공격자에게 노출될 수 있다. 때문에 보안을 위해서 보안 소켓 계층(SSL, Secure Socket Layer)을 추가할 수 있다. (SSL-FTP)
• SFTP(Secure FTP) : UNIX에서 제공하는 SSH 프로토콜의 일부분이다. SSH에서 클라이언트와 SSH 서버사이에 보안 연결이 성립되었을 때, 이 연결을 사용할 수 있는 응용프로그램 중 하나이다.
• TFTP 보안
- TFTP는 보안 기능이 전혀 없기 때문에 TFTP가 중요하지 않은 파일에만 접근할 수 있도록 제한하거나 TFTP 서버 근처에 있는 라우터에 보안을 구현하여, 특정 호스트만 서버에 접근할 수 있도록 해야 한다.
- TFTP가 필요한 경우 secure mode로 운영 : chroot 기능을 이용한 것으로, 지정 디렉터리를 최상위 디렉터리로 지정하여 상위 디렉터리로 접근할 수 없도록 제한할 수 있다.
• Bounce attack
- FTP 서버가 데이터를 전송할 때 목적지를 검사하지 않는 문제점을 이용
- 익명 FTP 서버를 이용해 그 FTP 서버를 경유해서 호스트를 스캔
- FTP PORT 명령을 이용한다.
- 네트워크를 포트 스캐닝 하는데 사용
- 보안대책 : FTP 규약을 어느 정도 제한하는 방법으로 다른 서비스가 20번 포트 접속을 요청하면 거절하는 방법. 익명 FTP 서버의 경우 임시적으로 ./incoming에 파일 업로드를 할 수 없게 하는 방법
•익명 FTP 취약점
- 보안 절차를 거치지 않은 익명의 사용자에게 FTP 서버로의 접근을 허용하고, 그 사용자가 서버에 쓰기 권한이 있을 때 악성코드 생성이 가능하다.
- 보안대책 : 중요 디렉터리(/bin, /etc 등)의 소유자와 권한(permission)을 관리하거나 사용을 금지하는 방법이 있다.
'어플리케이션' 카테고리의 다른 글
NTP에 대해 알아보겠습니다. (0) | 2022.12.02 |
---|---|
DNS 에 대해 알아보겠습니다. (2) | 2022.12.02 |
Static Query, Dynamic Query, PreparedStatement 에 대해 알아보겠습니다. (0) | 2022.12.01 |
SSL Pinning 에 대해 알아보겠습니다 (0) | 2022.11.30 |
전자메일에 대해 알아보겠습니다 (0) | 2022.11.28 |