Linux ETC

vsftpd 패시브 모드 설정

2015.09.13 21:29

호스트웨이 조회 수:3591


클라이언트가 FTP서버에 접속해 데이터를 주고 받을 때, 액티브 모드와 패시브 모드가 있습니다. 

액티브 모드: 클라이언트가 데이터를 수신받을 임의의 포트를 열고 서버에 알려주면 서버는 20번 포트를 통해 클라이언트에게 데이터를 전송함

패시브 모드: 서버가 데이터를 송신할 임의의 포트를 열고 클라이언트에 알려주어 클라이언트가 서버의 임의의 포트에 접속하여 데이터를 가져감

액티브 모드에서 클라이언트가 방화벽아래에 있다면 외부에서 이 클라이언트에 직접 접근하는 것이 불가능하기 때문에 패시브 모드를 활용하는 것입니다.
그래서 방화벽 아래에 있는 복잡한 네트워크 환경에서는 FTP의 패시브 모드 지원이 필요하다고 할 수 있습니다. 하지만 패시브 모드의 임의의 포트가 1024 이후의 모든 임의의 포트기 때문에 보안과 방화벽 설정에 어려움이 있습니다.


그래서 vsftpd에서 포트의 범위를 임의로 설정할 수 있습니다. 

/etc/vsftpd/vsftpd.conf 파일에 아래 내용을 추가해 줍니다.

pasv_enable=Yes
pasv_min_port=10080
pasv_max_port=10120

그 다음 /etc/sysconfig/iptables에 아래의 내용을 추가합니다.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10080:10120 -j ACCEPT

그러면 패시브 모드를 이용할 수 있게 됩니다.