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

发表于:2007-07-04来源:作者:点击数: 标签:
我们大家都知道 FTP 服务器 的口令验证是基于明码的,因此,很容易被嗅探到。本文介绍的虚拟 FTP 服务器采用 chroot 的办法,虽然不能防止口令被嗅探,但是能保护你的系统在口令即使被嗅探到的情况下,仍然不能攻破。 虚拟 FTP 服务,除了 chroot 功能以外,

  我们大家都知道 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.8 ,下载后 tar xvfz ... ,make ,make install ,就这么简单。下载地址:
  
  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

原文转自:http://www.ltesting.net