当我们在我们的网站上看到不寻常的行为时,我通过将它们添加到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…
Apache的mod_security似乎是一个明显的select,因为它可以直接与IPTables集成并在TCP / IP级别(而不是用户空间)阻止用户。
看看这里的解释http://spamcleaner.org/en/misc/modsec2ipt.html
我倾向于configuration一个像CSF这样的软件防火墙,它可以通过限速/阻止恶意IP来增加另一层保护。
这需要一些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将被强烈推荐。