VPS

使用xinetd方式运行ProFTPD可以有效防范DoS攻击

ProFTPD是针对Wu-FTP的弱项而开发的,已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,TurboLinux就是一个例子。

1.使用xinetd方式运行ProFTPD

ProFTPD能以Stand-alone、xinetd两种模式运行,当用户账号比较少又经常需要连接到ProFTPD服务器时推荐使用xinetd模式运行。使用xinetd方式运行ProFTPD可以有效防范DoS攻击。原理和方法可以查看。

2.隐藏服务器版本信息

通常软件的版本信息是攻击者寻求最有价值的信息。修改配置文件:/etc/Proftpd.conf:

ServerIdent off

3.使用非root权限运行Proftpd

以非root权限运行Proftpd。修改配置文件:/etc/Proftpd.conf:

User nobody //设置FTP服务以nobody运行

Group nobody //原来是Group nobody,一定要改为“Group nobody”

上面的配置表示以nobody用户身份运行Proftpd。使用nobody身份运行能够降低缓冲区溢出攻击所带来的危险。

4.监控Proftpd服务器

通常新部署一个FTP服务器之后需要进行一段时间的监控:记录FTP连接记录、谁连接到我的FTP服务器。Proftpd本身附带了几个命令可以使用:

usr/local/bin/ftpcout:显示FTP服务器连接数信息。

usr/local/bin/ftpwho:显示FTP服务器连接用户名称信息。

可以使用watch命令配合使用,运行下面命令:

watch -n 60 /usr/local/bin/ftpcount

这个命令每六十秒显示一次连接数目信息。

 5.修改Proftpd服务器配置文件

Proftpd服务器配置文件/etc/Proftpd.conf中许多选项可以加固服务器。/etc/Proftpd.conf文件格式和Apache服务器配置非常相像。

(1)通过IP地址限制FTP访问

假设要允许主机名称myhost.domain.com访问FTP服务器,首先使用命令Ping myhost.domain. com。假设登到IP地址216.112.169. 138,修改配置文件,加入以下内容:

Order Allow,Deny

Allow from 216.112.169.138

Deny from all

注意:不要在Allow命令后直接使用主机名称,因为检查主机名称会降低服务器的运行速度。另外主机名称比IP地址更具有欺骗性。

(2)使用PAM作为ProFTPD授权用户的鉴别方法

ProFTPD也可以加入嵌入式认证模块,成为PAM-aware的FTP服务器。PAM和PAM-aware相关知识和配置请查看相关资料。这样,用户连接到ProFTPD服务器时都由PAM使用/etc/pam.d/ftp文件进行认证。在ProFTPD使用PAM比较简单,在配置文件/etc/Proftpd.conf加入:

AuthPAMAuthoritative on

AuthPAMConfig ftp

ProFTPD服务器会自动把/etc/pam.d/ftp配置用于用户授权。

(3)限制普通FTP用户可访问的目录

同样,ProFTPD服务器也要限制普通FTP用户可以访问的目录,和wu-ftpd相比比较简单。如果限制skate组的skate用户登录时不能切换到其他目录,修改配置文件加入:

DefaultRoot ~skate,skate

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

(4)限制FTP命令特权

禁止一些用户创建和删除目录的特权。如果发现一些用户有威胁行为,可以把他放在一个特定组中(badusers)。使用如下的配置:

Order deny,allow

DenyGroup badusers

AllowAll

这样除了那个特定的用户组之外,其他用户可以创建和删除目录。

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

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

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

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

通过上文详细的说明,想必大家都能清楚知道ProFTPD服务器安全策略,希望本文对大家有用!

Leave a Reply

学习的梦想

锤炼的彩色