蚊の無差別代入Fail2banが正規表現に失敗しました。

蚊の無差別代入Fail2banが正規表現に失敗しました。

ユーザー名/パスワードの組み合わせを推測して、ユーザー名/パスワードで保護された蚊サービスに参加しようとする無差別代入IPアドレスをブロックするためにFail2banフィルタを作成しようとしています。間違った詳細でサブスクリプションを試みると、mosquittoは以下のように2行のログを作成します。

1544984465: New connection from 123.123.123.123 on port 1883.
1544984465: Socket error on client <unknown>, disconnecting.

私はこの2行のパターンと一致する正規表現を作成するために以下を使用しました。https://regex101.com/「アナコンダ味」に設定してください。正規表現は次のとおりです。

\s(?P<date>\d+)\: New connection from (?P<host>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) .+\n(?P=date): Socket error on client \<unknown\>, disconnecting.

残念ながら、fall2banは次の正規表現を使用してログに一致するものを見つけることができません:

# fail2ban-regex '/var/log/testlog.log' '\s(?P<date>\d+)\: New connection from (?P<host>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) .+\n(?P=date): Socket error on client \<unknown\>, disconnecting.'

Running tests
=============

Use   failregex line : \s(?P<date>\d+)\: New connection from (?P<host>[0-...
Use         log file : /var/log/testlog.log
Use         encoding : UTF-8


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [13] Epoch
`-

Lines: 13 lines, 0 ignored, 0 matched, 13 missed
[processed in 0.00 sec]

|- Missed line(s):
|  1544984465: New connection from 123.123.123.123 on port 1883.
|  1544984465: Socket error on client <unknown>, disconnecting.
|  1544984466: New connection from 123.123.123.123 on port 1883.
|  1544984466: Socket error on client <unknown>, disconnecting.
|  1544984468: New connection from 123.123.123.123 on port 1883.
|  1544984468: Socket error on client <unknown>, disconnecting.
|  1544984469: New connection from 123.123.123.123 on port 1883.
|  1544984469: Socket error on client <unknown>, disconnecting.
|  1544984470: New connection from 123.123.123.123 on port 1883.
|  1544984470: Socket error on client <unknown>, disconnecting.
|  1544984471: New connection from 123.123.123.123 on port 1883.
|  1544984471: Socket error on client <unknown>, disconnecting.
|  1544984473: New connection from 123.123.123.123 on port 1883.
`-

Fail2banのバージョンは0.9.6-1.el6.1です。 Centos 6サーバーで実行されます。

ベストアンサー1

まあ、私はやった。質問は次のとおりです。

正規表現(failregex、ignoreregex)は、日付/時刻がログ行から削除されたと仮定します(fail2banがATMで内部的に機能する方法です)。源泉:https://fail2ban.readthedocs.io/en/latest/filters.html

フィルタリングするには、maxlines = 2を追加する必要があります。

最終/作業フィルタは次のとおりです。

[Init]
maxlines = 2

[Definition]
failregex = .+ New connection from <HOST> on port \d+\.\n.+Socket error on client <unknown>
ignoreregex = 

おすすめ記事