ubuntu vsftpd 설치 및 설정
ftp 설정
$ sudo apt-get update
$ sudo apt-get install vsftpd
// 설정파일 백업
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
// 방화벽 상태 조회
$ sudo ufw status
// 방화벽에 사용할 포트 등록
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
// 여기서는 20, 21, 990, 40000~50000 을 등록
// 유저 추가
$ sudo adduser testuser
// 디렉토리 생성
$ sudo mkdir /home/testftp
// 디렉토리의 권한 설정
$ sudo chown nobody:nogroup /home/testftp
$ sudo chmod a-w /home/testftp
// 권한이 제대로 적용된는지 조회
sudo ls -la /home/testftp
// 예시
4 dr-xr-xr-x 2 nobody nogroup 4096 Aug 24 21:29 .
4 drwxr-xr-x 3 testuser testuser 4096 Aug 24 21:29 ..
$ sudo chown testuser:testuser /home/testftp
// 테스트용 파일 만들기
$ echo "vsftpd test file" | sudo tee /home/testftp/test.txt
// ftp 설정파일
$ sudo nano /etc/vsftpd.conf
// 익명의 사용자 블럭
anonymous_enable=NO
// 로컬 유저 사용?
local_enable=YES
// 쓰기 가능 YES로 변경
write_enable=YES
// 지정된 루트 상위로 조회 가능여부 YES
chroot_local_user=YES
// 추가
// 추가된 유저의 이름을 키워드로 유저이름의 폴더를 지정
user_sub_token=$USER
local_root=/home/$USER/ftp
// 패시브 모드로 사용할 경우 포트 지정
pasv_min_port=40000
pasv_max_port=50000
// 유저 리스트 사용 여부
userlist_enable=YES
// 유저 리스트의 파일 경로
userlist_file=/etc/vsftpd.userlist
// 유저 리스트의 블럭 사용 여부
userlist_deny=NO
// 유저 리스트 파일 만들기
$ echo "testuser" | sudo tee -a /etc/vsftpd.userlist
// 유저 리스트 파일 출력
$ cat /etc/vsftpd.userlist
// 출력
testuser
// vsftpd 재시작
$ sudo systemctl restart vsftpd
// 콘솔에서 테스트
ftp -p 아이피주소
Output
Connected to 아이피주소
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): testuser
참조