Dockerを使用してコンテナーでSSHデーモンを実行しています。後者はによって管理されsystemd
、sshdはにログを記録するためstdout
、攻撃者を検出するための関連データはsystemd
のジャーナルに表示されますが、そのエントリには次のような追加のプレフィックスがあります。
Feb 13 21:51:25 my.example.com dockerd[427]: Feb 13 18:51:25 sshd[555]: Invalid user ts3bot from 180.166.17.122 port 43474
刑務所は次のスニペットで構成されています。
[sshd]
enabled = true
mode = aggressive
filter = sshd[mode=%(mode)s]
port = ssh
この行filters.d/sshd.conf
には、変更したいものが含まれているようです。
journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd
しかし、journalmatch
の構成に関する役立つドキュメントは見つかりません。fail2ban
0.10を使用しています。
等号の右側の部分がどのように解釈されるかを誰かが説明できますか?
うまくいけば、その値を調整する方法を理解するとき、filters.d/sshd.conf
直接(Archパッケージから提供されます)または他の場所で編集する必要がありますか?
ホストシステム自体に追加のsshdjailを持つオプションを保持するために、次のようにします。
バージョン–systemd
バックエンドとしての使用をサポートするfail2banバージョン> = 0.9を使用します。(BTW:バージョン0.11はかなり新しく、まだ安定していない可能性がありますが、同じIPからの新しい一致ごとに禁止時間を自動的に増やす新機能が気に入っています。)
刑務所–別の刑務所を作成しますjail.d/sshd-docker
。必要に応じて、元のsshdjailの設定を採用します。たぶん、最初に安全のために低い禁止時間を開始し、後で増やします。backend = systemd
その新しいsshd-docker
刑務所に追加します。このように見える可能性があります:
[sshd-docker]
enabled = true
filter = sshd-docker
action = iptables
backend = systemd
maxretry = 5
findtime = 1d
bantime = 2w
フィルタ–新しいfail2banバージョンに簡単にアップグレードできるように、フィルタファイルと元のjail.confファイルはそのままにしておくことを好みます。したがって、私は、フィルタファイルを複製することをお勧めfilter.d/sshd.conf
するfilter.d/sshd-docker.conf
とあなたにその新しいフィルタを参照してくださいsshd-docker
(上記見られるように)刑務所。
フィルタ/正規表現–filter.d/sshd-docker.conf
ログエントリに一致するように正規表現を採用します。これを変更するのと同じくらい簡単かもしれません
_daemon = sshd
に
_daemon = docker
で_daemon
わかるように、ディレクティブは__prefix_line正規表現を作成するために使用されますfilter.d/common.conf
。
Filter / journalmatch – fail2ban-regexのマニュアルページからわかる限り、journalmatch
ディレクティブは他のフィルターをオーバーライドします。したがって、この行を変更する必要がある場合もあります。filter.d/sshd-docker.conf
journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd
に
journalmatch =
(fail2ban 0.11では、この行を削除することもできます。以前のバージョンでjournalmatch =
フィルターファイルへのエントリが必要になるのがいつ停止したかはわかりません。)
テスト– fail2banをリロードし、それがどのように機能するかを確認します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加