Linux下vsftpd的安全化的配置
--------------------------------------------------------------------------------
项目介绍
目前主要的FTPserver有三个vsftpd和ProFTPd,wu-ftpd 其中vsftpd 安全性高,性能也比较好一些。 (没有做过详细调整,不正确也有可能,随时更正)
主要配置
基本缟
实现让本地用户可以使用FTP,每个用户只能看到他自己的目录这个只需要配置vsftpd.conf文件,配置文件的英文说明足够了。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
vsftpd.chroot_list里写上可以chroot的用户名,不在LIST的用户被限制在自己的HOME目录中。
高手缟
使用虚拟用户,这些用户在系统上都以一个用户名存在,可以设置不同的HOME DIR,
1)创建guest用户
groupadd virtual
useradd -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=YES
ftpd_banner=Welcome to virtual FTP service.
anonymous_enable=NO //不许匿名登录
local_enable=YES //允许本地用户登录
write_enable=NO
anon_upload_enable=NO //这里先把虚拟用户的权限设置成最低的
anon_mkdir_write_enable=NO //然后针对不同用户设置相应的权限 anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES //允许虚拟用户登录
guest_username=virtual
pasv_min_port=30000
pasv_max_port=30999
pam_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=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/usr/www/kjcroot/yangliudi
只能上传不能删除的配置为:
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
local_root=/usr/www/kjcroot/yangliudi
只能下载的:
anon_world_readable_only=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_root=/usr/www/kjcroot/yangliudi
6)/etc/init.d/vsftpd start