当前位置: 首页服务器Ftp服务器→正文

如何建立安全的ProFTPD应用经验谈(6)

时间:2007-12-03 赛迪网 曹江华

(3)对FTP用户使用chroot

ProFTPD服务器要限制普通FTP用户可以访问的目录,配置很简单,如果限制skate组的skate用户登录时不能切换到其他目录,修改配置文件加入一行:

DefaultRoot ~ skate,skate

这样他只能呆在自己的home目录中。

(4)限制FTP命令特权

l 禁止一些用户创建和删除目录的特权

如果发现一些用户有威胁行为,可以把他放在一个特定组中(badusers)使用如下的配置:

<Directory /*>
<Limit MKD RMD>
Order deny,allowDenyGroup badusersAllowAll
</Limit></Directory>

这样除了那个特定的用户组之外,其他用户可以创建和删除目录。建立只能上载的FTP服务器,如果要建立一个只能上载的FTP服务器,在主服务器或者虚拟主容器中使用如下配置:

<Directory /*> <Limit RETE>
DenyAll
</Limit> </Directory>

限制对单个目录的访问。

<Directory /*> <Limit CWD>
DenyAll
</Limit> </Directory>

这样相应的FTP用户就不能更改目录。如果使用DenyGroup groupname代替DenyAll ,将配置范围限定在/etc/group文件中定义的groupname用户组中。

限制目录浏览特权

<Directory /my/mp3s>
<Limit DIRS>
DenyGroup newfriends
</Limit>
</Directory>

以上配置可以限制/my/mp3s目录中名为newfriends组的目录浏览特权。这样可以防止他得到/my/mp3s目录的列表。

(5)控制FTP命令缓冲区大小

许多黑客通过发送一个大尺寸的命令攻击FTP服务器,希望造成服务器缓冲区溢出。可以在使用CommandBufferSize命令可以限制客户端命令长度。通常设定为512。

(6)修改ProFTPD服务器使用端口

ProFTP如果使用Stand-alone模式,可以通过设置proftpd.conf来控制它。使用不同端口的设置也较为简单,只需在proftpd.conf中将"Port xx"改为需要的值即可。

(7)使不同用户之间相互隔离

通常访问ISP的FTP服务器时,会看到一些不应当的系统信息,因此隐藏这些信息是必要的,下面是一个配置:

DefaultRoot "/www"
<Directory /www>
HideNoAccess on
<Limit ALL>
IgnoreHidden on
</Limit> </Directory>

HideNoAccess指令将用户隐藏/www 目录下的所有条目,IgnoreHidden指令指示ProFTPD 服务器忽略用户所有指令。

8.建立一个安全的匿名ProFTPD站点

如果人们只需要从FTP服务器等到一些小文件(几兆),可以使用Apache web服务器代替匿名FTP站点。如果要通过一个匿名账号频繁上传、下载文件,就要建立一个安全的ProFTPD服务器。下面是配置文件/etc/proftpd.conf内容(其中incoming目录容许用户上传文件):

<Anonymous ~ftp>
User ftp Group ftp RequireValidShell
off UserAlias anonymous
ftp MaxClients 40
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
<Limit READ>
DenyAll
</Limit>
</Directory>
</Anonymous>
----------------------------------