1

Suse-Linux-Enterprise Server で Fail2ban を構成して、ボット トラフィックのレートを制限します。以下は、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"

正規表現テストを実行すると、以下の結果が得られます。

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 ボットを継続的にヒットすると、ログで IP アドレスがブロックされていることを取得していますが、有効な IP アドレスが表示されず、ボット トラフィックがブロックされていないことです。以下のログを参照してください。

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不慣れです。どんな助けでも大歓迎です。

4

1 に答える 1

0

解決策を見つけました。問題は正規表現にあり、ログから適切な IP アドレスを取得していませんでした。以下の言及された正規表現に変更し、正常に動作しています。

failregex = (?:\[\]\s+)?\<HOST> [^"]*"[^"]*" \d+ \d+ [^"]*"[^"]*\b(?:EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|Googlebot/2\.1)\b
于 2020-07-15T11:15:06.033 に答える