더북(TheBook)

패시브 모드 FTP 서버 운영하기

FTP 서버를 외부로 공개하려면 FTP 서버를 패시브 모드로 운영해야 합니다. vsftpd의 패시브 모드 설정 방법을 살펴봅시다. 설정 파일 /etc/vsftpd.conf를 vi로 엽니다.

administrator@server01:~$ sudo vi /etc/vsftpd.conf
Tip

‘FTP에 대해 알려주세요!’에서 FTP 서버의 패시브 모드에 대해 설명했습니다.

FTP 서버가 접속 요청을 대기할 21번 포트를 사용하지 못하는 경우를 대비해 50021번 포트를 사용합니다.

listen=YES
listen_port=50021

패시브 모드에서 ftp-data 포트 20번은 사용하지 않기 때문에 connect_from_port_20=YES 항목을 주석처리합니다.

#connect_from_port_20=YES

설정 파일의 마지막에 다음 내용을 추가합니다. 패시브 모드를 활성화(pasv_enable=YES)하고
ftp-data 포트로 50090부터(pasv_min_port=50090) 50100까지 사용(pasv_max_port=50100)하게 됩니다.

pasv_enable=YES
pasv_min_port=50090
pasv_max_port=50100

vsftpd를 재시작합니다.

administrator@server01:~$ sudo service vsftpd restart

lsof 명령으로 vsftpd가 접속 대기하는 포트 번호가 21에서 50021로 변경된 것을 확인할 수 있습니다.

administrator@server01:~$ sudo lsof -i | grep ftp
vsftpd 1315             root   3u   IPv4  10505      0t0  TCP *:50021 (LISTEN)

방화벽 설정을 변경합니다. FTP 접속을 위해 50021 포트를 개방( ufw allow 50021)하고 ftp-data 포트로 사용할 50090부터 50100까지( to any port 50090:50100) tcp( proto tcp) 포트를 개방합니다.

administrator@server01:~$ sudo ufw allow 50021
administrator@server01:~$ sudo ufw allow to any port 50090:50100 proto tcp
administrator@server01:~$ sudo ufw status
Status: active

To                        Action    From
--                        ------    ----
...
50021                     ALLOW     Anywhere
50090:50100/tcp           ALLOW     Anywhere
50021                     ALLOW     Anywhere (v6)
50090:50100/tcp           ALLOW     Anywhere (v6)

클라이언트에서 FTP 서버로 접속해봅시다. 패시브 모드 FTP 서버의 접속 요청을 받기 위해 FTP 클라이언트도 패시브 모드로 실행해야 합니다. ftp에서 패시브 모드를 활성화하는 옵션은 -p입니다. FTP 서버가 21번 대신 50021번 포트로 접속 요청을 기다리고 있으므로 ftp -p [FTP 서버 주소] [변경된 포트번호] 형식으로 ftp를 실행합니다. FTP 서버에 접속하면 패시브 모드가 활성화되었다는 메시지( Entering Passive Mode)를 확인할 수 있습니다.

administrator@server02:~$ ftp -p 192.168.122.201 50021
Connected to 192.168.122.201.
220 (vsFTPd 3.0.2)
Name (192.168.122.201:administrator): administrator
331 Please specify the password.
Password: ********
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,122,201,195,177).
150 Here comes the directory listing.
-rw-------   1 1000      1000           13 Apr 07 23:33 test_ftp_user_down
-rw-rw-r--   1 1000      1000           13 Mar 13 06:31 test_ftp_user_up
226 Directory send OK.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.