4. vsFTPd安全设置
vsFTPd是一款非常闻名的ftp daemon程序,目前包括Redhat.com在内很多大公司都在使用,它是一款非常安全的程序,因为它的名字就叫:Very Secure FTP Daemon (非常安全的FTP服务器)。
vsftpd设置选项比较多,涉及方方面面,我们下面主要是针对安全方面进行设置。
目前我们的需求就是使用系统帐户同时也作为是我们的FTP帐户来进行我们文件的治理,目前假设我只需要一个帐户来更新我的网站,并且我不希望该帐户能够登陆我们的系统,比如我们的网站的目录是在/usr/www下面,那么我们新建一个用户ftp,它的主目录是/usr/www,并且它的shell是/usr/sbin/nologin,就是没有shell,防止该用户通过ssh等登陆到系统。
下面在进行系统详尽的设置,主要就是针对vsftpd的配置文件vsftpd.conf文件的配置。
(1) 禁止匿名用户访问, 我们不需要什么匿名用户,直接禁止掉:
anonymous_enable=NO
(2) 答应本地用户登陆,因为我们需要使用ftp用户来对我们网站进行治理:
local_enable=YES
(3) 只答应系统中的ftp用户或者某些指定的用户访问ftp,因为系统中帐户众多,不可能让谁都访问。
打开用户文件列表功能:
userlist_enable=YES
只答应用户文件列表中的用户访问ftp:
userlist_deny=NO
用户名文件列表路径:
userlist_file=/etc/vsftpd.user_list
然后在/etc下建立文件 vsftpd.user_list 文件,一行一个,把用户ftp加进去,同时也可以加上你答应访问的系统帐户名。
(4) 禁止某些用户登陆ftp:
pam_service_name=vsftpd
指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。
/etc/vsftpd.ftpusers
VSFTPD禁止列在此文件中的用户登录FTP服务器,用户名是一行一个。这个机制是在/etc/pam.d/vsftpd中默认设置的。
这个功能和(3)里的功能有点类似,他们俩能结合使用,那样就最好了。
(5) 把本地用户锁定在自己的主目录,防止转到其他目录,比如把/etc/passwd给下载了:
chroot_local_users=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后在/etc下建立vsftpd.chroot_list文件,里面把我们要限制的本地帐户加进去,一行一个,我们加上ftp,防止它登陆到系统。
(6) 隐藏文件真实的所有用户和组信息,防止黑客拿下ftp后查看更多系统用户信息:
hide_ids=YES
(7) 取消ls -R命令,节省资源,因为使用该命令,在文件列表很多的时候将浪费大量系统资源:
ls_recurse_enable=NO
(8) 上传文件的默认权限,设置为022:
local_umask=022
假如要覆盖删除等,还要打开:
write_enable=YES
(9) ftp的banner信息,为了防止黑客获取更多服务器的信息,设置该项:
ftpd_banner=banner string
把后面的banner string设为你需要的banner提示信息,为了安全,建议不要暴露关于vsFTPd的任何信息。
另外,假如你的信息比较多的话,可以设置为提示信息是读取一个文件中的信息:
banner_file=/directory/vsftpd_banner_file
(10) 打开日志功能:
xferlog_enable=YES
同时设置日志的目录:
xferlog_file=/var/log/vsftpd.log
启用具体的日志记录格式:
xferlog_enable=YES
(11) 假如打开虚用户功能等,那么建议关闭本地用户登陆:
local_enable=NO
vsFTPd还有很多安全设置,究竟人家的名字就是:Very Secure FTP Daemon,反正它的溢出漏洞什么的是很少的,假如要更安全,建议按照自己的需要设置vsftpd,设置的好,它绝对是最安全的。

发表评论