项目介绍
目前主要的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