您当前的位置:首页 > 其他技术 > 系统技术

巧用vftpd设置一台虚拟的安全FTP服务器

本文出处:网游动力作者:本站发布时间:2008-10-24阅读次数:
我们大家都知道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。