apache屏蔽恶意User-Agent
今天检查服务器的网站日志,发现老是有人来扫描phpmyadmin这个软件,我也知道这个软件的漏洞很多,但我根本就没有在服务器上安装,老是去屏蔽他们的ip让我很烦躁了,决定直接屏蔽User-Agent来解决这个问题了.
系统:centos 5.5
软件:apache 2.2.21
1.查看apache日志后,记住要屏蔽的User-Agent
从上图可以看到恶意的User-Agent是ZmEu,那可以在httpd.conf配置文件里:
DocumentRoot /var/www/xxxxx
<Directory "/var/www/xxxxx">Order allow,deny
Allow from all
</Directory>
加多两行就可以了 <Directory "/var/www/xxxxx">
SetEnvIfNoCase User-Agent "ZmEu" getout
Order allow,deny
Allow from all
deny from env=getout
</Directory>
ZmEu是捣乱者的user agent含有的字符,按具体情况修改,可以添加多行 SetEnvIfNoCase User-Agent "Made by ZmEu" getout
2.使用.htaccess屏蔽User-Agent
在.htaccess里添加
RewriteCond %{HTTP_USER_AGENT} ".*ZmEu.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*Made by ZmEu.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*whitehat.*" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$"
RewriteRule ^(.*)$ https://blog.slogra.com/
如果你觉得有用,添加rewrite规则前,不妨先分析一下自己的网站日志,根据自己的需要定制.推荐使用Firefox+User Agent Switcher测试效果.
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$"
会不会导致比如IE6等比较老的浏览器不能访问?
对于htaccess正则表达式不太了解,还请不吝赐教