用語集 最終更新 2026.08.09

Fail2ban

Fail2ban は、ログを監視して、認証失敗を繰り返す送信元IPを一定時間遮断する仕組みです。 SSH や Web サーバーのログを読み、条件に合致した相手をパケットフィルタのルールへ自動追加します。

仕組みは3つの部品で決まる

用語 意味
filter ログのどのパターンを「失敗」とみなすか(正規表現)
jail どのログを、何回で、どれだけ遮断するかの設定
action 遮断の実行方法(パケットフィルタへの追加など)

調整するのは主に jail の3つの値です。maxretry(何回で遮断するか)、findtime(何秒以内の失敗を数えるか)、bantime(どれだけ遮断するか)。

位置づけを間違えない

Fail2ban は補助です。これを入れても、次の問題は何も解決しません。

  • パスワード認証を許可している
  • 弱いパスワードを使っている
  • 管理画面を全世界に公開している

先にやるべきは、SSH の鍵認証化とパスワード認証の無効化、そして UFW による公開範囲の制限です。Fail2ban はその後で、ログを汚し続ける自動攻撃の量を減らすために入れます。

自分を遮断してしまう事故

パスワードを打ち間違えて自分のIPが遮断される、というのは実際によく起きます。対策は2つです。

  • 自宅や事務所の固定IPを ignoreip に登録しておく
  • 遮断されたときの解除方法(fail2ban-client set <jail> unbanip <IP>)を、遮断される前に確認しておく

設定を編集する場所に注意

配布元の設定ファイル(jail.conf)を直接書き換えると、パッケージ更新で上書きされて設定が消えます。編集するのは jail.local 側です。同じ構造の「.local」ファイルを作り、変更したい項目だけを書きます。

実務で見るポイント

  • 導入したら、実際に遮断が発生しているかログで確認する。動いていない設定は珍しくない
  • 遮断は一時的なもの。恒久的にブロックしたい相手は別の手段で扱う
  • ログの形式が変わると filter が効かなくなる。サーバー更新後は動作を確認する