我正在尝试通过用户代理禁止 IP。它显示为已禁止,但它仍显示在我的日志中。
在我的 jail.local
[megaindex-crawler-spam]
enabled = true
filter = megaindex-crawler-spam
logpath = /var/log/nginx/*access.log
maxretry = 1
findtime = 10
bantime = 86400
在 /etc/fail2ban/filter.d/megaindex-crawler-spam.conf 中
[Definition]
failregex = ^\d{4} <HOST> .* MegaIndex.ru.*
Status for the jail: megaindex-crawler-spam
|- Filter
| |- Currently failed: 0
| |- Total failed: 39195
| `- File list: /var/log/nginx/**************.access.log
/var/log/nginx/access.log
`- Actions
|- Currently banned: 12
|- Total banned: 17
`- Banned IP list: 78.46.128.204 46.4.64.197 144.76.60.98
176.9.137.17 144.76.27.118 5.9.6.51 5.9.32.222 176.9.16.209 <-- THIS ONE
78.46.161.81 5.9.98.178 5.9.83.211 176.9.41.28
其中一条日志显示,IP 地址已被禁止,但仍在继续:
8222 176.9.16.209 - - [26/Oct/2018:10:41:07 -0500] **************.com
"GET /contact_us.php HTTP/1.1" 200 13389 "-" "Mozilla/5.0 (compatible;
MegaIndex.ru/2.0; +http://megaindex.com/crawler)" "-"
我正在尝试使用 jail 中的 User-Agent 来“捕获所有”。它与 iptables 配合使用,但这个机器人有太多 IP 地址,我更愿意通过其用户代理来禁止它。
答案1
您可以使用 nginx 禁止此用户代理:
if ($http_user_agent ~* (megaindex-crawler-spam) ) {
return 403;
}