我有一个使用代理攻击我所服务的网站的scripter。
我注意到,他们倾向于通过软件使用特定的常见用户代理string(即http://www.itsecteam.com/en/projects/project1_page2.htm“Havij高级SQL注入软件”用user_agentstringMozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Havij )。 我知道任何值得join的破解软件都可能会修改它的用户代理string,但是对于脚本编写者来说,在某些时候我必须处理这个function。
那么,是否有任何软件通过匹配用户代理string来自动阻止访问和永久列入黑名单?
您可以通过BrowserMatch拒绝访问,并通过SetEnvIf拒绝示例:
SetEnvIfNoCase User-Agent "^Wget" bad_bot SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot <Directory "/var/www"> Order Allow,Deny Allow from all Deny from env=bad_bot </Directory>
要永久阻止它们,你必须编写自定义的日志文件,并使用fail2ban来禁止它们与iptables
例如创buildLogFormat
LogFormat "%a %{User-agent}i" ipagent
将日志logging添加到您的虚拟主机/服务器范围内
CustomLog /var/log/apache2/useragent.log ipagent
/etc/fail2ban/filter.d/baduseragent.conf
[Definition] failregex = ^<HOST> Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 5\.1; SV1; \.NET CLR 2\.0\.50727\) Havij$
/etc/fail2ban/jail.conf
[apache-bad-user-agent] enabled = true port = 80,443 protocol = tcp filter = baduseragent maxretry = 1 bantime = 86400 logpath = /var/log/apache2/useragent.log
我想我明白你的问题。 我会提供更详细的解释,如果这是你在找什么。 (这也可以作为其他事物的陷阱)
RewriteMap badlist txt:~/bad_useragent_list
RewriteCond %{HTTP_USER_AGENT} .* [NC]
RewriteCond ${badlist:%1|white} ^black$ [NC]
RewriteRule (.*) "/trap.php" [L]