項(xiàng)目介紹
目前主要的FTPserver有三個(gè)vsftpd和ProFTPd,wu-ftpd 其中vsftpd 安全性高,性能也比較好一些。 (沒(méi)有做過(guò)詳細(xì)調(diào)整,不正確也有可能,隨時(shí)更正)
主要使用它的站點(diǎn):
* 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
有上面這些著名的站點(diǎn)使用它,那么我也可以放心大膽了。
主要配置
基本縞
實(shí)現(xiàn)讓本地用戶可以使用FTP,每個(gè)用戶只能看到他自己的目錄這個(gè)只需要配置vsftpd.conf文件,配置文件的英文說(shuō)明足夠了。
chroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_listvsftpd.chroot_list里寫(xiě)上可以chroot的用戶名。
不在LIST的用戶被限制在自己的HOME目錄中。
高手縞
使用虛擬用戶,這些用戶在系統(tǒng)上都以一個(gè)用戶名存在,可以設(shè)置不同的HOME DIR,
1)創(chuàng)建guest用戶
groupadd virtualuseradd -d /home/ftpsite -m virtual可以check一下/etc/passwd文件,確保virtual用戶的shell是/bin/false,這樣做是禁止通過(guò)ssh或telnet以及本地login
2)生成虛擬用戶
apt-get install libdb3-util |
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) |
3)生成/etc/pam.d/vsftpd.vu文件,內(nèi)容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd.loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd.login |
4)修改vsftpd.conf文件,內(nèi)容如下:
listen=YES#listen_port=10021 //你可以在這里指定監(jiān)聽(tīng)的端口,也可以用默認(rèn)的connect_from_port_20=YESftpd_banner=Welcome to virtual FTP service.anonymous_enable=NO //不許匿名登錄local_enable=YES //允許本地用戶登錄write_enable=NOanon_upload_enable=NO //這里先把虛擬用戶的權(quán)限設(shè)置成最低的anon_mkdir_write_enable=NO //然后針對(duì)不同用戶設(shè)置相應(yīng)的權(quán)限anon_other_write_enable=NOchroot_local_user=YESguest_enable=YES //允許虛擬用戶登錄guest_username=virtualpasv_min_port=30000pasv_max_port=30999pam_service_name=vsftpd.vu //這里的pam根據(jù)步驟3,設(shè)成相應(yīng)的user_config_dir=/etc/vsftpd_user_conf //指定用戶配置文件的目錄xferlog_enable=YES //設(shè)置日志文件xferlog_file=/var/log/vsftpd.log
5)用戶權(quán)限配置
注意最好用chmod 600把所有的文件設(shè)成只有root讀寫(xiě)方式。
anon_world_readable_only=NO //打開(kāi)瀏覽權(quán)限write_enable=YES //打開(kāi)寫(xiě)權(quán)限anon_upload_enable=YES //上傳權(quán)限anon_mkdir_write_enable=YES //建立目錄權(quán)限anon_other_write_enable=YES //更改和刪除權(quán)限local_root=/tmp 用于更改root.
上面的這些可以組合起來(lái)使用。
上傳、下載、刪除需要的設(shè)置:
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/yangliudi |


