don't stop believing

vsftpd 설치 (on Ubuntu 16.04) 본문

Tools/VSFTPD

vsftpd 설치 (on Ubuntu 16.04)

Tongchun 2017. 9. 18. 17:28

회사에 ftp서버 하나 있으면 유용하겠다 싶어 만들어 봅니다.

우선 Ubuntu는 16.04 버전입니다.

anonymous는 허용하지 않으며, 계정 생성해서 접근하도록 FTP를 만듭니다.


먼저 package를 업데이트하고 vsftpd 데몬을 설치 합니다.

$ sudo apt-get update
$ sudo apt-get install vsftpd

설정하기 전 설정파일을 백업 카피 합니다.

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

ftp에 사용할 계정을 만들어 줍니다. 저는 tongchun이라고 계정을 추가했습니다.

$ sudo adduser tongchun

계정에 대한 home 디렉토리에 ftp폴더를 만들어 주고 권한을 변경합니다.

$ sudo mkdir /home/tongchun/ftp
$ sudo chown nobody:nogroup /home/tongchun/ftp
$ sudo chmod a-w /home/tongchun/ftp/

ftp폴더 안에 files폴더를 만들고 테스트용 파일을 추가해 봅니다.

$ sudo mkdir/home/tongchun/ftp/files
$ sudo chown tongchun:tongchun /home/tongchun/ftp/files
$ echo "vsftpd test file" | sudo tee /home/tongchun/ftp/files/test.txt

vsftpd.conf 파일을 열고 설정을 수정합니다.

기본으로 설정해야 할 것은 아래와 같습니다.

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
pasv_min_port=40000
pasv_max_port=50000

특정 유저만 ftp를 사용하고 싶다면 userlist를 작성해서 관리할 수 있다.

먼저 vsftpd.conf에 아래 설정을 추가한다.

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

설정 저장 후 userlist파일을 만들고 계정을 추가한다.

$ echo "tongchun" | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist

vsftpd.conf 설정이 되었다면 vsftpd를 재시작 합니다. 그리고 재대로 시작되었는지 확인해 봅니다.

$ sudo systemctl restart vsftpd
$ sudo systemctl status vsftpd

Windows에서 탐색기를 열고 ftp:<서버IP>를 호출하면 계정 로그인 화면이 나타난다.

만약 userlist_enable 설정을 했다면 탐색기에서 접속할때는 ftp://<계정명>@<서버IP> 형식으로 접속해야 한다.

ftp://tongchun@192.168.0.188

정상적으로 로그인이 되었다면 파일을 올리거나 다운받을 수 있습니다.


추가 계정이 필요할 경우 아래 명령들을 순차적으로 하면 됩니다.

<계정명>은 추가하려는 계정입니다.

$ sudo adduser <계정명>
$ sudo mkdir /home/<계정명>/ftp
$ sudo chown nobody:nogroup /home/<계정명>/ftp
$ sudo chmod a-w /home/<계정명>/ftp/
$ sudo mkdir /home/<계정명>/ftp/files
$ sudo chown <계정명>:<계정명> /home/<계정명>/ftp/files
$ echo "vsftpd test file" | sudo tee /home/<계정명>/ftp/files/text.txt

userlist_enable 설정이 되었다면 아래 명령을 추가한다.

echo "<계정명>" | sudo tee -a /etc/vsftpd.userlist

여기까지 ftp 기본 설치 방법입니다.


vsftpd 옵션에 대한 정보는 아래 rul에서 확인할 수 있습니다.

http://vsftpd.beasts.org/vsftpd_conf.html


탐색기에서 파일명이 한글로된 파일을 업로드 했을때 한글이 깨진다면 locate를 확인해야 한다.

[Ubuntu locate 변경]


FTP 프로그램은 Filezilla를 추천하며 Filezilla에서 문자 설정도 UTF-8로 설정해 줘야 한다.

Filezilla > 사이트 관리자 > 등록된 사이트 > 문자셋 > UTF-8로 강제 설정

ftp 클라이언트의 character set을 맞춰줘야 한다.

Comments