項目介紹
目前主要的FTPserver有三個vsftpd和ProFTPd,wu-ftpd 其中vsftpd 安全性高,性能也比較好一些。 (沒有做過詳細調整,不正確也有可能,隨時更正)
主要使用它的站點:
* ftp.redhat.com * ftp.suse.com * ftp.debian.org * ftp.openbsd.org * ftp.freebsd.org * ftp.gnu.org * ftp.gnome.org * ftp.kde.org * ftp.kernel.org * rpmfind.net* ftp.linux.org.uk * ftp.gimp.org * ftp-stud.fht-esslingen.de* gd.tuwien.ac.at* ftp.sunet.se * ftp.ximian.com * ftp.engardelinux.org * ftp.sunsite.org.uk * ftp.isc.org
有上面這些著名的站點使用它,那麼我也可以放心大膽了。
主要配置
基本缟
實現讓本地用戶可以使用FTP,每個用戶只能看到他自己的目錄這個只需要配置vsftpd.conf文件,配置文件的英文說明足夠了。
chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_listvsftpd.chroot_list裡寫上可以chroot的用戶名。
不在LIST的用戶被限制在自己的HOME目錄中。
高手缟
使用虛擬用戶,這些用戶在系統上都以一個用戶名存在,可以設置不同的HOME DIR,
1)創建guest用戶
groupadd virtualuseradd -d /home/ftpsite -m virtual可以check一下/etc/passwd文件,確保virtual用戶的shell是/bin/false,這樣做是禁止通過ssh或telnet以及本地login
2)生成虛擬用戶
apt-get install libdb3-util注意這裡一定要用db3_load生成hash文件,不是系統默認的db4.2_load
cat login.txtusera123userb456db3_load -T -t hash -f login.txt /etc/vsftpd.login.dbchmod 600 /vsftpd.login.db,只能ROOT讀取。 zless /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/README.gz其中有如下內容:
NOTE: Many systems have multiple versions of "db" installed, so you mayneed to use e.g. db3_load for correct operation. This is known to affectsome Debian systems. The core issue is that pam_userdb expects its logindatabase to be a specific db version (often db3, whereas db4 may be installedon your system)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd.loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd.login注意後面沒有db的後綴。
anon_world_readable_only=NOwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/usr/www/kjcroot/yangliudi只能上傳不能刪除的配置為:
anon_world_readable_only=NOwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=NOlocal_root=/usr/www/kjcroot/yangliudi只能下載的:
anon_world_readable_only=YESwrite_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOlocal_root=/usr/www/kjcroot/yangliudi6)/etc/init.d/vsftpd start