06_자격증·공부/정보보안기사

[FTP] FTP Active Passive Mode

h-a-y-j 2025. 6. 1. 00:10

FTP 기본 구조

FTP(File Transfer Protocol)는 제어 연결(Control)과 데이터 연결(Data)이 따로 존재하는 이중 연결 구조

  • 제어 연결: 명령 내리고 응답 받는 통로 (예: USER, PASS, LIST 등)
  • 데이터 연결: 실제 파일을 보내고 받는 통로
제어 연결은 항상 클라이언트 → 서버 (TCP 21포트)
데이터 연결은 모드에 따라 달라짐 (요게 핵심)

1. Active Mode (능동 모드)

기본 전통 방식 (default)

 

연결 흐름

1. 클라이언트 → 서버 : TCP 21번 포트로 제어 연결 생성 
2. 클라이언트 : "내가 192.168.0.10의 포트 1024 열어놨음! 연결 ㄱ" 
3. 서버 → 클라이언트 : 20번 포트에서 클라 1024번 포트로 데이터 연결함
제어 연결 클라이언트 → 서버 서버 21번 포트
데이터 연결 서버 → 클라이언트 서버 20번 → 클라 임의포트 (ex. 1024)

Active Mode의 단점 : 클라이언트 방화벽이 외부 접속 차단하면 서버가 역접속 못함 =  데이터 연결 실패 = 파일 전송 안 됨


2. Passive Mode (수동 모드)

방화벽/NAT 환경 대비를 위해 추가된 방식

 

연결 흐름

1. 클라이언트 → 서버 : TCP 21번 포트로 제어 연결 생성 
2. 클라이언트 : "패시브 모드로 부탁요" 
3. 서버 : "내 40000번 포트 열어놨음. 그리로 와라" 
4. 클라이언트 → 서버 : 40000번 포트로 데이터 연결 시도 (클라이언트가 직접 연결함)
제어 연결 클라이언트 → 서버 서버 21번 포트
데이터 연결 클라이언트 → 서버 서버 고포트 (예: 40000)

Passive Mode 장점 : 클라이언트가 두 연결 다 여니까 방화벽/NAT 안에 있어도 문제 없음


비교

데이터 연결 방향 서버 → 클라이언트 클라이언트 → 서버
서버 포트 20번 사용 임의 고포트 사용 (ex. 40000 이상)
클라이언트 포트 열어야 함 클라이언트가 알아서 연결
방화벽 문제 클라이언트 방화벽에서 막힘 방화벽 문제 적음
사용 상황 전통 구조, 내부망 인터넷 환경, NAT, 사설망