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アドレスの遮断解除時刻や再遮断の記録も含まれるため、定期的な確認を推奨する。