2007. 1. 4. 15:39

ProFTPD, VsFTPD

1. 가장 많이 쓰이고 있는 ?ProFTPd 를 설치합니다. 아래 패키지를 설치하면 됩니다.


apt-get install proftpd proftpd-common
2. 사용자 홈에만 접근하게 하려면 /etc/proftpd.conf 에 다음을 추가하시면 됩니다. (아파치와 유사한 설정파일)


DefaultRoot ~

참고문서 #
Pro FTP 설정 - http://proftpd.oops.org

?VsFTPd - 작고 빠른 FTP 가 필요하시면 vsftpd 문서를 읽어보세요.




VsFTPD

1. 작고, 간단한 FTP 데몬입니다. 아래 패키지를 설치하면 됩니다.


apt-get install vsftpd
2. /etc/inetd.conf 파일을 열어 아래 내용의 주석을 제거하여 vsftp 를 등록합니다.


ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/vsftpd
3. ftp 라는 유저를 만듭니다. (anonymous 를 허용하지 않는 경우) !!! 주의사항 !!!
예전 ?ProFTPd 설치시,
debconf 설정에서 익명접속 허용을 설정하셨던 분들은
ftp 유저가 이미 존재하므로 이 단계를 건너뛰셔도 무관합니다.


adduser --system --no-create-home ftp
4. anonymous의 접속을 허용하려면 ftp 홈디렉토리를 만들고, ftp 디렉토리 소유를 다른계정(root)으로 만듭니다. (이것은 아래 관련링크(http://debianusers.org/print.php?story=02/01/03/8717350)를 참조하시길 바랍니다.)


adduser ftp
chown root ftp

!!! 주의사항 !!!
일반적으로 익명(anonymous) 접속시,
ftp 와 같은 Non-Privileged 유저로 앨리어스되는 건 다들 알고 계실 겁니다. 
예전 ProFTPd 설치시 생성됐던 ftp 유저의 홈디렉토리(/home/ftp) 소유권은 기본적으로
ftp.nogroup 으로 셋팅되어져 있습니다. 그러나 VS-FTPd의 경우엔 ftp 유저의 홈디렉토리 소유권이
반드시 root 로 셋팅되어 있어야 합니다. 따라서 예전 ProFTPd 를 통해 생성된 ftp 유저의 홈디렉토리를
VS-FTPd 에서도 그대로 이용하실 경우라면 반드시 ftp 유저의 홈디렉토리권한을 root 로 셋팅하는걸
잊지 마시기 바랍니다.
5. /etc/vsftpd.conf 를 열어 필요한 옵션의 주석을 제거합니다.


anonymous_enable=YES      <- anonymous 가능
local_enable=YES          <- 일반 user의 접근 가능
write_enable=YES          <- 쓰기 가능
local_umask=022           <- 업로드시 group 과 other 의 읽기 가능
anon_upload_enable=YES    <- anonymous 업로드 가능 (관련링크 참조)
ascii_upload_enable=YES   <- ASCII 파일 업로드 가능
ascii_download_enable=YES <- ASCII 파일 다운로드 가능

chroot_local_user=YES     <- FTP 로그인시, 최상단 디렉토리를 해당유저의 홈계정 안으로 제한
chroot_list_enable=YES    <- 유저명이 기입된 리스트의 사용을 활성화
chroot_list_file=/etc/vsftpd.chroot_list <- 유저 리스트의 파일명을 명시

!!! 주의사항 !!! 
* chroot_local_user=YES 일 경우,
유저리스트에 기입된 유저: 홈계정 제한을 풀어줄 유저를 의미
* chroot_local_user=NO 일 경우,
유저리스트에 기입된 유저: 홈계정 제한을 가할 유저를 의미 (혼동하지 않으시길 :-)

//ftp의 포트를 변경하고자 할때 추가해주시면 됩니다.
listen=YES
listen_port=2121 //원하는 포트
6. /etc/init.d/inetd restart (또는 kill -HUP INETD's_PID)해서 inetd 서버를 재시동하면 vsftpd 가 작동합니다.



참고문서 #
이호석님의 예전문서 : http://debianusers.org/print.php?story=02/01/03/8717350