| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
在网络上,匿名FTP是一个很常用的服务,常用于软件下载网站,软件交流网站等,为了提高匿名FTP服务开放的过程中的安全性,我们就这一问题进行一些讨论。 中国网管论坛bbs.bitsCN.com
以下的设定方式是由过去许多网站累积的经验与建议组成。我们认为可以让有个别 网管联盟bitsCN_com
需求的网站拥有不同设定的选择。
网管联盟bitsCN_com
设定匿名FTP 网管网www.bitscn.com
A.FTP daemon
网管bitscn_com
网站必须确定目前使用的是最新版本的FTP daemon. 中国网管论坛bbs.bitsCN.com
B设定匿名FTP的目录 网管下载dl.bitscn.com
匿名ftp的根目录(~ftp)和其子目录的拥有者不能为ftp帐号,或与ftp相同群组的帐号。这是
网管联盟bitsCN@com
一般常见的设定问题。假如这些目录被ftp或与ftp相同群组的帐号所拥有,又没有做好防止写入的保护,入侵者便可能在其中增加文件(例如:。rhosts檔)或修改其它文件。许多网站?市硎褂胷oot帐号。让匿名FTP的根目录与子目录的拥有者是root,所属族群(group)为system?⑾薅ù嫒∪?如chmod 0755),如此只有root有写入的权力,这能帮助你维持FTP服务的安??
以下是一个匿名ftp目录的设定范例: 网管下载dl.bitscn.com
drwxr-xr-x 7 root system 512 Mar 1 15:17 ./ 中国网管联盟bitsCN.com
drwxr-xr-x 25 root system 512 Jan 4 11:30 ……/ 网管网www_bitscn_com
drwxr-xr-x 2 root system 512 Dec 20 15:43 bin/
网管下载dl.bitscn.com
drwxr-xr-x 2 root system 512 Mar 12 16:23 etc/
中国网管联盟bitsCN.com
drwxr-xr-x 10 root system 512 Jun 5 10:54 pub/
所有的文件和链接库,特别是那些被FTP daemon使用和那些在 ~ftp/bin 与~ftp/etc 中的文件,应该像上面范例中的目录做相同的保护。这些文件和链接库除了不应该被ftp帐号或与ftp相同群组的帐号所拥有之外,也必须防止写入。
C.使用合实拿苈胗肴鹤槲募?我们强烈建议网站不要使用系统中 /etc/passwd 做为~ftp/etc 目录中的密码文件或将系统中 /etc/group 做为 ~ftp/etc目录中的群组文件。在~ftp/etc目录中放置这些文件会使得入侵者取得它们。这些文件是可自定的而且不是用来做存取控制。 网管论坛bbs_bitsCN_com
我们建议你在 ~ftp/etc/passwd 与 ~ftp/etc/group 使用代替的文件。这些文件必须由root所拥有。DIR命令会使用这代替的文件来显示文件及目录的拥有者和群组名称。网站必须确定 ~/ftp/etc/passwd档中没有包含任何与系统中 /etc/passwd文件中相同的帐号名称。这些文件应该仅仅包含需要显示的FTP阶层架构中文件与目录的拥有者与所属群组名称。此外,确定密码字段是\\\"整理\\\"过的。例如使用「*」来取代密码字段。 网管网www_bitscn_com
以下为cert中匿名ftp的密码文件范例
ssphwg:*:3144:20:Site Specific Policy Handbook Working Group::
网管网www.bitscn.com
cops:*:3271:20:COPS Distribution::
网管bitscn_com
cert:*:9920:20:CERT:: 网管联盟bitsCN_com
tools:*:9921:20:CERT Tools:: 网管联盟bitsCN@com
ftp:*:9922:90:Anonymous FTP::
nist:*:9923:90:NIST Files:: 网管论坛bbs_bitsCN_com
以下为cert中匿名ftp的群组文件范例
网管网www_bitscn_com
cert:*:20:
ftp:*:90: 网管论坛bbs_bitsCN_com
II.在你的匿名ftp提供可写入的目录
网管联盟bitsCN@com
让一个匿名ftp服务允许使用者储存文件是有风险存在的。我们强烈提醒网站不要自动建立一个上传目录,除非已考虑过相关的风险。CERT/CC的事件回报成员接获许多使用上传目录造成非法传输版权软件或交换帐号与密码信息的事件。也接获恶意地将系统文件灌报造成denialof service问题。
网管u家u.bitscn@com
本节在讨论利用三种方法来解决这个问题。第一种方法是使用一个修正过的FTP daemon.第二个方法是提供对特定目录的写入限制。第三种方法是使用独立的目录。 网管bitscn_com
A. 修正过的FTP daemon
网管联盟bitsCN@com
假如你的网站计划提供目录用来做文件上传,我们建议使用修正过的FTP daemon对文件上传的目录做存取的控制。这是避免使用不需要的写入区域的最好的方法。以下有一些建议:
1.限定上传的文件无法再被存取, 如此可由系统管理者检测后,再放至于适当位置供人下载。 网管bitscn_com
2.限制每个联机的上传资料大小。
网管论坛bbs_bitsCN_com
3.依照现有的磁盘大小限制数据传输的总量。
网管u家u.bitscn@com
4.增加登录记录以提前发现不当的使用。
网管下载dl.bitscn.com
若您欲修改FTP daemon, 您应该可以从厂商那里拿到程序代码, 或者您可从下列地方取得公开的FTP程序原始码:wuarchive.wustl.edu ~ftp/packages/wuarchive-ftpd 网管u家u.bitsCN.com
ftp.uu.net ~ftp/systems/unix/bsd-sources/libexec/ftpd 网管网www.bitscn.com
gatekeeper.dec.com ~ftp/pub/DEC/gwtools/ftpd.tar.Z
网管网www.bitscn.com
CERT/CC 并没有正式地对所提到的FTP daemon做检测、评估或背书。要使用何种FTP daemon由每个使用者或组织负责决定,而CERT/CC建议每个机关在安装使用这些程序之前, 能做一个彻底的评估。
B. 使用保护的目录
网管bitscn_com
假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon, 我们就可以使用较复杂的目录架构来控制存取。这个方法需要事先规划并且无法百分之百防止FTP可写入区域遭不当使用,不过许多FTP站仍使用此方法。 网管网www_bitscn_com
为了保护上层的目录(~ftp/incoming), 我们只给匿名的使用者进入目录的权限(chmod 751~ftp/incoming)。这个动作将使得使用者能够更改目录位置(cd),但不允许使用者检视目录内容。Ex:
drwxr-x——x 4 root system 512 Jun 11 13:29 incoming/
在~ftp/incoming使用一些目录名只让你允许他们上传的人知道。为了要让别人不易猜到目录名称, 我们可以用设定密码的规则来设定目录名称。请不要使用本文的目录名称范例(避免被有心人士发现您的目录名, 并上传文件)
网管u家u.bitscn@com
drwxr-x-wx 10 root system 512 Jun 11 13:54 jAjwUth2/ 网管u家u.bitscn@com
drwxr-x-wx 10 root system 512 Jun 11 13:54 MhaLL-iF/
很重要的一点是,一旦目录名被有意无意的泄漏出来, 那这个方法就没什么保护作用。只要目录名称被大部分人知道, 就无法保护那些要限定使用的区域。假如目录名被大家所知道,那你就得选择删除或更改那些目录名。 网管bitscn_com
C. 只使用一颗硬盘:
中国网管联盟bitsCN.com
假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon,您可以将所有上传的资料集中在同一个挂(mount)在~ftp/incoming上的文件系统。可以的话,将一颗单独的硬盘挂(mount)在~ftp/incoming上。系统管理者应持续检视这个目录(~ftp/incoming), 如此便可知道开放上传的目录是否有问题。
限制FTP用户目录
中国网管联盟bitsCN.com
匿名FTP可以很好地限制用户只能在规定的目录范围内活动,但正式的FTP用户默认不会受到这种限制,这样,他可以自由在根目录、系统目录、其他用户的目录中读取一些允许其他用户读取的文件。
如何才能把指定的用户象匿名用户一样限制在他们自己的目录中呢?以下我们以red hat和wu-ftp为例做一介绍。
1 创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名。
网管bitscn_com
-----相关命令: groupadd ftpuser
-----相关文件: /etc/group
-----相关帮助: man groupadd 网管网www.bitscn.com
2 创建一个用户,如testuser,建立用户可用adduser命令。如果你已在先前建立了 testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到ftpuser这个组中。 网管联盟bitsCN_com
-----相关命令: adduser testuser -g ftpuser
-----相关文件: /etc/passwd
-----相关帮助: man adduser
3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftpuser我是这样改的,加的是最后5行 网管bitscn_com
compress yes all
tar yes all
网管u家u.bitscn@com
chmod no anonymous
delete no anonymous
网管u家u.bitscn@com
overwrite no anonymous 网管下载dl.bitscn.com
rename no anonymous 网管下载dl.bitscn.com
chmod yes guest 网管网www.bitscn.com
delete yes guest
网管u家u.bitscn@com
overwrite yes guest 网管网www_bitscn_com
rename yes guest
guestgroup ftpuser
网管联盟bitsCN@com
除了加 guestgroup ftpuser 这行,其他4行也要加上,否则用户登陆后,虽然可以达到用户不能返回上级目录的目的,但是却只能上传,不能覆盖、删除文件!
网管u家u.bitscn@com
-----相关命令: vi /etc/ftpaccess
-----相关文件: /etc/ftpaccess
-----相关帮助: man ftpaccess,man chroot
4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /home/ftp/下的bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件。 网管论坛bbs_bitsCN_com
-----相关命令: 中国网管论坛bbs.bitsCN.com
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就可以了。 网管下载dl.bitscn.com
-----相关命令: vi /etc/passwd 网管u家u.bitscn@com
这一步可以在步骤2 创建一个用户时就先做好。
网管网www_bitscn_com
-----相关命令: adduser testuser -g ftpuser -s /dev/null
网管网www.bitscn.com
小经验:只要把/home/ftp下的bin和lib目录cp到/etc/skel目录里,以后新建用户都会自动把bin和lib目录CP到用户目录里,当然你也可以加上public_html目录和cgi-bin目录。 网管bitscn_com
经过以上设置,testuser这个用户的所有FTP动作将限制在他的/home/testuser目录中。 网管联盟bitsCN@com
|
0
|
评论加载中…