频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用vsftpd架设安全的FTP服务器

来源:Chinabyte 作者:1 出处:巧巧读书 2006-08-19 进入讨论组
关 键 词:access  cpu  director  dos  ftp  

  至此,一个匿名服务器已经可以正常运行了,并且进行了安全方面的设置。
实际中,根据FTP服务器不同的需求,比如想启用本地用户登录、想让某类用户具备上传能力、想让登录者看到一份友好的欢迎信息等,还可以在vsftpd.conf中进行相应的设置(用“man vsftpd.conf”参考man手册可获得更多的详细资料)。

  有一些设置选项跟运行模式或外挂模块有关,还有一些选项必须依赖于另一个选项的启用状态。总之,只要精心搭配,完全可以定制出一个称心的FTP服务器

  tcp_wrappers的应用

  要使用这项功能需要在安装编译之前构建包含tcp_wrappers的vsftpd。可通过编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项“tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。以下是一个样例:

  vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf

  vsftpd: 192.168.1.4: DENY

  其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。这一点对别有用心的连接者很有用。

  PAM的应用

  PAM应用也就是在开启了PAM的系统上应用“虚拟用户”功能。下面一个样例演示怎样利用“虚拟用户”来设置vsftpd的PAM。虚拟用户是指不像系统上的真实用户一样客观存在的用户。虚拟用户因此而比真实用户更安全,因为一个像这样有威胁系统安全的账户却仅能使用FTP服务。虚拟用户常用来服务那些不想开放给不被信任用户的内容,一般不影响正常的普通用户。

  1.创建虚拟用户数据库

  使用pam_userdb来鉴别虚拟用户。这需要一个“db”格式的用户名/密码文件。要创建一个“db”格式文件,首先要创建一个在交替行上写有用户名和密码的无格式文本文件,代码如下:

  $ vi logins.txt

  编辑文件内容如下:

  tom

  foo

  fred

  bar

  上面的“tom”对应着密码“foo”,“fred”对应着密码“bar”。同时用root身份登陆,创建实际的数据库文件,代码如下:

  #要求已安装了Berkeley db 程序

  这样即可创建“/etc/vsftpd_login.db”。如果想改变访问许可权限,可用如下命令:

  $ chmod 600 /etc/vsftpd_login.db

  此外,如果想了解更多有关如何维护登陆数据库的知识,可寻找在“Berkeley DB”上的文档资料,网址为http://www.sleepycat.com/docs/utility/index.html。

  2.建一个使用新数据库的PAM文件

  创建编辑文件vsftpd.pam,包含以下两行:

  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

  accound required /lib/security/pam_userdb.so db=/etc/vsftpd_login

  告诉PAM使用新数据库来鉴别用户。把该PAM文件保存到PAM目录(通常为“/etc/pam.d/cp vsftpd.pam /etc/pam.d/ftp”)。

  3.为虚拟用户设置文件位置

  接下来使用以下命令为为虚拟用户设置文件位置:

  $ useradd -d /home/ftpsite virtual

  $ ls -ld /home/ftpsite

  将显示如下:

  drwx------3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

  已经创建一个叫做“virtual”的用户,并且有一个主目录“/home/ftpsite”。增加一些内容到这个下载区域,代码如下:

  $ cp /etc/hosts /home/ftpsite

  $ chown virtual.virtual /home/ftpsite/hosts

  4.定制vsftpd.conf配置文件

  重新定制vsftpd.conf文件:

  anonymous_enable=NO

  local_enable=YES

  # 由于安全因素应关闭匿名FTP,并开启非匿名FTP(虚拟用户需使用)。

  write_enable=NO

  anon_upload_enable=NO

  anon_mkdir_write_enable=NO

  anon_other_write_enable=NO

  # 出于安全目的写下这些确保命令,不许写命令执行

  chroot_local_user=YES

  # 限制虚拟用户到我们上面设置的虚拟FTP区域 /home/ftpsite。

  guest_enable=YES

  guest_username=virtual

  # guest_enable很重要,能激活虚拟用户。guest_username表示所有

  的虚拟用户都被映射到上面设置的真实用户“virtual”。这也将确定在文件系统上

  虚拟用户的最终归宿,用户“virtual”的主目录“/home/ftpsite”。

  listen=YES

  listen_port=10021

  # 这置vsftpd在“standalone”模式,不从inetd运行。这意味着仅需执行vsftpd

  运行命令一次,它就开始运行起来。这也使得vsftpd监听在10021的非标准端口上

  的FTP需求(FTP通常使用端口21)。

  pasv_min_port=30000

  pasv_max_port=30999

  # 这些命令在被动FTP接收端放置一个端口序列。对配置防火墙很有用。

  5.开始运行vsftpd

  进入vsftpd源代码所在的目录,并执行“./vsftpd”,如果光标一直停在那里说明无误;否则将会看到一些错误信息。

  6.测试

  装载另一个Shell会话进程(或者把程序切换到后台运行,按CTRL+Z然后敲“bg”)。以下是一个FTP会话样例:

  ftp localhost 10021

  Connected to localhost (127.0.0.1).

  220 ready, dude (vsFTPd 1.1.3: beat me, break me)

  Name (localhost:chris): tom

  331 Please specify the password.

  Password:

  230 Login successful. Have fun.

  Remote system type is UNIX.

  Using binary mode to transfer files.

  ftp> pwd

  257 "/"

  ftp> ls

  227 Entering Passive Mode (127,0,0,1,117,135)

  150 Here comes the directory listing.

  226 Transfer done (but failed to open directory).

  ftp> size hosts

  213 147

  ftp>

  这里给出的密码是“foo”。不要因为出现“failed to open directory”而害怕,那是因为目录“/home/ftpsite”不全部可读。可以看到,通过size命令已经访问到复制进虚拟FTP区域的“hosts”文件。

更多文章 更多内容请看FreeBSD系统安全管理  FTP的安全  FTP服务器专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
·路由安全配置专题 (11376篇文章)
·FTP服务器 (5813篇文章)
·打造安全服务器 (12814篇文章)
·服务器行业应用 (5344篇文章)
·服务器配件 (5481篇文章)
·服务器技术 (5344篇文章)
·服务器分类 (5344篇文章)
·MySQL安全 (9495篇文章)
·IMail服务器 (5432篇文章)
·电子邮件安全 (8020篇文章)
热点标签: access  cpu  director  dos  ftp  
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
 
Web 本站
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章