FTP 엑티브 모드와 패시브 모드의 차이점
관련링크
본문
원본출처 : http://blog.bagesoft.com/765
간단히 결론을 내자면.. '요즘은 다 패시브 모드로 사용하도록 하자~' 입니다.^^
------------------------------------------------
FTP(File Transfer Protocol) 작동 모드
기본적으로 FTP Session 의 구성은 FTP Client 와 Server 간의 통신으로 SYN Packet, ACK Packet으로 이루어진다. Active Mode의 경우 Firewall은 시스템 구성에 있어 문제를 발생시킬 수 있다. 그 이유는 Firewall 사용시 FTP Server는 Firewall을 통해 클라이언트와 통신을 이루어야 하므로, 이러한 추가되는 상황까지 분석해야 하며 이러한 불편함을 덜고자 Passive Mode가 필요하게 되었다.
Active Mode
- 클라이언트에서 서버로 접근을 시도하는 방법 (서버측 21, 20번 개방 필요)
클라이언트가 서버 쪽 21포트에 연결을 하면 서버 쪽에서 능동적으로 클라이언트의 불특정포트에 접속을 시도하게 된다 이때 방화벽이나 NAT가 있다면 커넥션이 제대로 성공이 안되고 된다고 하더라도 ls 와 같은 명령어를 주었을 때 list failed가 된다.
1. Client Command Port ( TCP n , n(ex.1026)>1023 )에서 FTP Server의 Command Port(TCP 21)으로 접속/응답 a Client의 Data Port 정보 전달
2. Client 에서 제공한 정보를 기반으로 Server의 Data Port (TCP 20)에서 FTP Client의 Data Port (TCP n(ex.1026)+1)로 접속 및 응답
★ 방화벽 설정 시 유의 사항
Server : TCP 21번에 대한 Client 접속 허용
Client : Server 측의 모든 접속 허용 (보안 상에 문제 있음)
Passive Mode
- 서버가 클라이언트로 접근을 시도하는 방법 (서버측 21번 개방 필요)
전통적인 FTP 방식인 Active Mode에서 방화벽을 사용할 경우에는 포트를 하나만 열어주는 경우가 대부분인 상황이 발생되는데 이런 경우에 최근 나타난 Passive Mode를 이용하여 접속을 하면 데이터에도 접속할 수 있는 방식
1. Client Command Port (TCP n, n(ex.1026)>1023)에서 FTP Server의 Command Port (TCP 21)으로 접속/응답 → Server의 Data Port 정보를 Client 에게 전달
2. Server 에서 제공한 정보를 기반으로 Client의 Data Port (TCP