|
ftp.uu.net ~ftp/systems/unix/bsd-sources/libexec/ftpd
gatekeeper.dec.com ~ftp/pub/DEC/gwtools/ftpd.tar.Z
CERT/CC 并没有正式地对所提到的FTP daemon做检测、评估或背书。要使用何种FTP daemon 由每个使用者或组织负责决定,而CERT/CC建议每个机关在安装使用这些程序之前, 能做一个彻底的评估。
B. 使用保护的目录
假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon, 我们就可以使用较复杂的目录架构来控制存取。这个方法需要事先规划并且无法百分之百防止FTP可写入区域遭不当使用, 不过许多FTP站仍使用此方法。
为了保护上层的目录(~ftp/incoming), 我们只给匿名的使用者进入目录的权限(chmod 751~ftp/incoming)。这个动作将使得使用者能够更改目录位置(cd),但不允许使用者检视目录内容。Ex:
drwxr-x--x 4 root system 512 Jun 11 13:29 incoming/
在~ftp/incoming使用一些目录名只让你允许他们上传的人知道。为了要让别人不易猜到目录名称, 我们可以用设定密码的规则来设定目录名称。请不要使用本文的目录名称范例(避免被有心人士发现您的目录名, 并上传文件)
drwxr-x-wx 10 root system 512 Jun 11 13:54 jAjwUth2/
drwxr-x-wx 10 root system 512 Jun 11 13:54 MhaLL-iF/
很重要的一点是,一旦目录名被有意无意的泄漏出来, 那这个方法就没什么保护作用。只要目录名称被大部分人知道, 就无法保护那些要限定使用的区域。假如目录名被大家所知道,那你就得选择删除或更改那些目录名。
C. 只使用一颗硬盘:
假如你想要在你的FTP站提供上传的服务, 而你又没办法去修改FTP daemon,您可以将所有上传的资料集中在同一个挂(mount)在~ftp/incoming上的文件系统。可以的话 ,将一颗单独的硬盘挂(mount)在~ftp/incoming上。系统管理者应持续检视这个目录(~ftp/incoming), 如此便可知道开放上传的目录是否有问题。
限制FTP用户目录
匿名FTP可以很好地限制用户只能在规定的目录范围内活动,但正式的FTP用户默认不会受到这种限制,这样,他可以自由在根目录、系统目录、其他用户的目录中读取一些允许其他用户读取的文件。
如何才能把指定的用户象匿名用户一样限制在他们自己的目录中呢?以下我们以red hat和wu-ftp为例做一介绍。
1 创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名.
-----相关命令: groupadd ftpuser
-----相关文件: /etc/group
-----相关帮助: man groupadd
2 创建一个用户,如testuser,建立用户可用adduser命令.如果你已在先前建立了 testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到ftpuser这个组中.
-----相关命令: adduser testuser -g ftpuser
-----相关文件: /etc/passwd
-----相关帮助: man adduser
3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftpuser我是这样改的,加的是最后5行
compress yes all
tar yes all
chmod no anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
guestgroup ftpuser
除了加 guestgroup ftpuser 这行,其他4行也要加上,否则用户登陆后,虽然可以达到用户不能返回上级目录的目的,但是却只能上传,不能覆盖、删除文件!
-----相关命令: vi /etc/ftpaccess
-----相关文件: /etc/ftpaccess
-----相关帮助: man ftpaccess,man chroot
4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /home/ftp/下的Bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件. |
【收藏】【打印】【进入论坛】 |
|
|
|
|
|
|
|