ウェブサイト検索

Ubuntu 22.04にFail2banをインストールして構成する方法


Ubuntu 22.04にFail2banをインストールして構成する方法

このページで

  1. 前提条件
  2. UFWファイアウォールをセットアップする
  3. Ubuntu 22.04にFail2banをインストールする
  4. Fail2banの設定
  5. Fail2banのステータスを確認するためのFail2ban-clientの使用
  6. Fail2ban-clientを使用してIPを禁止および解除します
  7. 結論

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

Fail2banは、サービスのログファイル(例:/var/log/auth.log)をスキャンし、不正ログイン試行が多すぎる場合や、脆弱性を探るなどの悪意のあるログイン試行を示すIPアドレスを禁止することによって機能します。Fail2banは、iptables、ufw、firewalldなど複数のファイアウォールバックエンドもサポートしています。また、すべてのブロックされたログイン試行に対してメール通知を設定することも可能です。

このチュートリアルでは、Ubuntu 22.04サーバーのセキュリティを強化するために、Fail2banをインストールおよび設定する方法を説明します。このガイドでは、Fail2banサービスとジャイルを管理するためのfail2ban-clientの基本コマンドについても説明します。

前提条件

  • Ubuntuサーバー22.04
  • sudo権限を持つ非ルートユーザー。

UFWファイアウォールをセットアップする

Fail2banをインストールする前に、Ubuntuサーバーのファイアウォールを設定する必要があります。

デフォルトのUbuntuサーバーインストールにはUFWファイアウォールが付属しており、iptablesのような他のファイアウォールよりも管理が容易です。

次のコマンドを使用してUFWファイアウォールの状態を確認してください。

sudo ufw status

もし"Status: inactive"のような出力メッセージが表示される場合、あなたのUFWファイアウォールはまだ起動していません。しかし、もし"Command ufw not found"のような出力メッセージが表示される場合、UFWファイアウォールはあなたのサーバーにインストールされていないということです。

UFWファイアウォールパッケージをインストールするには、以下のaptコマンドを実行してください。

sudo apt install ufw -y

UFWのインストールが完了したら、以下のコマンドを実行してSSHサービスをUFWファイアウォールに追加します。

sudo ufw allow ssh

次に、以下のコマンドを実行してUFWファイアウォールを開始し、有効にします。

sudo ufw enable

UFWファイアウォールを確認し、開始するにはyを入力してください。

最後に、次のコマンドを使ってUFWファイアウォールを再度確認してください。

sudo ufw status

下に、SSHポート22がファイアウォールルールに追加されたUFWファイアウォールの「ステータス: アクティブ」を表示できます。

Ubuntu 22.04にFail2banをインストールする

UFWファイアウォールをインストールして設定した後、次にFail2banパッケージをサーバーにインストールします。

次のコマンドを実行して、Ubuntuリポジトリを更新およびリフレッシュしてください。

sudo apt update

次に、以下のコマンドを使用してFail2banパッケージをインストールします。

sudo apt install fail2ban -y

インストールが始まります。

Fail2banのインストールが完了したら、以下のコマンドを使用してFail2banサービスを有効にし、サービスを開始します。

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

最後に、次のコマンドを使用してFail2banサービスのステータスを確認してください。

sudo systemctl status fail2ban

以下のスクリーンショットでは、Ubuntu 22.04サーバーでFail2banサービスが実行されていることがわかります。

Fail2banの設定

Fail2banをインストールした後は、今度はFail2banを設定して構成する時間です。

すべてのFail2banの設定は、/etc/fail2banディレクトリに保存されています。以下は、知っておくべき詳細なFail2banの設定です:

  • fail2ban.confの設定はFail2banの主な設定です。
  • jail.confの設定は、Fail2banのjail設定の例です。
  • action.dディレクトリには、メール設定やファイアウォール設定などのfail2banアクション設定が含まれています。
  • ディレクトリ jail.dは、fail2banの監獄のための追加設定を含んでいます。

Fail2banの設定を開始するには、以下のコマンドを使用してデフォルトの監獄設定 jail.confをjail.localにコピーする必要があります。

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

今、nanoエディタを使って設定ファイルjail.localを編集します。

sudo nano /etc/fail2ban/jail.local

まず、ignoreipオプションのコメントを外し、あなたのIPアドレスを追加します。ignoreipオプション内のすべてのIPアドレスは、Fail2banによってブロックされることはありません。

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

禁止設定について、必要に応じて設定を変更できます。この例では、グローバルバン時間は1日、ファインドタイムは10分、最大再試行回数は5回です。

bantimeオプションは、IPアドレスがサーバーにアクセスできなくなるまでの時間です。findtimeオプションは、禁止措置が取られる前の失敗の回数間の期間です。そして、maxretryオプションは、IPアドレスが禁止されるために必要な失敗の回数です。

bantime  = 1d
findtime  = 10m
maxretry = 5

Fail2banのデフォルトのアクションは、IPアドレスを禁止することだけです。しかし、IPアドレスが禁止されるたびにメール通知を設定することもできます。

以下の通りアクションオプションを変更し、デフォルトの送信者および宛先メールアドレスを変更してください。

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

次に、UFWファイアウォールの統合のために、banactionオプションを以下のようにufwに変更する必要があります。

banaction = ufw

最後に、ジャイルの設定についてです。このセクションでは、サービスを追加し、fail2banを使用してそれを保護します。

この例では、SSHサービスのために監獄を有効にしますが、sshd監獄のグローバルデフォルト設定も上書きします。バンタイムは1週間で、失敗の最大再試行回数は3回、発見時間は10分です。

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

作業が完了したら、ファイルを保存して閉じてください。

次に、Fail2ban サービスを再起動し、jail.local 設定への新しい変更を適用するために、以下のコマンドを実行します。

sudo systemctl restart fail2ban

あなたは今、メール通知が有効で、SSHサービスを保護するためにsshdジャイルが有効になったFail2banの設定を完了しました。

Fail2banのステータスを確認するためのFail2ban-clientの使用

fail2banは、Fail2banサービスと対話するためのコマンドラインのfail2ban-clientを提供します。これにより、コマンドラインからFail2banを管理および設定でき、またFail2banの監獄を管理することもできます。

fail2ban のインストールと設定を確認するには、以下のコマンドを実行します。fail2ban-client

sudo fail2ban-client ping

「サーバーが応答しました: pong」のような出力メッセージが表示された場合、これはFail2banがエラーなく実行されていることを意味します。

次に、次のfail2ban-clientコマンドを実行して、sshdの監獄のステータスを確認します。

sudo fail2ban-client status sshd

以下に、sshd ジェイルの詳細なステータスを示します。これには、SSH サービスのログファイルと、sshd ジェイルで禁止されている IP アドレスのリストが含まれます。

今、sshd ジェイルの詳細な設定を取得したい場合は、以下のように fail2ban-client コマンドを使用できます。

sshdのjailのbantime設定を確認してください。ここでbantimeの出力が秒単位で表示されます。

sudo fail2ban-client get sshd bantime

sshdジャイルのmaxretry設定を確認してください。ここでmaxretryは3になっているのは、グローバル設定からオーバーライドされているためで、グローバル設定はmaxretry5回です。

sudo fail2ban-client get sshd maxretry

sshd監獄のためのbanactionには、次のコマンドを使用できます。また、sshd監獄のデフォルトbanactionとしてufwの出力が得られるはずです。

sudo fail2ban-client get sshd actions

ここでのfindtimeについては、sshdジエイルのオーバーライド値も表示されます。ここでの出力も秒形式になります。

sudo fail2ban-client get sshd findtime

最後に、下記のコマンドを使用してsshdジェイルのデフォルトのignoreipを確認することもできます。そして、ignoreipがグローバルなFail2ban設定と同じ値になっていることがわかります。

sudo fail2ban-client get sshd ignoreip

Fail2ban-clientを使用してIPを禁止および解除します

Fail2banについてもう一つ重要な点は、Fail2banでIPアドレスを禁止および解除する方法です。これを行うには、fail2ban-clientコマンドを使用することもできます。

sshdのjailでIPアドレスを手動で禁止するには、以下のfail2ban-clientコマンドを使用できます。禁止したいIPアドレスに変更してください。

sudo fail2ban-client set sshd banip IP-ADDRESS

sshdのジャイルからIPアドレスを解除するには、以下のfail2ban-clientコマンドを使用できます。ただし、解除したいIPアドレスにIPアドレスを変更することを忘れないでください。

sudo fail2ban-client set sshd unbanip IP-ADDRESS

現在、IPアドレスを手動で禁止または解除した後、以下のfail2ban-clientコマンドを使用して確認できます。

sudo fail2ban-client status sshd

IPアドレスを手動で禁止する場合、そのIPアドレスが禁止されたIPアドレスのリストにあることを確認してください。しかし、IPアドレスの禁止を解除する場合、そのIPアドレスが禁止されたIPアドレスのリストから消えることを確認してください。

結論

おめでとうございます!あなたは今、Ubuntu 22.04のセキュリティを強化するために、Fail2banを正常にインストールし、設定しました。また、UFWファイアウォールを有効にする方法と、Fail2banをUFWファイアウォールと統合する方法も学びました。最後に、Fail2ban-clientコマンドを使用してFail2banを管理する方法を学びました。これには、Fail2banからIPアドレスを禁止および解除する方法が含まれています。

関連記事: