文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网站建设 >> 建站技术 >> 文章内容  
 

 
如何巧妙设定安全的匿名FTP

www.hx99.org 阅读: 时间:2007-07-09 整理:华西黑盟
------------------------------------------------------------------
 

在网络上,匿名FTP是一个很常用的服务,常用于软件下载网站,软件交流网站等,为了提高匿名FTP服务开放的过程中的安全性,我们就这一问题进行一些讨论。

  以下的设定方式是由过去许多网站累积的经验与建议组成。我们认为可以让有个别需求的网站拥有不同设定的选择。
  
  设定匿名FTP
  
  A.FTPdaemon
  
  网站必须确定目前使用的是最新版本的FTPdaemon。
  
  B设定匿名FTP的目录
  
  匿名ftp的根目录(~ftp)和其子目录的拥有者不能为ftp帐号,或与ftp相同群组的帐号。这是一般常见的设定问题。假如这些目录被ftp或与ftp相同群组的帐号所拥有,又没有做好防止写入的保护,入侵者便可能在其中增加文件或修改其它文件。现在许多网站都拥有root帐号,如果让匿名FTP的根目录与子目录的拥有者是root,所属族群(group)为system?,如此只有root有写入的权力,这能帮助你维持FTP服务的安全???
  
  以下是一个匿名ftp目录的设定范例:
  
  drwxr-xr-x7rootsystem512Mar115:17./
  
  drwxr-xr-x25rootsystem512Jan411:30../
  
  drwxr-xr-x2rootsystem512Dec2015:43bin/
  
  drwxr-xr-x2rootsystem512Mar1216:23etc/
  
  drwxr-xr-x10rootsystem512Jun510:54pub/
  
  所有的文件和链接库,特别是那些被FTPdaemon使用和那些在~ftp/bin与~ftp/etc中的文件,应该像上面范例中的目录做相同的保护。这些文件和链接库除了不应该被ftp帐号或与ftp相同群组的帐号所拥有之外,也必须防止写入。
  
  C.我们强烈建议网站不要使用系统中/etc/passwd做为~ftp/etc目录中的密码文件或将系统中/etc/group做为~ftp/etc目录中的群组文件。在~ftp/etc目录中放置这些文件会使得入侵者取得它们。这些文件是可自定的而且不是用来做存取控制。
  
  我们建议你在~ftp/etc/passwd与~ftp/etc/group使用代替的文件。这些文件必须由root所拥有。DIR命令会使用这代替的文件来显示文件及目录的拥有者和群组名称。网站必须确定~/ftp/etc/passwd档中没有包含任何与系统中/etc/passwd文件中相同的帐号名称。这些文件应该仅仅包含需要显示的FTP阶层架构中文件与目录的拥有者与所属群组名称。此外,确定密码字段是"整理"过的。例如使用「*」来取代密码字段。
  
  以下为cert中匿名ftp的密码文件范例
  
  ssphwg:*:3144:20:SiteSpecificPolicyHandbookWorkingGroup::
  
  cops:*:3271:20:COPSDistribution::
  
  cert:*:9920:20:CERT::
  
  tools:*:9921:20:CERTTools::
  
  ftp:*:9922:90:AnonymousFTP::
  
  nist:*:9923:90:NISTFiles::
  
  以下为cert中匿名ftp的群组文件范例
  
  cert:*:20:
  
  ftp:*:90:
  
  II..在你的匿名ftp提供可写入的目录
  
  让一个匿名ftp服务允许使用者储存文件是有风险存在的。我们强烈提醒网站不要自动建立一个上传目录,除非已考虑过相关的风险。CERT/CC的事件回报成员接获许多使用上传目录造成非法传输版权软件或交换帐号与密码信息的事件。也接获恶意地将系统文件灌报造成denialofservice问题。

  本节在讨论利用三种方法来解决这个问题。第一种方法是使用一个修正过的FTPdaemon。第二个方法是提供对特定目录的写入限制。第三种方法是使用独立的目录。

  A.修正过的FTPdaemon
  
  假如你的网站计划提供目录用来做文件上传,我们建议使用修正过的FTPdaemon对文件上传的目录做存取的控制。这是避免使用不需要的写入区域的最好的方法。以下有一些建议:
  
  1.限定上传的文件无法再被存取,如此可由系统管理者检测后,再放至于适当位置供人下载。
  
  2.限制每个联机的上传资料大小。
  
  3.依照现有的磁盘大小限制数据传输的总量。
  
  4.增加登录记录以提前发现不当的使用。
  
  若您欲修改FTPdaemon,您应该可以从厂商那里拿到程序代码,或者您可从下列地方取得公开的FTP程序原始码:
  
  wuarchive.wustl.edu~ftp/packages/wuarchive-ftpd
  
  ~ftp/systems/unix/bsd-sources/libexec/ftpd
  
  gatekeeper.dec.com~ftp/pub/DEC/gwtools/ftpd.tar.Z
  
  CERT/CC并没有正式地对所提到的FTPdaemon做检测、评估或背书。要使用何种FTPdaemon由每个使用者或组织负责决定,而CERT/CC建议每个机关在安装使用这些程序之前,能做一个彻底的评估。
  
  B.使用保护的目录
  
  假如你想要在你的FTP站提供上传的服务,而你又没办法去修改FTPdaemon,我们就可以使用较复杂的目录架构来控制存取。这个方法需要事先规划并且无法百分之百防止FTP可写入区域遭不当使用,不过许多FTP站仍使用此方法。
  
  为了保护上层的目录(~ftp/incoming),我们只给匿名的使用者进入目录的权限(chmod751~ftp/incoming)。这个动作将使得使用者能够更改目录位置(cd),但不允许使用者检视目录内容。Ex:
  
  drwxr-x--x4rootsystem512Jun1113:29incoming/
  
  在~ftp/incoming使用一些目录名只让你允许他们上传的人知道。为了要让别人不易猜到目录名称,我们可以用设定密码的规则来设定目录名称。请不要使用本文的目录名称范例(避免被有心人士发现您的目录名,并上传文件)
  
  drwxr-x-wx10rootsystem512Jun1113:54jAjwUth2/
  
  drwxr-x-wx10rootsystem512Jun1113:54MhaLL-iF/
  
  很重要的一点是,一旦目录名被有意无意的泄漏出来,那这个方法就没什么保护作用。只要目录名称被大部分人知道,就无法保护那些要限定使用的区域。假如目录名被大家所知道,那你就得选择删除或更改那些目录名。
  
  C.只使用一颗硬盘:
  
  假如你想要在你的FTP站提供上传的服务,而你又没办法去修改FTPdaemon,您可以将所有上传的资料集中在同一个挂(mount)在~ftp/incoming上的文件系统。可以的话,将一颗单独的硬盘挂(mount)在~ftp/incoming上。系统管理者应持续检视这个目录(~ftp/incoming),如此便可知道开放上传的目录是否有问题。
  
  限制FTP用户目录
  
  匿名FTP可以很好地限制用户只能在规定的目录范围内活动,但正式的FTP用户默认不会受到这种限制,这样,他可以自由在根目录、系统目录、其他用户的目录中读取一些允许其他用户读取的文件。
  
  如何才能把指定的用户象匿名用户一样限制在他们自己的目录中呢?以下我们以redhat和wu-ftp为例做一介绍。
  
  1创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名.
  
  -----相关命令:groupaddftpuser
  
  -----相关文件:/etc/group
  
  -----相关帮助:mangroupadd
  
  2创建一个用户,如testuser,建立用户可用adduser命令.如果你已在先前建立了testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到ftpuser这个组中.
  
  -----相关命令:addusertestuser-gftpuser
  
  -----相关文件:/etc/passwd
  
  -----相关帮助:manadduser

  3修改/etc/ftpaccess文件,加入guestgroup的定义:guestgroupftpuser我是这样改的,加的是最后5行
  
  compressyesall
  
  taryesall
  
  chmodnoanonymous
  
  deletenoanonymous
  
  overwritenoanonymous
  
  renamenoanonymous
  
  chmodyesguest
  
  deleteyesguest
  
  overwriteyesguest
  
  renameyesguest
  
  guestgroupftpuser
  
  除了加guestgroupftpuser这行,其他4行也要加上,否则用户登陆后,虽然可以达到用户不能返回上级目录的目的,但是却只能上传,不能覆盖、删除文件!

  -----相关命令:vi/etc/ftpaccess
  
  -----相关文件:/etc/ftpaccess
  
  -----相关帮助:manftpaccess,manchroot
  
  4向这个用户的根目录下拷贝必要的文件,拷贝ftpserver自带的目录,把/home/ftp/下的Bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件.
  
  -----相关命令:
  
  cp-rf/home/ftp/lib/home/testuser;cp-rf/home/ftp/bin/home/testuser
  
  5另外可别忘了关掉用户的telnet权,否则就白做了噢.怎么不让用户telnet呢?很简单:在/etc/shells里加一行/dev/null,然后可以直接编辑/etc/passwd文件,把用户的shell设置为/dev/null就可以了.
  
  -----相关命令:vi/etc/passwd
  
  这一步可以在步骤2创建一个用户时就先做好.
  
  -----相关命令:addusertestuser-gftpuser-s/dev/null
  
  小经验:只要把/home/ftp下的bin和lib目录cp到/etc/skel目录里,以后新建用户都会自动把bin和lib目录CP到用户目录里,当然你也可以加上public_html目录和cgi-bin目录.
  
  经过以上设置,testuser这个用户的所有FTP动作将限制在他的/home/testuser目录中

   -------------------------------------------------------------------------------------------
  上一篇:Win2000 下安装JSP程序支持
  下一篇:安装配置服务器失败的解决
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
IP地址域名互查之独门绝技
安装配置服务器失败的解决
Windows2003下IIS6结合Ser
网页制作FAQ (简单版)
请问个位朋友如何上传做好
什么是 Apache HTTP Serve
PHP+MySQL+Apache+Zend Op
轻松架设Windows2003用户
我做了一个GIF动画,放到
Apache是怎样启动的
如何巧妙设定安全的匿名FT
内网域名及端口映射的原理
什么是Apache ?
Apache基于域名的虚拟主机
Logo制作的心得和体会
IIS6架设网站常见问题及症
快速高效的网站文件管理新
在网页中实现flash全屏的
HTTP 500 内部服务器错误
如何选好JSP虚拟空间
内网FTP服务器架设不完全
手把手教你做传奇私服
独立服务器win2003系统站
Vista下IIS7的安装及ASP+A
Apache虚拟主机的普通配置
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号