UbuntuにFail2banを導入してSSHブルートフォース攻撃を防ぐ設定方法

Ubuntu環境でFail2banを導入し、SSHサービスのセキュリティを強化するための実装手順を解説する。

1. パッケージのインストール

Fail2banはUbuntuの標準リポジトリからインストール可能である。ターミナルを起動し、以下のコマンドを実行してシステムを最新化した後、パッケージを導入する。
sudo apt update
sudo apt install fail2ban

2. 設定ファイルの作成と編集

Fail2banの設定ファイルは/etc/fail2ban/ディレクトリ配下に配置される。デフォルトのjail.confは上書きされる可能性があるため、個別設定用のjail.localファイルを作成して使用することが推奨される。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
テキストエディタで設定ファイルを開き、SSHに関するセクションを修正する。
sudo nano /etc/fail2ban/jail.local

主要な設定パラメータ

[sshd]セクション(存在しない場合は新規作成)で以下の項目を設定する。
パラメータ 説明 推奨値
enabled この jail の有効/無効 true
port 監視対象ポート番号 ssh(または22)
filter 使用するフィルタ名 sshd
logpath 認証ログのパス /var/log/auth.log
maxretry 許容する最大失敗回数 3〜5
findtime 時間枠の長さ 600(10分)
bantime IPアドレスの遮断時間 86400(24時間)
設定例:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 4
findtime = 600
bantime = 86400

3. サービスの起動と自動起動設定

Fail2banサービスを有効化し、システム起動時に自動的に開始されるようにする。
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
サービスの状態を確認し、正しく動作していることを確認する。
sudo systemctl status fail2ban

4. 設定の検証と稼働確認

SSH監視 jail の状態を確認し、遮断されているIPアドレスがないかどうかを確認する。
sudo fail2ban-client status sshd

5. セキュリティ強化の追加施策

Fail2banの導入に加え、SSHサーバー自体をより安全に設定することで、防御の層を重ねることができる。/etc/ssh/sshd_configファイルを編集し、パスワード認証を無効化して公開鍵認証のみを許可することを検討されたい。
PasswordAuthentication no
ChallengeResponseAuthentication no
設定変更後はSSHサービスを再起動して反映させる。
sudo systemctl restart sshd

Fail2banクライアントコマンドリファレンス

fail2ban-clientは実行中のFail2banデーモンとの通信に使用されるコマンドラインツールである。

基本的な使用方法

fail2ban-client help

監視状態の取得

すべてのjailの状態を確認するには:
fail2ban-client status
特定のjail(sshd)の詳細情報を表示:
fail2ban-client status sshd

IPアドレスの手動操作

特定のIPアドレスを遮断:
fail2ban-client set sshd banip 192.168.1.100
遮断を解除:
fail2ban-client set sshd unbanip 192.168.1.100

設定値の取得と変更

現在の設定値を確認:
fail2ban-client get sshd maxretry

リロード操作

特定のjailを再読み込み:
fail2ban-client reload sshd
サービス全体を再起動:
sudo systemctl restart fail2ban

シグナル送信

fail2ban-regexを使用し、フィルタの動作をテストすることも可能である。このツールはログファイルとフィルタ定義書を比較し、正しくマッチングするかどうかを確認できる。
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

監視ログの確認方法

遮断が発生したかどうかは、Fail2banのログファイルを確認することで把握できる。
sudo tail -f /var/log/fail2ban.log
このログには、IPアドレスの遮断解除時刻や再遮断の記録も含まれるため、定期的な確認を推奨する。

タグ: Ubuntu fail2ban SSH Security Firewall

8月9日 12:49 投稿