Blacklist

通過使用者代理字元串阻止 apache 訪問

  • October 28, 2012

我有一個腳本編寫者正在使用代理攻擊我正在服務的網站。

我注意到他們傾向於通過帶有某個通用使用者代理字元串的軟體訪問該站點(即帶有 user_agent 字元串的http://www.itsecteam.com/en/projects/project1_page2.htm “Havij 高級 sql 注入軟體”) ) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Havij。我知道任何值得一提的破解軟體都可能能夠修改它的使用者代理字元串,但我對腳本編寫者在某些時候必須處理該功能感到滿意。

那麼,是否有任何軟體可以通過匹配使用者代理字元串來自動阻止訪問和永久黑名單?

您可以通過 BrowserMatch 和 Deny 拒絕訪問 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 禁止它們

例如創建 LogFormat

LogFormat "%a %{User-agent}i" ipagent

將日誌記錄添加到您的虛擬主機/伺服器範圍內

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

引用自:https://serverfault.com/questions/251988