(私にとっては)難しい質問です。
ログインせずにSSHサーバーに接続しようとするすべての試みを禁止するようにFail2banを設定しようとしています。
今私の質問は..すべてがfilter.d/sshd.confファイルにあるということです.
私にはい理解できない、無意味な言葉、正規表現を理解できません(正規表現をまったく理解できません。試してみました。)設定ファイルにあります。
ログで次の行を調べて抑制したいと思います。 (接続された接続のみが表示されるためです。)
192.168.0.2 ポート 12210 [preauth] によって接続が終了しました。
今以前に書いたようにいいえ構成ファイルにどのように作成/配置するかについてのアイデア(標準ファイルのためにフォーラムが詰まることを望まない。)これ
したがって、誰かが私を助けたいのなら、何を書く必要があり、設定ファイルのどこに置くべきですか?
そして、可能であれば、今やっていることを説明してください(または少なくとも説明しようとしてください)。
答え1
最新バージョンのfailure2banの場合、設定で十分です。
[sshd]
mode = aggressive
enabled = true
あなたの/etc/fail2ban/jail.local
。
一部の以前のバージョンでは、状況によって異なります。とにかく、フィルタ設定を更新することから始めましょう(例:ここF-MLFGAINED
)、バージョンが0.10.5(0.10.5で導入)以前の場合は、次のように置き換えます。F-NOFAIL
https://github.com/fail2ban/fail2ban/commit/1c1d2cc435d6e8f1eb4a1b60c935a1385a82e295)。
Fail2banのバージョンが0.10(例えば0.9)より前の場合は、アップグレードするのが最善です。
「正規正規表現を拡張する方法」という実際の質問に戻ります。次の設定を使用すると可能です。
[sshd]
failregex = %(known/failregex)s
^Connection closed by <ADDR> port \d+ \[preauth\]
(fail2ban <= 0.9の場合は、接頭辞行などで完全なREを指定し、代わりにprefregex
使用する必要があります)。<HOST>
<ADDR>
答え2
私はこれについての経験はあまりありませんが、この行をに追加してみましたかfailregex
?
^Connection closed by 192.168.0.2 port 12210\s*%(__suff)s$
すべてのホスト/ポートの場合:
^Connection closed by <HOST>%(__on_port_opt)s\s*%(__suff)s$