(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>