セキュリティ · 1 min read · Sep 15, 2025

Ubuntu 24.04サーバーにFail2banをインストールする方法

Fail2banは、管理者がLinuxサーバーを悪意のあるログインやブルートフォース攻撃から保護するのに役立つ、無料でオープンソースのIPS(侵入防止ソフトウェア)です。Fail2banはPythonで書かれており、Apache2、SSH、FTPなどのさまざまなサービス用のフィルターが付属しています。Fail2banは、攻撃元のIPアドレスをブロックすることによって、悪意のあるログイン試行を減少させます。

Fail2banは、サービスのログファイル(例:/var/log/auth.log)をスキャンし、間違ったパスワードが多すぎる、エクスプロイトを探しているなどの悪意のあるログイン試行を示すIPアドレスを禁止します。Fail2banは、iptables、ufw、firewalldなどの複数のファイアウォールバックエンドもサポートしています。また、ブロックされたログイン試行ごとにメール通知を設定することもできます。

このガイドでは、Ubuntu 24.04サーバーにFail2banをインストールする方法を学びます。Fail2banの監獄を設定し、基本的な「fail2ban-client」コマンドを学び、次にFail2banを使用してIPアドレスを禁止および解除する方法を学びます。

前提条件

このガイドを始めるには、以下を確認してください:

  • Ubuntu 24.04サーバー
  • 管理者権限を持つ非ルートユーザー

Fail2banとUFW(簡易ファイアウォール)のインストール

Fail2banは、ブルートフォース攻撃からサーバーを保護するIPS(侵入防止ソフトウェア)です。ほとんどのLinuxリポジトリにデフォルトで利用可能で、複数のファイアウォールバックエンドをサポートしています。このセクションでは、Fail2banをインストールし、Fail2banのファイアウォールバックエンドとして使用されるUFW(簡易ファイアウォール)を設定します。

まず、以下のコマンドを実行してUbuntuパッケージインデックスを更新します。

sudo apt update

update repo

次に、以下の「apt」コマンドを使用して「fail2ban」および「ufw」パッケージをインストールします。インストールを確認するには「Y」を入力します。

sudo apt install fail2ban ufw

install fail2ban and ufw

インストールが完了したら、以下のコマンドを実行してSSHのポートを開き、UFWを有効にします。「Y」を入力して確認し、UFWを開始および有効にします。

sudo ufw allow OpenSSH  
sudo ufw enable

UFWが有効になると、「ファイアウォールはアクティブで、システム起動時に有効です」という出力が表示されます。

次に、以下のコマンドを実行してUFWのステータスを確認します。UFWが「アクティブ」で「OpenSSH」が有効になっていることがわかります。

sudo ufw status

setup ufw

最後に、以下の「systemctl」コマンドを実行して「fail2ban」サービスを開始、有効化、および確認します。

sudo systemctl enable --now fail2ban  
sudo systemctl status fail2ban

以下に示すように、「fail2ban」がアクティブ(実行中)で有効になっています。

start and enable fail2ban

Fail2banの設定

Fail2banをインストールした後、Fail2banがアクションを実行する前に設定する必要があります(チェックおよびブロック)。このセクションでは、fail2banの設定「/etc/fail2ban/jail.local」を変更し、「bantime」、「maxretry」、「findtime」のグローバル設定を行い、デフォルトアクションとUFWファイアウォールバックエンドを設定し、SSHサービスをブルートフォース攻撃から保護するために「sshd」監獄を有効にします。

まず、以下のコマンドでデフォルトのfail2ban設定を「/etc/fail2ban/jail.local」にコピーします。

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

以下の「nano」エディタコマンドを使用して「/etc/fail2ban/jail.local」ファイルを開きます。

sudo nano /etc/fail2ban/jail.local

ignoreip」オプションにローカルネットワークを追加します。このオプション内の任意のサブネットは、fail2banによってブロックされません。

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20

bantime」(IPアドレスが禁止される時間)、「findtime」(禁止アクションの前の失敗の数の間の期間)、および「maxretry」(IPアドレスが禁止されるための失敗の数)のデフォルト設定を調整します。この例では、「bantime」を「1時間」、「findtime」を「10分」、「maxretry」を「5回」に設定します。

bantime = 1h  
findtime = 10m  
maxretry = 5

オプションとして、デフォルトの「action」を「%(action_mw)s」に変更して、IPアドレスを禁止し、管理者にメールで通知を送信します。また、「destmail」と「sender」オプションも変更してください。

action = %(action_mw)s  
destemail = [email protected]  
sender = [email protected]

デフォルトの「banaction」を「ufw」に変更します。これにより、IPアドレスはfail2banによってUFWを介して禁止されます。

banaction = ufw

次に、「sshd」のデフォルト監獄を以下の設定で変更します。この例では、「sshd」監獄には「bantime」、「maxretry」、「findtime」のカスタム設定があります。

[sshd]  
enabled = true  
maxretry = 3  
findtime = 15m  
bantime = 3h  
  
port = ssh  
logpath = %(sshd_log)s  
backend = %(sshd_backend)s

完了したら、ファイルを保存して終了します。

最後に、以下の「systemctl」コマンドを実行して「fail2ban」サービスを再起動し、変更を適用します。

sudo systemctl restart fail2ban

check fail2ban

fail2ban-clientを使用してfail2banルールを確認する

この時点で、Fail2banサービスは稼働中で「sshd」監獄が有効になっています。次に、Fail2banのインストールを確認し、管理するための「fail2ban-client」の基本コマンドを学びます。

fail2banが実行中であることを確認するには、以下の「fail2ban-client」コマンドを実行します。

sudo fail2ban-client ping

fail2banが実行中であれば、「PONG」という出力が表示されます。

次に、以下のコマンドで「sshd」監獄のステータスを確認します。これにより、「sshd」監獄の検出されたIPアドレスと禁止されたIPアドレスのリストが表示されます。

sudo fail2ban-client status sshd

jail status sshd

次に、以下の「fail2ban-client get」コマンドを実行して、fail2ban監獄の特定のルールを確認します。このセクションでは、「bantime」、「maxretry」、「actions」、「findtime」、「ignoreip」を「sshd」監獄から確認します。

sudo fail2ban-client get sshd bantime  
sudo fail2ban-client get sshd maxretry  
sudo fail2ban-client get sshd actions  
sudo fail2ban-client get sshd findtime  
sudo fail2ban-client get sshd ignoreip

jail configuration

fail2ban-clientを使用してIPアドレスを禁止および解除する方法

「fail2ban-client」を使用してIPアドレスを手動で禁止または解除する方法を知っておくことが重要です。これにより、禁止リストからIPアドレスを簡単に削除できます。Fail2banでIPアドレスを禁止および解除するために「fail2ban-client」コマンドを使用します。

fail2banを介してIPアドレスを手動で禁止するには、以下の「fail2ban-client」コマンドを実行します。この場合、禁止されたIPアドレスは「sshd」監獄に入ります。

sudo fail2ban-client set sshd banip IP-ADDRESS

次に、以下のコマンドを実行して、fail2banの「sshd」監獄からIPアドレスを解除します。

Sudo fail2ban-client set sshd unbanip IP-ADDRESS

最後に、以下のコマンドを使用して「sshd」監獄のステータスを確認できます。IPアドレスが削除されたことがわかります。

sudo fail2ban-client status sshd

結論

おめでとうございます!Ubuntu 24.04サーバーにfail2banのインストールが完了しました。また、Fail2banの設定に関する基本的な構成、グローバル設定と監獄の設定を学びました。最後に、fail2banのステータス、監獄のステータス、監獄の構成を確認し、IPアドレスを手動で禁止および解除するための「fail2ban-client」コマンドの基本的な使用法も学びました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。