ssh認証失敗に対する設定¶
sshへの辞書攻撃で発生するssh認証失敗に対する設定を行います。
設定¶
ssh攻撃へのログ監視設定のポリシーはデフォルトで下記の場所にあります。
sshdのログのパスやログ形式をカスタマイズしていなければ、そのまま利用することができると思います。
- /etc/fail2ban/filter.d/sshd.conf
特定の文字列を検出時にレコードを無視する場合、下記に設定を行う。ignoreregex = ↓ ignoreregex = .*(文字列1|文字列2)
次のアクセス制限の設定を行います。以下のファイルに追記していきます。
- /etc/fail2ban/filter.d/jail.local
[ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban@localhost, sendername="Fail2Ban-SSH"] logpath = /var/log/secure bantime = 10800 maxretry = 3
ここでは「ssh-iptables」という名前で設定を作り有効化します。
フィルタは前述の「filter.d/sshd.conf」を使用します。
iptablesでポリシーを追加する際に使用する「名前、ポート、プロトコル」を指定します。
次の行では、banした際に送信するメールの名前、送り先、送信者アドレス、送信者名を指定します。
次に監視するログのパス、banする時間(10800=1時間)、banするまでの試行回数を指定します。
設定の有効化¶
fail2ban設定を再読み込みします。
# systemctl reload fail2ban
動作確認¶
iptablesにポリシーが追加されていることを確認します。
# iptables -L -n Chain f2b-SSH (1 references) target prot opt source destination REJECT all -- xxx.xxx.xxx.xxx 0.0.0.0/0 reject-with icmp-port-unreachable …… … RETURN all -- 0.0.0.0/0 0.0.0.0/0