萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> Linux下vsftpd的安全化的配置

Linux下vsftpd的安全化的配置

項目介紹
目前主要的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)


3)生成/etc/pam.d/vsftpd.vu文件,內容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd.loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd.login

注意後面沒有db的後綴。
4)修改vsftpd.conf文件,內容如下:
listen=YES#listen_port=10021 //你可以在這裡指定監聽的端口,也可以用默認的connect_from_port_20=YESftpd_banner=Welcome to virtual FTP service.anonymous_enable=NO //不許匿名登錄local_enable=YES //允許本地用戶登錄write_enable=NOanon_upload_enable=NO //這裡先把虛擬用戶的權限設置成最低的anon_mkdir_write_enable=NO //然後針對不同用戶設置相應的權限anon_other_write_enable=NOchroot_local_user=YESguest_enable=YES //允許虛擬用戶登錄guest_username=virtualpasv_min_port=30000pasv_max_port=30999pam_service_name=vsftpd.vu //這裡的pam根據步驟3,設成相應的user_config_dir=/etc/vsftpd_user_conf //指定用戶配置文件的目錄xferlog_enable=YES //設置日志文件xferlog_file=/var/log/vsftpd.log
5)用戶權限配置
注意最好用chmod 600把所有的文件設成只有root讀寫方式。
anon_world_readable_only=NO //打開浏覽權限write_enable=YES //打開寫權限anon_upload_enable=YES //上傳權限anon_mkdir_write_enable=YES //建立目錄權限anon_other_write_enable=YES //更改和刪除權限local_root=/tmp 用於更改root.
上面的這些可以組合起來使用。
上傳、下載、刪除需要的設置:
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

6)/etc/init.d/vsftpd start

copyright © 萬盛學電腦網 all rights reserved