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



참조

https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04

+ Recent posts