web-dev-qa-db-ja.com

fail2ban:\ x00リクエストをブロックする正規表現?

サーバーがダウンすることがあり、nginxログを確認すると、通常、次のようなものが表示されます。

78.37.54.31 - - [20/Apr/2016:20:58:51 +0300] "\x00\x00\x00TZ\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x010I\x00\x00\x00\x00\xFC\x01\xA8\xC0\x00!\x00\xFDk\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-" 89.169.219.212 - - [21/Apr/2016:11:37:22 +0300] "\x00\x00\x00 c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-"

私はこれが推奨するデフォルトの推奨構成でfail2banをセットアップしました DigitalOceanの記事 、しかしそれはこれらの種類のスキャナーが時々私のサーバーに過負荷をかけるのを止めませんでした。 naxsiをインストールすることは、今のところ私にとってオプションではありません。誰かがfail2banの正しい正規表現ルールを作成するのを手伝ってくれますか? 「Apache-badbots」と「Apache-wootwoot」の刑務所(簡単にグーグルで検索できます)は私にはうまくいきませんでした。

2
Isa Hassen

/etc/fail2ban/jail.conf内

[nginx-x00]
enabled  = true
port     = http,https
filter   = nginx-x00
logpath  = /var/log/nginx/access.log
bantime = 3600
maxretry = 1

および/etc/fail2ban/filter.d/nginx-x00.conf

[Definition]

failregex = ^<Host> .* ".*\\x.*" .*$

これで完了です。次回誰かがあなたを台無しにするとき、彼/彼女は1時間またはあなたが禁止時間で定義するどんな時間でも禁止されます。

\ xで整形式のリクエストはurlencodedであり、正常に処理されるため、心配する必要はありません。

1
periket2000