【フェイルトゥーバン】

Fail2ban とは?

💡 不正アクセスの常習犯を自動で出入り禁止にする門番
📌 このページのポイント
Fail2ban — 不正アクセスを自動ブロック ログ監視 /var/log/ auth.log access.log 検知 失敗ログを 正規表現で マッチング カウント maxretry: 5 findtime: 600s 5回失敗で発動 BAN IPを ブロック 攻撃シナリオ例(SSH ブルートフォース) 192.168.1.100 が 10分間に SSH ログイン5回失敗 → iptables/nftables に DROP ルールを自動追加(bantime: 3600s) bantime 経過後に自動解除 または手動: fail2ban-client unban IP 対応サービス sshd / nginx / postfix / dovecot 等
Fail2ban の BAN サイクルのイメージ
ひよこ ひよこ

SSHのログを見たら知らないIPからログイン試行が大量にあって怖い…

ペンギン先生 ペンギン先生

それはボットによるブルートフォース攻撃だね。インターネット上のサーバーは常にこういった攻撃にさらされているんだ。Fail2banを入れれば、一定回数ログインに失敗したIPを自動でブロックしてくれるよ。

ひよこ ひよこ

どういう仕組みで動いてるの?

ペンギン先生 ペンギン先生

Fail2banはログファイル(例:/var/log/auth.log)をリアルタイムで監視しているんだ。「Failed password」のようなパターンが同じIPから短時間に一定回数出現したら、iptablesnftablesのルールを自動追加してそのIPをブロックするよ。

ひよこ ひよこ

自分がパスワード間違えてブロックされちゃうこともある?

ペンギン先生 ペンギン先生

あるある!でもignoreipという設定で自分のIPを除外できるよ。あと、ban時間はデフォルトで10分だから、しばらく待てば解除される。fail2ban-client set sshd unbanip IPアドレス で手動解除もできるんだ。

ひよこ ひよこ

SSHだけじゃなくて他のサービスも守れるの?

ペンギン先生 ペンギン先生

もちろん!NginxApache、Postfix、Dovecotなど多くのサービス用のフィルタが最初から用意されているよ。WordPressへの攻撃を防ぐフィルタもあるんだ。jail.localファイルで各サービスの閾値やban時間を個別に設定できる。公開サーバーを運用するなら、Fail2banはほぼ必須のツールだと言っていいね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Fail2ban」って出てきたら「不正ログインを繰り返すIPを自動ブロックするツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fail to Ban」 = 失敗したらBAN(追放)
💬 ログイン「失敗(Fail)」を繰り返したら「追放(Ban)」するという動きそのまま名前になっているよ
← 用語集にもどる