Ограничение скорости трафика бота c Использование Fail2ban - PullRequest
0 голосов
/ 14 июля 2020

Мы настроили Fail2ban на Suse- Linux -Enterprise Server для ограничения скорости трафика ботов c. Ниже приведена конфигурация, выполненная в файле jail.local.

[apache-badbots]
enabled  = true
port     = http,https
filter   = apache-badbots
action   = iptables-allports[name=apache-badbots, port="http,https" protocol=tcp]
logpath  = /var/persistent/apache2/logs/site1-access.log
findtime  = 60
bantime   = 600
maxretry = 1

Ниже представлена ​​конфигурация регулярных выражений.

failregex = <HOST> -.*(EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|Googlebot/2\.1)

Ниже приведен формат журнала:

[14/Jul/2020:11:38:09 +0000] 192.168.1.14 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "GET /sessionValueLink.action?crud=s&keyValue=JsMethodName&insertValue=submitShippingAddress();&dt=Tue%20Jul%2014%202020%2017:08:09%20GMT+0530%20(India%20Standard%20Time) HTTP/1.1" 200 44 [0/1894] "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/192.168.2.1 Safari/537.36"

Когда я запустил тест Regex, мы получили следующий результат.

fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-badbots.conf

Результаты

Failregex: 2438 total
|-  #) [# of hits] regular expression
|   1) [2438] <HOST> -.*(Googlebot/2\.1)
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
|  [113634] Day/MONTH/Year:Hour:Minute:Second
`-
Lines: 113634 lines, 0 ignored, 2438 matched, 111196 missed
Missed line(s): too many to print.  Use --print-all-missed to print all 111196 lines

Проблема в том, что когда мы постоянно нажимаем на Google Bot, мы получаем IP-адрес заблокирован в журнале, но он не показывает действительный IP-адрес и не блокирует трафик ботов c. Пожалуйста, ознакомьтесь с приведенным ниже журналом.

2020-07-14 14:17:18,330 fail2ban.filter [431]: WARNING Determined IP using DNS Lookup: 403 = ['0.0.1.147']
2020-07-14 14:17:18,330 fail2ban.filter [431]: WARNING Determined IP using DNS Lookup: 403 = ['0.0.1.147']
2020-07-14 14:17:18,612 fail2ban.actions[431]: INFO    [apache-badbots] 0.0.1.147 already banned
2020-07-14 14:27:03,274 fail2ban.actions[431]: WARNING [apache-badbots] Unban 0.0.1.147
2020-07-14 14:38:40,817 fail2ban.filter [431]: WARNING Determined IP using DNS Lookup: 302 = ['0.0.1.46']
2020-07-14 14:38:41,073 fail2ban.actions[431]: WARNING [apache-badbots] Ban 0.0.1.46
2020-07-14 14:39:49,903 fail2ban.filter [431]: WARNING Determined IP using DNS Lookup: 403 = ['0.0.1.147']
2020-07-14 14:39:50,162 fail2ban.actions[431]: WARNING [apache-badbots] Ban 0.0.1.147

Какую ошибку мы здесь сделали? Как решить вопрос. Я новичок в fail2ban, я буду благодарен за любую помощь.

1 Ответ

0 голосов
/ 15 июля 2020

Мы нашли решение. Проблема была с Regex, он не получал правильный IP-адрес из журнала. Мы изменили указанное ниже регулярное выражение, и оно работает нормально.

failregex = (?: [] \ S +)? [^ "] " [^ "] " \ d + \ d + [^ "] " [^ "] \ b (?: EmailCollector | WebEMailExtrac | TrackBack / 1.02 | sogou musi c spider | Googlebot / 2.1) \ b

...