Fail2ban

Fail2ban をインストールして構成し、Ubuntu サーバーで繰り返される SSH 認証の失敗を一時的にブロックします。

実行前の確認

これらの例は、systemd とサポートされているファイアウォールを使用する Ubuntu サーバーをターゲットとしています。パッケージ名、ログ ソース、ファイアウォール バックエンドはディストリビューションによって異なります。 Fail2ban により、ログイン試行の繰り返しが減少します。 SSH キー、更新、アクセス制御を置き換えるものではありません。既存の管理セッションとコンソールのリカバリを利用可能な状態に保ち、唯一の作業用アドレスからのテストを避けてください。 SSH ジェイルが実際の認証ログを読み取り、そのファイアウォール アクションが有効であることを確認します。リスクを理解せずに、広範なネットワークをホワイトリストに登録しないでください。

変更を適用したら、新しい SSH セッションでログインと期待する動作を確認してください。確認が成功するまで現在のセッションを開いたままにしておくと、必要に応じて設定を復旧できます。

使用例

Ubuntu に Fail2ban をインストールし、サービスを開始します。インストールには管理者権限が必要です。

sudo apt update
sudo apt install fail2ban
sudo systemctl enable --now fail2ban

/etc/fail2ban/jail.d/sshd.local に別のjailオーバーライドを作成します。パッケージ化されたjail.confを編集しないでください。この例では、systemd ログを使用し、10 分間に 5 回失敗した後、アドレスを 1 時間ブロックします。

nano でファイルを開きます:

sudo nano /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h

構成を検証し、サービスを再起動し、SSH ジェイルを検査します。出力が目的のログ ソースとファイアウォール アクションを識別していることを確認します。

sudo fail2ban-client -t && sudo systemctl restart fail2ban && sudo fail2ban-client status sshd

Jail が起動しない場合、または障害が検出されない場合は、最近のサービス ログを調べてください。

sudo journalctl -u fail2ban -n 100 --no-pager

承認されたアドレスが禁止されている場合は、既存の管理セッションまたはサーバー コンソールからそのアドレスの禁止を解除します。例のアドレスを置き換えます。

sudo fail2ban-client set sshd unbanip 192.0.2.10

公式リファレンス

確認日:2026年10月27日