vsftpd 패시브 모드 설정하기
FTP를 이용하여 데이터를 전송하는 방식으로 Active Mode와 Passive Mode의 두가지 모드가 존재하는데 각각의 모드에 대해 간략하게 알아보자.
Active mode 동작 방식
FTP 클라이언트가 서버의 21번 포트로 접속.
클라이언트는 자신이 사용할 포트를 서버측에 알림.
서버는 자신의 20번 포트로 클라이언트가 알려준 포트로 접속해 데이터를 전송한다.
Active mode 단점 : 결론적으로 보면 일반적인 서버/클라이언트 개념에서 클라이언트가 서버로 접속이 아닌 서버가 클라이언트로 접속해 데이터를 전송하기 때문에 클라이언트 앞단에 방화벽 혹은 공유기등이 설치 되어 있다면 접속은 되지만 FTP서버의 리스트를 받아오지 못하고 데이터를 전송할 수 없게 된다.
Passive mode 동작 방식
FTP클라이언트가 서버의 21번 포트로 접속.
FTP서버가 접속 요청을 수락한 다음 자신의 1024번 이상의 임의의 포트로 클라이언트와 커넥션을 맺은 후 데이터를 전송한다.
Passive mode 단점 : 1024번 이상의 포트로 데이터 전송을 하기 때문에 1024 ~ 65535 포트를 방화벽에서 열어야 하지만 vsftp의 경우 사용할 수 있는 포트를 제한 할 수 있는 기능이 있어 이러한 문제를 해결 할 수 있다.
vsftpd 패시브 모드 설정
vsftpd의 패시브 모드 설정은 간단하다.
위에서 설명 했듯이 Passive mode로 사용할 포트의 범위를 vsftpd.conf 에 추가 후 재시작을 하면 된다.
vsftpd.conf의 기본위치는 /etc/vsftpd.conf이다.
1. vsftpd 설정
/etc/vsftpd.conf 에 다음 내용을 추가합니다.
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=20000
pasv_max_port=20010
2. vsftpd 재시작
service vsftpd restart
2. iptables 설정
vi /etc/iptables/rules.v4
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 21 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20000:20010 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20000:20010 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
3. iptables 재시작
service iptables restart