※ 요약


FTP를 이용하는 분들은 아시겠지만 ftp는 Active모드와 Passive모드가 존재한다. 일반적으로 사용할 때는 무엇이 더 좋다할 정도는 아니며 필자가 사용중인 CentOS7에는 기본적으로 액티브 모드가 기본 값이라 이번 포스트에서는 패시브 모드를 설정하는 방법을 알아보도록 하겠다.


※ Active 모드 방식 및 특징


- 모든 클라이언트에서 서버측 21번 포트로 접속을 시도하고 클라이언트가 사용할 두번째 포트를 서버에 통보

- 서버는 클라이언트에게 ack를 보내고 서버의 20번 포트는 클라이언트가 알려준 두번째 포트로 접속을 시도

- TCP/IP에서는 보통 클라이언트가 서버에 접속을 시도하는데 액티브모드에서는 서버가 클라이언트로 접속을 시도

- 만약 클라이언트 PC등에 방화벽이나 공유기가 있어 외부에서 접속을 허용하지 않는다면, 서버(20번포트) -> 클라이언트(1024~65535포트)의 접속이 정상적으로 되지 않아 FTP 로그인은 되지만 데이터 전송 및 디렉토리, 파일 리스트를 받지 못하는 문제가 발생


※ Passive 모드 방식 및 특징


- 모든 클라이언트에서 서버측 21번 포트로 접속(login)을 시도

- 서버는 클라이언트에게 서버에서 사용할 두번째 포트(1024~65535포트)를 통보

- 클라이언트는 다른 포트를 열어 서버가 알려준 이 포트로 접속을 시도하고 데이터를 전송

- 서버에서 클라이언트가 접속할 수 있도록 1024~65535 사이의 포트를 개방해야 하는 문제점이 발생할 수 있지만 접속 범위를 설정하므로써 문제 해결



※ 설정 방법


vi /etc/vsftpd/vsftpd.conf 라고 입력하여 vsftpd의 설정 파일을 열도록 한다.


설정 파일 제일 아래에 다음 항목을 추가 입력한뒤 저장하고 나오면 된다.

#pasv mode enable

pasv_enable=YES


#pasv port range

pasv_min_port=30000

pasv_max_port=30001



참고로 min 포트와 max 포트는 원하는 포트로 설정 가능하며 같은 값을 줄 경우 포트 고정이 가능하다. 설정을 저장하였으면 vsftpd 서비스를 재시작해주거나 재부팅해주면 설정이 적용되며, 시스템에 따라 방화벽 설정을 추가로 해줘야 하는 경우도 있다. 필자는 방화벽은 안해줘도 되서 여기까지만 작성하도록 하겠다.


+ Recent posts