Ubuntu 22.04にFail2banをインストールして構成する方法
Ubuntu 22.04にFail2banをインストールして構成する方法
このページで
- 前提条件
- UFWファイアウォールをセットアップする
- Ubuntu 22.04にFail2banをインストールする
- Fail2banの設定
- Fail2banのステータスを確認するためのFail2ban-clientの使用
- Fail2ban-clientを使用してIPを禁止および解除します
- 結論
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 -yUFWのインストールが完了したら、以下のコマンドを実行してSSHサービスをUFWファイアウォールに追加します。
sudo ufw allow ssh次に、以下のコマンドを実行してUFWファイアウォールを開始し、有効にします。
sudo ufw enableUFWファイアウォールを確認し、開始するには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 = 5Fail2banのデフォルトのアクションは、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 bantimesshdジャイルのmaxretry設定を確認してください。ここでmaxretryは3になっているのは、グローバル設定からオーバーライドされているためで、グローバル設定はmaxretry5回です。
sudo fail2ban-client get sshd maxretrysshd監獄のための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 ignoreipFail2ban-clientを使用してIPを禁止および解除します
Fail2banについてもう一つ重要な点は、Fail2banでIPアドレスを禁止および解除する方法です。これを行うには、fail2ban-clientコマンドを使用することもできます。
sshdのjailでIPアドレスを手動で禁止するには、以下のfail2ban-clientコマンドを使用できます。禁止したいIPアドレスに変更してください。
sudo fail2ban-client set sshd banip IP-ADDRESSsshdのジャイルからIPアドレスを解除するには、以下のfail2ban-clientコマンドを使用できます。ただし、解除したいIPアドレスにIPアドレスを変更することを忘れないでください。
sudo fail2ban-client set sshd unbanip IP-ADDRESS現在、IPアドレスを手動で禁止または解除した後、以下のfail2ban-clientコマンドを使用して確認できます。
sudo fail2ban-client status sshdIPアドレスを手動で禁止する場合、そのIPアドレスが禁止されたIPアドレスのリストにあることを確認してください。しかし、IPアドレスの禁止を解除する場合、そのIPアドレスが禁止されたIPアドレスのリストから消えることを確認してください。
結論
おめでとうございます!あなたは今、Ubuntu 22.04のセキュリティを強化するために、Fail2banを正常にインストールし、設定しました。また、UFWファイアウォールを有効にする方法と、Fail2banをUFWファイアウォールと統合する方法も学びました。最後に、Fail2ban-clientコマンドを使用してFail2banを管理する方法を学びました。これには、Fail2banからIPアドレスを禁止および解除する方法が含まれています。




