PE Notes · 네트워크
FTP
제어 21번과 데이터 채널을 나누는 FTP의 Active·Passive, 평문 위험을 FTPS(TLS)와 SFTP(SSH 단일 포트)와 비교하고 세션·응답 코드 자리를 정리합니다.
파일을 원격으로 옮기는 일은 오래전부터 위 FTP가 맡았습니다. 명령은 21번, 바이트는 다른 소켓입니다. 이 두 줄이 NAT·방화벽에서 Active와 Passive를 갈라 놓고, 비밀번호가 평문으로 흐르게 했습니다. 지금은 같은 일을 SFTP나 HTTPS가 가져갑니다.
두 채널, 누가 데이터 소켓을 여는가
제어 채널은 USER·PASS·LIST·RETR·STOR·QUIT가 오가는 연결입니다. 데이터 채널은 목록과 파일 본체입니다. Active는 클라이언트가 PORT로 자기 주소를 알리면 서버가 20번에서 클라이언트로 붙습니다. 클라이언트가 NAT 뒤면 그 연결이 막힙니다.
는 클라이언트가 PASV를 보내고, 서버가 임시 포트를 알려 주면 클라이언트가 밖으로 붙습니다. 오늘날 기본값입니다. 서버 방화벽은 그 임시 포트 범위를 열어 두어야 합니다.
| 비교축 | Active | Passive |
|---|---|---|
| 데이터 개시 | 서버 → 클라이언트 | 클라이언트 → 서버 |
| 서버 포트 | 20 | 임시 고포트 |
| NAT 뒤 클라이언트 | 실패하기 쉬움 | 통과 |
| 명령 | PORT | PASV |
제어 연결의 는 보통 TCP 한 줄입니다. 파일마다 데이터 소켓을 새로 엽니다.
평문 FTP, 덮개 FTPS, 다른 프로토콜 SFTP
사용자명·암호·파일 내용이 모두 보입니다. 무차별 대입과, Active의 PORT를 악용해 제3 서버를 스캔하는 바운스 공격이 따라옵니다. 브라우저가 FTP URL을 버린 이유입니다.
는 기존 FTP에 를 붙입니다. 명시적(21에서 STARTTLS)과 암시적(990)이 있습니다. 채널은 여전히 둘이라 방화벽이 복잡합니다. 는 SSH 한 포트(22)에 명령과 데이터가 같이 갑니다. 키 인증이 가능하고 NAT에 우호적입니다. SCP는 복사만 하는 짧은 SSH 도구입니다.
| 비교축 | FTP | FTPS | SFTP |
|---|---|---|---|
| 암호 | 없음 | TLS | SSH |
| 포트 | 21 + 데이터 | 21 또는 990 + 데이터 | 22 하나 |
| 채널 | 2 | 2 | 1 |
| 레거시 호환 | 원형 | FTP 스택 유지 | FTP 아님 |
| 권장 | 내부 평문 금지 | 구형 연동 | 기본 선택 |
이름에 FTP가 들어도 SFTP는 RFC 959의 자식이 아닙니다. 답안에 한 줄로 적습니다.
세션은 제어가 살고 데이터는 짧다
1xx는 진행, 2xx는 완료(226 전송 끝, 230 로그인), 4xx는 일시, 5xx는 영구(530 로그인 실패, 550 없음)입니다. 흐름은 21번 연결 → USER/PASS → PASV → RETR/STOR → 데이터 소켓 종료 → 제어는 남을 수 있습니다.
구형 PLC 펌웨어, 폐쇄망 교환은 아직 FTP를 남기기도 합니다. 그때는 전용 안에 가두거나 FTPS로 올립니다. 공개 배포는 HTTPS, 운영 배포는 SFTP·rsync·객체 스토리지 API가 자리입니다. 응용 계층 토픽의 HTTP/3와 달리, FTP는 이중 소켓과 평문이 시험 포인트입니다.
기술사 답안 포인트
관련 용어
관련 토픽
네트워크
TCP, UDP, 혼잡 제어, 폴리싱과 셰이핑
연결형 TCP와 비연결 UDP를 신뢰·창·헤더로 가르고, 슬로스타트부터 빠른 복구, 폴리싱과 셰이핑이 cwnd에 미치는 영향을 정리합니다.
보안
TLS 1.2와 1.3
2-RTT와 정적 RSA가 남긴 취약점을 1-RTT·ECDHE 전용·AEAD만 허용한 1.3이 어떻게 접었는지 핸드셰이크 표로 비교합니다.
네트워크
OSI 7계층과 HTTP/3
ISO/IEC 7498의 일곱 층을 TCP/IP 네 층에 맞추고, HTTP/1.1의 줄 막힘이 HTTP/2 멀티플렉싱과 HTTP/3 QUIC에서 어떻게 풀리는지 정리합니다.