我如何在Apache中保持越来越多的被阻止的IP地址

当我们在我们的网站上看到不寻常的行为时,我通过将它们添加到Apacheconfiguration中来阻止IP地址:

<Directory /var/www/html> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all Deny from 1.1.1.1 Deny from 2.2.2.2 # and so on... </Directory> 

这很快就变得笨拙了,所以有一个标准的方式来处理这个? 也许移动被禁止的IP列表到一个文件?

谢谢

我会把你所有的否认放在一个文件中:

 # /etc/apache2/banned_ips.conf Deny from 1.1.1.1 Deny from 2.2.2.2 

然后把它包含在你的虚拟主机中:

 <Directory /var/www/html> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all include /etc/apache2/banned_ips.conf # and so on... </Directory> 

如果你从这些IP中获得了不太好的行为,那么在防火墙级别阻止它们比在Apache中更好,这样你就可以为Apache节省一些负担。 这种方法的一个坏处是会从Apache日志中失去这些“攻击”(尽pipe这可能是一个专业而不是坏事)。

如果你正在使用某种防火墙,它肯定会有一个简单的方法来添加不良IP。 如果你没有在Web服务器上安装一个,你应该尝试在你的系统中安装一个:我会为Linux推荐shorewall,或者如果你只是想阻止对Web服务器的访问,可能是一个简单的iptables脚本。

这里有几个select…

mod_security的

Apache的mod_security似乎是一个明显的select,因为它可以直接与IPTables集成并在TCP / IP级别(而不是用户空间)阻止用户。

看看这里的解释http://spamcleaner.org/en/misc/modsec2ipt.html

csf / iptables防火墙

我倾向于configuration一个像CSF这样的软件防火墙,它可以通过限速/阻止恶意IP来增加另一层保护。

的fail2ban

这需要一些configuration,但是你可以用这个做一些非常聪明的事情。 http://www.fail2ban.org/wiki/index.php/Apache

你目前的方式

此外,要评论您的原始post,您可以在allow / deny指令的一行上添加多个IP,请参阅http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html

最后,如果你要继续使用你的方法 – 你可以使用相同的语法阻止.htaccess级别(减去标签)

例如。

 order allow,deny allow from all deny from 1.1.1.1 2.2.2.2 3.3.3.3/24 

您目前的方法似乎不可扩展,并依赖于您判断真正/恶意stream量的能力 – 所以上述自动化解决scheme将被强烈推荐。