더북(TheBook)

FTP 서버, vsftp 준비하기

server01에서 FTP 서버를 운영하고 server02에서 FTP 클라이언트로 접속합니다. FTP 서버를 이용해서 파일을 업로드 및 다운로드할 수 있습니다.

그림 7-33 FTP 서버의 파일 사용하기

먼저 FTP 서버로 사용할 vsftpd를 설치합니다.

administrator@server01:~$ sudo apt-get update
administrator@server01:~$ sudo apt-get install vsftpd

vsftpd 설치 과정에서 FTP 서버가 시작됩니다. netstat를 실행하면 접속 대기 중인 ftp 포트를 확인할 수 있습니다.

administrator@server01:~$ netstat -a | grep ftp
tcp    0     0 *:ftp                *:*                      LISTEN

lsof 명령으로 ftp 포트로 접속 대기 중인 FTP 서버 데몬, vsftpd를 확인할 수 있습니다.

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

vsftpd의 환경 설정 파일은 /etc/vsftpd.conf입니다. 꼭 알아둘 만한 항목을 소개합니다.

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

listen은 vsftpd가 외부 접근에 귀 기울이겠다는 항목입니다.

anonymous_enable은 익명 접속자를 허용할지 결정합니다. 기본값은 No(불허)입니다.

local_enable은 로컬 사용자의 로그인을 허용할지 결정합니다.

listen=YES
anonymous_enable=NO
local_enable=YES

write_enable은 FTP 서버가 제공하는 디렉터리에 쓰기를 허용할지 결정합니다.

local_umask는 디렉터리에 쓰기 가능한 경우 생성한 파일의 접근 권한을 결정합니다. umask 022는 접근 권한을 755로 설정합니다.

#write_enable=YES
#local_umask=022

anon_upload_enable은 익명 사용자의 업로드 권한을 활성화합니다.

anon_mkdir_write_enable은 익명 사용자가 mkdir 명령으로 하위 디렉터리를 생성할 수 있게 만들지 결정합니다.

#anon_upload_enable=YES
#anon_mkdir_write_enable=YES

connect_from_port_20은 FTP 서버의 데이터 전송 포트 번호를 20번으로 설정합니다. 패시브 모드로 FTP 서버를 운영할 때는 해제해야 합니다.

connect_from_port_20=YES

chroot_local_user는 FTP 접속으로 홈 디렉터리를 벗어나지 못하게 합니다. FTP 서버를 운영할 때는 리눅스 시스템의 보안을 위해 이 옵션을 활성화하는 편이 바람직합니다.

#chroot_local_user=YES

ufw 방화벽으로 FTP 서버에 대한 접근을 허용(allow ftp)합니다. ufw는 tcp 21번 포트를 개방합니다.

administrator@server01:~$ sudo ufw allow ftp
administrator@server01:~$ sudo ufw status
Status: active

To                  Action    From
--                  ------    ----
...
21/tcp              ALLOW     Anywhere
21/tcp              ALLOW     Anywhere (v6)

익명 FTP 서버에서 클라이언트에 제공할 디렉터리는 다음과 같이 usermod 명령으로 설정합니다. usermod -d [사용할 디렉터리 경로] ftp 형식으로 입력합니다.

administrator@server01:~$ sudo usermod -d /srv/ftp ftp
administrator@server01:~$ ls -l /srv/
drwxr-xr-x 2 root ftp 4096 Apr 7 23:06 ftp
drwxr-xr-x 4 root root 4096 Apr 7 00:14 nfs
drwxr-xr-x 5 root root 4096 Apr 3 23:49 samba

FTP 서버를 통해 배포할 파일을 방금 생성한 디렉터리에 복사해둡니다.

administrator@server01:~$ touch test_ftp_down
administrator@server01:~$ sudo cp test_ftp_down/srv/ftp/
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.