LinuxでのFail2Banのインストールと設定方法
9分で読めます - 2026年5月14日

Ubuntu、Debian、RHELベースのLinuxサーバーにFail2Banをインストール、設定、テストするためのステップバイステップガイド。
Linux上でのFail2Banのインストールと設定方法
Fail2Banは、不審なアクティビティがないかサーバーログを監視し、ファイアウォールルールを更新することで、問題のあるIPを自動的に禁止します。Fail2Banは、ブルートフォース攻撃を阻止し、ログのノイズを低減し、設定後はバックグラウンドで静かに動作します。このガイドでは、Ubuntu/Debianへのインストール、コアの設定、jailのセットアップ、そして知っておく価値のあるいくつかの高度なオプションについて説明します。
前提条件
Fail2Banは、ほとんどのLinuxディストリビューションで動作します:Ubuntu、Debian、AlmaLinux、CentOS、RHEL、Rocky Linux、Fedora。必要なもの
- システムにインストールされたPython 3
- パッケージのインストールとファイアウォールの変更のためのroot または sudo 権限
- アクティブなファイアウォール(iptables、nftables、ufw、firewalld)
- 失敗したログイン試行をキャプチャするログファイル(Debianベースのシステムでは
/var/log/auth.log、RHELベースでは/var/log/secure)。
RHELベースのシステムでは、まずEPELリポジトリを有効にする。Fail2Banをインストールする前に、ufw statusまたはsystemctl status firewalldでファイアウォールが動作していることを確認してください。
Ubuntu/DebianへのFail2Banのインストール
パッケージを更新し、Fail2Banをインストールする:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banサービスを有効にし、起動時に開始するようにします:
sudo systemctl enable fail2ban
sudo systemctl start fail2banデフォルトの設定をローカルの上書きファイルにコピーする。パッケージのアップデートが設定を上書きしないように、jail.confではなく、常にjail.localを編集する:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localすべてが実行されていることを確認する:
sudo systemctl status fail2ban
sudo fail2ban-client status最初のコマンドは、"Active: active (running) "を表示する。2番目のコマンドは、アクティブなjailをリストします。sudo systemctl is-enabled fail2banで、ブート時にFail2Banが有効になっていることを確認します。
ジェイルの設定
デフォルト設定
etc/fail2ban/jail.localを開き、[DEFAULT]セクションを調整する。これらの設定は、上書きされない限り、すべての jail に適用されます:
| パラメータ | 推奨値 | 何をするか |
|---|---|---|
バンタイム | 3600 | IPを1時間ブロック |
ファインドタイム | 600 | 10分以内の失敗をカウント |
最大再試行回数 | 3~5回 | BANが発動するまでの失敗回数 |
無視IP | 127.0.0.1/8 ::1 | 決して禁止されないIP |
ignoreipに自分の管理IPを追加して、自分自身をロックアウトしないようにする。例:ignoreip = 127.0.0.1/8 ::1 203.0.113.50。
SSH保護
jail.localでSSH jailを有効にします:
[sshd]
enabled = truelogpathがあなたのディストロの正しいログファイルを指していることを確認してください。SSHを非標準ポート(例えば2222)に移動した場合、ポートパラメータを一致するように更新します。
ウェブサーバ保護
あなたのウェブサーバにマッチするjailを有効にします:
- Nginx:
Nginx: [nginx-http-auth]認証失敗のため、[nginx-botsearch]悪意のあるボットのため - Apache[
apache-auth]認証のため、[apache-badbots]ボットのため
recidiveジェイル
recidive]ジェイルは、他のジェイルで禁止され続けるIPを捕らえ、通常1週間(604,800秒)の長いペナルティを適用します。アプローチをローテーションするしつこい攻撃者のために有用である。
変更を行った後、リロードしてください:
sudo systemctl restart fail2ban
sudo fail2ban-client statusテストと監視
禁止措置のテスト
本番環境でFail2Banに依存する前に、テストしてください。リモートマシン(管理者IPではない)から、maxretryを超えるまでSSHログインを試みます。ブロックされるはずです。で確認してください:
sudo fail2ban-client status sshdリアルタイムでBANの様子を見る:
tail -f /var/log/fail2ban.log誤って正当なIPをBANしてしまった場合は、BANを解除してください:
sudo fail2ban-client set sshd unbanip 203.0.113.50日次モニタリング
ログをグリップしてBAN履歴を確認:
grep "Ban\|Unban" /var/log/fail2ban.log便利な管理コマンド
| コマンド | 目的 |
|---|---|
fail2ban-clientステータス | すべてのアクティブな jail をリストアップ |
fail2ban-client禁止 | 現在禁止されているIPをすべて表示 |
fail2ban-client set <jail> unbanip <IP> | 特定のIPを禁止解除する |
fail2ban-client unban --all | すべての禁止を解除する |
fail2ban-client set <jail> banip <IP> を設定する。 | 手動でIPを禁止する |
禁止は再起動後も持続する。Fail2Banはそれらを/var/lib/fail2ban/fail2ban.sqlite3のSQLiteデータベースに保存する。
高度な設定
nftablesへの切り替え
nftablesはiptablesに代わる最新のものです。単一のフレームワークでIPv4とIPv6を処理し、大規模な禁止リストに対応し、レート制限を内蔵しています。Ubuntu 22.04+、Debian 11+、または最近のディストロを使用している場合、より良い選択です。
jail.localで設定してください:
[DEFAULT]
banaction = nftables-multiportFail2Banを再起動し、sudo nft list rulesetで確認してください。出力にf2b-tableと f2b-chainが表示されるはずだ。古いシステムを使っているか、互換性の要件がある場合のみ、iptablesにこだわってください。
メール通知
デフォルトでは、Fail2Banは静かに禁止します。電子メールアラートを受け取るには、jail.localの [DEFAULT]セクションに以下を追加してください:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)saction_mwlアクションは、禁止詳細、WHOISデータ、禁止をトリガーしたログ行を含むメールを送信します。WHOISデータだけが必要な場合は、action_mwを使用してください。sendmailのようなメール転送エージェントがインストールされているか、msmtpのようなもので設定されたSMTPリレーが必要です。
SlackやDiscordのアラートについては、Webhookを送信するスクリプトを作成し、/etc/fail2ban/action.d/にあるカスタムアクションファイルで設定します。
Fail2Banを実行するために、フルルートアクセスと無制限帯域幅のサーバーを探しているなら、FDCの専用サーバーをチェックしてください。

遅いデプロイメントや帯域幅の制限にうんざりしていませんか?FDC Serversは、瞬時の専用電源、グローバルリーチ、あらゆる規模に対応する柔軟なプランを提供します。アップグレードの準備はできましたか?
今すぐパフォーマンスのロックを解除
Linuxサーバー・ハードニング・チェックリスト
Linuxサーバーを堅牢化するためのステップバイステップのチェックリスト。SSH、ファイアウォール、パッチ適用、ファイルパーミッション、SELinux/AppArmor、監査ロギングをカバー。
15分で読めます - 2026年5月8日
iperf3 チュートリアル:LinuxとWindowsでネットワーク速度をテストする
10分で読めます - 2026年5月7日

ご質問またはカスタムソリューションが必要ですか?
柔軟なオプション
グローバル・リーチ
即時展開
柔軟なオプション
グローバル・リーチ
即時展開