返回列表 回复 发帖

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

我们大家都知道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。
我的奋斗目标:注册帐号->看文章->看人家灌水->参与灌水->被封全站  ->接着灌水->没事->和版主搞好关系->当个版主->轻闲->当个大版版主->吊起来->被投诉->装孙子->被站务赏识->和站务套磁->请站务吃饭->申请实习站务->批准->开始实习->狂封人装大孙子->转正->名正言顺的灌水
返回列表