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)으로 접속/응답  à 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 n(ex.1026)+1)에서 FTP Server Data Port로 접속.(임의포트로 지정)

 

- 접속환경이 주로 Server측 공인 IP이고 접속 자는 클라이언트 유동 or 가상 IP

Client에서 21port 접속하고 Passive로 전환을 요청 시 서버는 1023보다 큰 특정포트를

클라이언트에게 알려주고 알려준 포트를 사용하여 Listening을 하며 대기

 

 

 방화벽 설정 시 유의 사항
 Server  : TCP 21, TCP n번에 대한 Client 접속 허용

      제공되는 FTP 서버에서 Passive Port에 대한 설정 가능 여부 확인
Client  : 없음

 

 

 

 

 

액티브 모드와 패시브 모드의 차이점

 

어느 쪽에서 접근을 시도하는가에 있으며 액티브모드일 경우 접속이 잘 안 되는 이유가 발생되는데 그 이유는 서버 측에 방화벽이 있을 경우 방화벽에서 걸리기 때문이며 대부분 방화벽 같은 경우 들어오는 포트에 대해서 필터 링은 하지만 나가는 포트에 대해서는 필터 링을 하지 않기에 ftp 서버로 접근하려는 대부분의 경우 패시브 모드를 주로 사용하게 된다. 또한 방화벽 단에서 나가는 포트에 대해서도 필터 링을 하게 되면 패시브 모드로도 접근이 원활하지 않은 경우가 있으면 대표적인 예로는 V3에 개인방화벽 부분이 체크가 되어있으면 패시브 모드로 해 놓아도 안 되는 경우가 발생된다. 이런 경우 v3 > 개인방화벽 > 사용 안 함으로 바꾸어 주면 접속이 원활이 진행이 되어진다.

 

 

1차 출처 : http://cafe.naver.com/smartpiljava.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=524

2차 출처 : http://blog.bagesoft.com/765

+ Recent posts