編集済み 1 1週間前 によって ExtremeHow 編集チーム
セキュリティFail2Banブルートフォース保護設定インストールシスアドミン監視SSHIPアドレスの禁止自動化
翻訳が更新されました 1 1週間前
Fail2Banは、Linuxサーバーをブルートフォース攻撃から保護するための人気のあるオープンソースソフトウェアです。ログファイルを監視し、疑わしい動作を示すIPアドレスを一時的に禁止することによって、これを実現します。Fail2Banを正しく設定することで、不正アクセスの試行に自動で応答し、サーバーのセキュリティを向上させることができます。
Fail2Banは、ユーザーやスクリプトがあなたのサーバーに不正アクセスしようとしているインスタンスを特定することで機能します。特定のログファイルを事前に定義されたパターンに基づいてスキャンし、これらのパターンに一致するIPアドレスを一時的に禁止します。この動作により、攻撃者がパスワードを何度も推測したり、システム内の脆弱性を操作したりするのを防ぐことができます。
Fail2Banを設定する前に、基本的なコンポーネントを理解することが重要です。
Fail2Banを設定する前に、Linuxサーバーに管理者アクセス権があることを確認してください。これにより、新しいソフトウェアのインストールやシステム設定の変更が可能になります。また、Linuxのコマンドライン操作の基本的な理解が必要です。さらに、防火壁を適切に設定することも重要です。Fail2BanはIPアドレスのブロックおよびブロック解除のために防火壁と連携します。
ほとんどのLinuxディストリビューションには、パッケージリポジトリにFail2Banが含まれているため、インストールが簡単です。異なるディストリビューションに対するインストール手順を見てみましょう:
sudo apt-get update
sudo apt-get install fail2ban
sudo yum install fail2ban
インストール後、Fail2Banサービスは通常自動的に開始されます。ステータスを確認するには次のようにします:
sudo systemctl status fail2ban
Fail2Banはその設定ファイルを通じて非常に設定可能です。以下の手順で、セキュリティニーズに合わせてカスタマイズします。
Fail2Banのメイン設定ファイルは/etc/fail2ban/jail.conf
にありますが、将来のアップデートで設定が上書きされないようにローカルコピーを作成することをお勧めします。jail.local
という新しいファイルを作成します:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
jail.local
の修正jail.local
を編集して、特定の設定を行います。以下が設定する必要のあるセクションです:
このセクションでは、すべてのジェイルに適用される一般設定(例えば、禁止時間やメールアラートの有無など)を定義します。テキストエディタでファイルを開きます:
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
セクションの下には、以下のような変数があります。
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 600
findtime = 600
maxretry = 3
destemail = your-email@example.com
banaction = iptables-multiport
mta = sendmail
protocol = tcp
chain = INPUT
600
秒は10分です。ジェイルはFail2Banの中心であり、どのサービスを監視するかおよびどのように監視するかを定義します。jail.local
ファイル内で、保護したいサービスのためのジェイルを有効にします:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Fail2Banにはいくつかのプレコンフィグされたフィルターが含まれていますが、必要に応じてカスタムフィルターを書くこともできます。/etc/fail2ban/filter.d/
ディレクトリに新しいファイルを作成します。フィルターは、不審な活動を識別する一連の正規表現で構成される必要があります。
ウェブアプリケーションでのログイン失敗を検出するカスタムフィルターを作成したいと仮定します。まず、新しいフィルターファイルを作成します:
sudo nano /etc/fail2ban/filter.d/myapp.conf
次のような表現を追加します:
[Definition]
failregex = ^.*Failed login for user.*$
ignoreregex =
Fail2Banのセットアップが期待通りに動作することを確認するため、テストすることが重要です:
Fail2Banを設定した後、変更を適用するためにサービスを開始または再起動します:
sudo systemctl restart fail2ban
Fail2Banサービスがエラーなく実行されていることを確認するには、ステータスを確認します:
sudo fail2ban-client status
攻撃をシミュレートするために、対象サービスを使用してログイン試行を意図的に失敗させます。Fail2Banを監視して、IPが禁止されることを確認します:
sudo fail2ban-client status sshd
このコマンドは、SSHジェイルのステータスと現在ブロックされているIPを表示します。
誤って禁止されたIPを解除する必要があることがあります。IPを解除するには、次のコマンドを使用します:
sudo fail2ban-client set <jail> unbanip <IP-Address>
Fail2Banは主にiptablesを使用して禁止を管理します。ただし、firewalld
やUFW (Uncomplicated Firewall)
などのファイアウォール管理ツールを使用している場合は、Fail2Banとスムーズに統合されるようにしてください。これらのツールを使用するために、構成でbanaction
をカスタマイズする必要があるかもしれません。
Fail2Banのログファイルを定期的にチェックして、不審な活動を確認します。ログは通常、ここにあります:
/var/log/fail2ban.log
これらのログを確認することで、攻撃パターンを理解し、セキュリティポリシーをより効果的にカスタマイズすることができます。
Fail2Banは、不正アクセスの試行からLinuxサーバーを保護するための多用途で不可欠なツールです。適切に設定することで、サービスへのブルートフォース攻撃の成功回数を大幅に減らすことができます。サーバー環境に合わせて設定を調整し、ログを継続的に監視して強力なセキュリティ姿勢を維持します。
テクノロジーが進化するにつれて、攻撃方法も進化します。Fail2Banとその構成を定期的に更新することで、新しい脅威に伴うリスクを最小限に抑えることができます。Fail2Banがセキュリティを強化するとはいえ、強力なパスワードの使用、システムの更新、および開放ポートの制限など、他のベストプラクティスとともに包括的なセキュリティ戦略の一部であるべきです。
記事の内容に誤りがある場合, あなたは