我们大家都知道FTP服务器的口令验证是基于明码的,因此很容易被嗅探到。本文介绍的虚拟FTP服务器采用chroot的办法,虽然不能防止口令被嗅探,但是能保护你的系统在口令即使被嗅探到的情况下,仍然不能攻破。
虚拟FTP服务,除了chroot功能以外,还采用了第二个口令数据库来验证用户,这样你就不需要建立FTP用户帐号,即使口令泄漏,用户也不能登录到系统。
我们采用一个叫作vftpd的守护程序来扮演虚拟FTP服务器的角色,主要的安全特色包括:
始终采用chroot处理用户的home目录;
允许用户在没有shell的情况下存取;
VFTPD不允许用户的home为:/, /etc, /bin, /sbin, /usr/bin, /usr/sbin, /dev/, /lib, /tmp;
Home目录的路径不能包含符号连接;
除了root用户具有UID 0以外,不允许其他用户具有;
不允许用户的口令文件对组和其他有写权限。
安装vftpd很简单,目前最新的版本为 6.5.7 ,下载后使用tar xvfz ... ,make ,make install ,就行了。vftpd的下载地址是:startuplinux.com/virtualftpd.html。
大多数的配置工作都是自动完成的,唯一需要修改的是/etc/ftppasswd文件,这个文件包含了用户真正的FTP帐号。这个文件的格式基本上和/etc/password一样,每行格式为:
login:encryptedpassword:uid:gid:description:ftppath:/no/shell
vftpd提供了一个叫做addvuser的工具,能很方便的增加FTP用户,修改当前用户的口令是“ftppasswd username”。
如果当前确有shell帐户的用户要增加,也需要在ftppasswd中添加该用户,但是口令最好不要一样。
对于不需要FTP的用户,可以把帐号加入/etc/ftpusers。
最后,为/etc/ftpwelcome(连接后显示)和/etc/motd(成功登陆后显示)增加FTP登陆信息。
现在可以启动进程了:
vftpd -D -l -U
其中解释如下:
-D:使其成为守护程序在后台运行;
-l:logs FTP在syslog中登陆日志记录 (失败和成功的记录) ,两次-l则记录详细信息;
-U:允许你使用who命令查看当前激活的FTP会话;
-A:只允许匿名用户连接;
-S:把匿名连接的日志记录到/var/log/ftpd;
-p:端口号,缺省为21。
例如,我们可以在rc.local里面写入:
/usr/local/bin/vftpd -D -U -l -l
呵呵,一切OK。
推荐阅读:
QQ密码盗取最新手段揭秘
QQ强制视频聊天,一个动人的神话!
谁动了我的电脑一查就知
本文来源:天下网盟 作者:佚名