본문 바로가기
INFORMATION SECURITY · FREE LEARNING정보보안 학습센터원리 → MASTER → 문제·복습 → MUST KNOW

FTP는 명령과 데이터를 다른 연결로 주고받는다

정보보안의 원리 · 방향 5

© K-BOOKS · 무료 웹 열람용 콘텐츠입니다. 무단 복제·저장·인쇄·재배포를 제한합니다.

다섯 번째 발걸음FTP는 명령과 데이터를 다른 연결로 주고받는다

파일 전송이 로그인까지는 성공하는데 목록 조회나 내려받기에서 멈춘다면 비밀번호만 다시 확인해서는 해결되지 않을 수 있습니다. FTP는 명령을 주고받는 제어 연결과 파일·목록 데이터를 전달하는 데이터 연결을 나누기 때문입니다. 전통적인 FTP 제어 연결은 서버의 TCP 21번 포트를 사용합니다. 데이터 연결을 누가 먼저 시작하는지에 따라 능동 모드와 수동 모드가 구분되며, 방화벽과 주소 변환 환경에 주는 영향이 다릅니다.

능동 모드에서 클라이언트는 자신이 데이터를 받을 주소와 포트를 서버에 알리고 서버가 그쪽으로 데이터 연결을 시작합니다. 수동 모드에서는 서버가 대기할 데이터 포트를 알리고 클라이언트가 그 포트로 연결합니다. 수동 모드는 클라이언트가 두 연결을 모두 시작하므로 일부 NAT·방화벽 환경에서 다루기 쉽지만, 서버 측에서 정해진 데이터 포트 범위를 준비하고 허용해야 합니다. 제어 포트 하나만 열어 두고 모든 FTP 기능이 동작할 것이라 기대하면 안 됩니다.

클라이언트 → 서버: EPSV
서버 → 클라이언트: 229 Entering Extended Passive Mode (|||50000|)
클라이언트: 제어 연결의 서버 주소, TCP 50000으로 데이터 연결
클라이언트 → 서버: RETR homework.txt
서버 → 클라이언트: 150 Opening data connection
데이터 연결: homework.txt의 바이트 전달 후 종료
서버 → 클라이언트: 226 Transfer complete

격리한 서버의 수동 데이터 연결을 설명하는 기록입니다. 인증은 앞서 완료된 상태를 가정합니다. 제어 응답의 성공과 파일의 독립적인 무결성 검사는 구분합니다.

기본 FTP는 계정 정보와 데이터의 기밀성을 제공하지 않습니다. FTPS는 FTP에 TLS를 적용하는 방식입니다. 명시적 TLS에서는 제어 연결에서 AUTH TLS로 보호를 시작하고, 데이터 연결도 필요한 보호 수준으로 설정합니다. 제어 채널만 암호화하고 파일 내용은 평문 데이터 채널로 보내는 구성을 피하려면 데이터 보호 정책까지 확인해야 합니다. SFTP는 이름이 비슷하지만 SSH 위에서 동작하는 다른 파일 전송 프로토콜입니다. FTP에 TLS를 더한 약자가 아니며 방화벽·인증·서버 설정을 그대로 공유하지 않습니다.

# vsftpd 교육용 읽기 전용 계정 정책의 일부
anonymous_enable=NO
local_enable=YES
write_enable=NO
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
pasv_min_port=50000
pasv_max_port=50010

vsftpd가 설치된 격리 환경용 설정 조각입니다. 서버 인증서·키, 사용자 디렉터리와 기본 실행 설정은 별도로 준비해야 합니다. 50000~50010은 실습에서 선택한 데이터 포트 범위이며 FTP의 고정 표준 포트가 아닙니다.

익명 계정이 필요한 공개 배포 서버와 내부 계정 파일함은 목적이 다릅니다. 필요 없는 익명 접근을 끄고, 꼭 필요하다면 공개 읽기 영역을 다른 자료와 분리합니다. 업로드·다운로드·삭제 권한을 함께 주지 말고 업무별로 제한합니다. 읽기 전용 예제에서는 업로드가 거부되는 것이 정상입니다. 쓰기 가능한 홈 디렉터리와 격리 기능의 조합은 제품의 제약을 확인해야 하며, 오류를 없애려고 과도한 파일 권한을 주지 않습니다.

함께 따라가기 · 로그인은 되지만 파일이 오지 않을 때

실습 서버에서 인증은 성공했으나 목록 요청이 시간 초과합니다.

  1. 제어 연결 기록에서 수동 포트가 어떤 값으로 안내되었는지 찾고, 클라이언트가 실제로 그 데이터 연결을 시도했는지 확인합니다. 인증 실패와 데이터 경로 차단을 구분합니다.

  2. 선택한 수동 포트 범위와 서버 광고 주소가 망 정책·NAT 조건과 일치하도록 고칩니다. 문제를 빨리 풀려고 모든 포트를 외부에 허용하지 않습니다.

  3. 목록·읽기는 성공하고 업로드는 정책대로 거부되는지 확인합니다. 외부 주소로 임의의 데이터 연결을 유도하는 요청이나 불필요한 제어 명령을 제한하고, 반복 로그인 실패도 계정 정책과 기록으로 다룹니다.

깨달음FTP의 제어·데이터 분리를 알면 가용성 문제를 권한 완화로 덮지 않고 필요한 경로만 바로잡을 수 있습니다.

참고 [177] · [178] · [179] · [180] · [181]

이 브라우저에 학습 기록을 저장합니다.

CONTINUE LEARNING

지금 공부한 흐름을 책으로 이어가세요

무료 학습은 그대로, 종이책은 필요한 분을 위한 선택지입니다.

정보보안 MUST KNOW전체 도서 12권