vsftpd의 설정을 편집하는 작업입니다. 저는 간단하게 nano 편집기를 사용했지만, vim이나 다른 기타 편집기로 편집하셔도 무방합니다.
listen=YES
ipv4로 들어오는 요청을 수락합니다.
local_enable=YES
로컬 계정 사용자의 접속을 승인합니다.
write_enable=YES
사용자가 파일을 쓸 수 있습니다. FTP에 파일을 업로드 하기 위해서 필요합니다.
local_umask=022
로컬 계정 사용자가 생성한 파일에 대한 권한 설정 부분입니다.
connect_from_port_20=YES
20번 포트로도 접속을 허용하겠다는 의미입니다.
chroot_local_user=YES
로컬유저가 root경로로 접근하는 것을 허용합니다. 특정 프로그램 실행을 통해 자동으로 로그나 데이터를 업로드하는 경우, 허용해주는 것이 편리합니다.
chroot_list_enable=YES
chroot를 할 수 있는 유저 목록을 관리합니다.
chroot_list_file=/etc/vsftpd.chroot_list
/etc 경로 아래에 vsftpd.chroot_list라는 파일이 없다면, 그냥 해당 경로에 직접 파일을 생성하고 원하는 계정명을 입력하면 됩니다.
utf8_filesystem=YES
utf8 인코딩을 사용합니다.
pasv_enable=YES
FTP는 Active mode와 Passive mode가 존재하는데, passive mode도 사용한다는 의미입니다. python의 ftplib를 이용해서 파일을 업로드 시킬때 passive mode가 꺼져있으면 접속이 안되어서, passive mode를 enable하고, 해당 포트도 방화벽에서 같이 열어두어야 합니다.
pasv_min_port=50000
passive mode로 접근할 포트 하한 범위
pasv_max_port=51000
passive mode로 접근할 포트 상한 범위
sudo nano /etc/vsftpd.chroot_list
위에서 chroot_list를 사용하기로 했다면, 해당 파일에 사용자 계정명을 입력해주어야 합니다.
sudo nano ftpusers
vsftpd.conf 파일의 설정에 따라서 ftpusers의 내용이 정반대가 될 수 있음을 주의하셔야 합니다! 기본 설정에서는 ftpusers 내부에 있는 계정명은 접근이 불가합니다. root 계정을 이용해서 FTP에 접근하고 싶다면, root 앞에 #을 붙여 주석처리하고 저장하시면 됩니다.