LinuxでのFail2Banのインストールと設定方法

9分で読めます - 2026年5月14日

hero section cover
目次
  • Linux への Fail2Ban のインストールと設定方法
  • 前提条件
  • Ubuntu/DebianへのFail2Banのインストール
  • Jailsの設定
  • テストと監視
  • 詳細設定
共有

Ubuntu、Debian、RHELベースのLinuxサーバーにFail2Banをインストール、設定、テストするためのステップバイステップガイド。

Linux への Fail2Ban のインストールと設定方法

Fail2Banは、サーバーのログを監視して不審な活動を検知し、ファイアウォールルールを更新することで、問題のあるIPアドレスを自動的にブロックします。ブルートフォース攻撃を阻止し、ログのノイズを低減し、設定後はバックグラウンドで静かに動作します。このガイドでは、Ubuntu/Debianへのインストール、基本設定、jailの設定、および知っておくべきいくつかの高度なオプションについて解説します。

前提条件

Fail2Banは、Ubuntu、Debian、AlmaLinux、CentOS、RHEL、Rocky Linux、Fedoraなど、ほとんどのLinuxディストリビューションで動作します。必要なものは以下の通りです:

  • システムにPython 3がインストールされていること
  • パッケージのインストールおよびファイアウォールの設定変更を行うためのroot権限またはsudo権限
  • 稼働中のファイアウォール(iptables、nftables、ufw、または firewalld)
  • ログイン失敗の試行を記録するログファイル/var/log/auth.log Debianベースのシステムでは、 /var/log/secure RHELベースのシステムの場合

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.localを編集し、 jail.confを編集してください。そうすれば、パッケージの更新によって設定が上書きされることはありません:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

すべてが正常に動作しているか確認します:

sudo systemctl status fail2ban
sudo fail2ban-client status

最初のコマンドで「Active: active (running)」と表示されるはずです。2番目のコマンドではアクティブなジェイルが一覧表示されます。以下のコマンドで、Fail2Banが起動時に有効になっていることを確認してください: sudo systemctl is-enabled fail2ban.

Jailsの設定

デフォルト設定

開く /etc/fail2ban/jail.local し、 [DEFAULT] セクションを調整します。これらの設定は、上書きされない限りすべてのジェイルに適用されます:

パラメータ推奨値機能
bantime3600IPアドレスを1時間ブロックする
findtime60010分間のウィンドウ内で失敗回数をカウントする
maxretry3 から 5禁止がトリガーされるまでの失敗回数
ignoreip127.0.0.1/8 ::1一度もブロックされたことのないIP

管理用IPアドレスを追加して ignoreip 自身へのアクセスを遮断しないようにします。例: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.

SSH保護

でSSHジェイルを有効にする jail.local:

[sshd]
enabled = true

logpath が、お使いのディストリビューションに適したログファイルを指しているか確認してください。SSHを標準以外のポート(例:2222)に移動した場合は、 port パラメータをそれに合わせて更新してください。

Webサーバーの保護

お使いの Web サーバーに合った jail を有効にします:

  • Nginx: [nginx-http-auth] 認証失敗時、 [nginx-botsearch] 悪意のあるボット対策
  • Apache: [apache-auth] 認証用、 [apache-badbots] ボット対策

Recidive Jail

Recidive Jailは [recidive] このジェイルは、他のジェイルで繰り返し禁止措置を受けているIPを捕捉し、通常1週間(604,800秒)というより長いペナルティを適用します。これは、攻撃手法を頻繁に変える執拗な攻撃者に対して有効です。

変更後、再読み込みを行ってください:

sudo systemctl restart fail2ban
sudo fail2ban-client status

テストと監視

禁止措置のテスト

本番環境でFail2Banを使用する前に、必ずテストを行ってください。リモートマシン(管理用IPアドレスではない)から、 maxretryを超えるまで試行してください。ブロックされるはずです。次のコマンドで確認してください:

sudo fail2ban-client status sshd

ブロックがリアルタイムで発生する様子を確認するには:

tail -f /var/log/fail2ban.log

誤って正当なIPをブロックしてしまった場合は、ブロックを解除してください:

sudo fail2ban-client set sshd unbanip 203.0.113.50

日常的な監視

ログをgrepしてブロック履歴を確認します:

grep "Ban\|Unban" /var/log/fail2ban.log

便利な管理コマンド:

コマンド目的
fail2ban-client statusアクティブなすべてのジェイルを表示
fail2ban-client banned現在禁止されているすべてのIPを表示
fail2ban-client set <jail> unbanip <IP>特定のIPの禁止を解除する
fail2ban-client unban --allすべての禁止を解除
fail2ban-client set <jail> banip <IP>IPを手動で禁止する

禁止設定は再起動後も維持されます。Fail2Banはそれらを以下の場所にあるSQLiteデータベースに保存します。 /var/lib/fail2ban/fail2ban.sqlite3.

詳細設定

nftablesへの移行

nftablesは、iptablesに代わる最新のツールです。単一のフレームワークでIPv4とIPv6を処理し、大規模なブロックリストに対しても優れたスケーラビリティを発揮し、レート制限機能が組み込まれています。Ubuntu 22.04以降、Debian 11以降、またはその他の最近のディストリビューションを使用している場合は、nftablesの方が適しています。

設定方法 jail.local:

[DEFAULT]
banaction = nftables-multiport

Fail2Banを再起動し、次に sudo nft list rulesetで確認してください。 f2b-table および f2b-chain と表示されるはずです。古いシステムを使用している場合や互換性の要件がある場合のみ、iptablesを使い続けてください。

メール通知

デフォルトでは、Fail2Banは通知なしでブロックを行います。メール通知を受け取るには、 [DEFAULT] セクションに jail.local:

[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)s

この action_mwl アクションは、ブロック詳細、WHOISデータ、およびブロックを引き起こしたログ行を含むメールを送信します。WHOISデータのみが必要な場合は action_mw を使用してください。sendmail などのメール転送エージェントがインストールされているか、または msmtp.

Slack や Discord での通知を行うには、Webhook を送信するスクリプトを作成し、 /etc/fail2ban/action.d/.

Fail2Ban を実行するための完全な root アクセス権と帯域制限のないサーバーをお探しの場合は、FDC の専用サーバーをご検討ください

background image
サーバーが成長を妨げていませんか?

遅いデプロイメントや帯域幅の制限にうんざりしていませんか?FDC Serversは、瞬時の専用電源、グローバルリーチ、あらゆる規模に対応する柔軟なプランを提供します。アップグレードの準備はできましたか?

今すぐパフォーマンスのロックを解除

ブログ

今週の特集

その他の記事
Linuxのメモリ管理:スワップ、OOMキラー、Cグループ

Linuxのメモリ管理:スワップ、OOMキラー、Cグループ

Linuxスワップ、OOMキラー、cgroupsがどのように連携するか - データベース、ウェブサーバー、マルチテナントVPSホストの設定例付き。

12分で読めます - 2026年5月31日

Prometheusとnode_exporterのセットアップガイド

15分で読めます - 2026年5月29日

その他の記事
background image

ご質問またはカスタムソリューションが必要ですか?

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開