Linux で Fail2Ban を使用してサーバーを保護する方法

サーバーのセキュリティは、あらゆる企業や組織にとって最優先事項です。 Fail2Ban は、システム管理者のツールキットで最も重要なツールの 2 つです。 このガイドでは、Fail2Ban とは何か、および Linux で FailXNUMXBan を使用してサーバーを攻撃から保護する方法について説明します。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

Fail2Banとは?

Fail2Ban は、ログ ファイルを監視し、悪意のある活動の兆候を示す IP アドレスをブロックする侵入防止ツールです。 これは、ログ ファイル内の特定のパターンに一致する「フィルター」を作成し、問題のある IP アドレスをブロックするなどのアクションを実行することによって行われます。

Linux で Fail2Ban を使用する理由

Linux で Fail2Ban を使用する理由はいくつかあります。 多分:

  • 悪意のある IP アドレスを自動的にブロックすることで時間を節約します。
  • 攻撃が成功する可能性を減らして、サーバーを保護します。
  • サーバーが監視および保護されていることを知っていると、安心できます。

Linux に Fail2Ban をインストールする

デフォルトでは、Fail2Ban は Ubuntu リポジトリで利用できます。 apt を使用してインストールします。

sudo add-apt-repository ユニバース sudo apt update && sudo apt install fail2ban -y

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

Fail2Ban はそのサービスをバックグラウンドで設定しますが、systemd はデフォルトで無効にします。 次のコマンドで起動して有効にできます。

sudo systemctl start fail2ban sudo systemctl enable fail2ban

次のコマンドを使用して、Fail2Ban が実行されていることを確認します。

sudo systemctl ステータス fail2ban

以下の画像のような出力が表示されます。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

Linux で Fail2Ban を構成する

ディレクトリ「/etc/fail2ban」には、Fail2Ban の構成ファイルが含まれています。 デフォルトでは、Fail2Ban には、すべてのサービスに適用される設定を含む「jail.conf」ファイルが付属しています。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ただし、ローカルの「jail.local」ファイルを作成し、「jail.conf」の設定をオーバーライドすることをお勧めします。「jail.conf」に加えた変更は、ソフトウェアが更新されるたびに失われるためです。

次のコマンドを使用して、「jail.local」ファイルを作成できます。

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

jail.local ファイルを開いて編集します。

sudo nano /etc/fail2ban/jail.local

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

知っておくと便利: 学ぶ LINUX でパスワードなしの SSH ログインを有効にする方法。

jail.local ファイルを調べる

以下に示すような出力が表示され、利用可能なオプションの数に圧倒されるかもしれません。 しかし、心配しないでください。最も重要なオプションについて順を追って説明します。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

アイコンが表示されます 「#」 行の先頭に、コメントであることを示します。 Fail2Ban はこれらを使用して、特定の設定が何をするかを説明します。 このアイコンを削除すると、ここでいくつかの設定を有効にすることができます。

セクションを含む "[デフォルト]" すべての刑務所に適用されるオプションについて。 これは、Fail2Ban の一般的な構成です。 次のスクリーンショットは例を示しています。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

サービス名で始まる他のセクションもあります。 この刑務所は、世界の刑務所に加えて、特定のサービスに適用されます。

また読む:  子供向けの最高の Linux ソフトウェア: アプリ、ディストリビューション、ゲーム

たとえば、刑務所のセクションがあります 「sshd」。 このセクションには、sshd サービスのオプションが含まれています。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ヒント: サーバーの強化について詳しくは、次の Web サイトでもご覧いただけます。 SSH サーバーを保護する.

オートバン機能を有効にする

設定に移動 「禁止時間 = 1hコードを削除します 「#」 それを有効にするには、行の先頭に。 この行は、Fail2Ban が IP アドレスを無効にするのにかかる時間を設定します。 デフォルトの単位は XNUMX 時間です。 分など、他の単位も使用できます。 (氏) または日 (d) または数週間 (w)。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

必要に応じて、この値を増減できます。 たとえば、この値を 30 分に変更して、ブロック期間を 30 分に短縮できます。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ログイン ウィンドウのデフォルトの長さを変更する

次の設定は「maxretry」と「findtime」です。 Fail2Ban が IP アドレスをブロックする前に、攻撃者が試行できるログイン試行回数を制限します。

「maxretry」と「findtime」のデフォルト値は 5 と 10 m です。 IP が 2 分間に XNUMX 回認証に失敗した場合、FailXNUMXBan は bantime 設定で指定された期間、その IP をブロックします。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

これらの値は、必要に応じて変更できます。 たとえば、「maxretry」を 3 に、「findtime」を 5m に設定できます。Fail2Ban は、XNUMX 分間に XNUMX 回認証に失敗すると IP アドレスを無効にします。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

Linux で Fail2Ban 通知機能を有効にする

次の設定は、destemail、sendername、および mta です。 これらの設定は、Fail2Ban が電子メール通知を構成するために使用するものです。

  • 電子メール設定は、プログラムが通知を送信する電子メール アドレスです。
  • 送信者の名前は、通知メールの From フィールドに表示される名前です。
  • mta は、Fail2Ban がメールの送信に使用するメール転送エージェントです。 mta のデフォルトは sendmail ですが、mail などに変更できます。

電子メール通知を受け取りたい場合は、これらの行のコメントを外して、示されているように適切な値を入力する必要があります。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

禁止が発生すると、表示されている禁止に関する詳細が記載された電子メール通知を受け取ります。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

カスタム ブロック注文を作成する

次の設定は「action_=」です。 これは、IP アドレスをブロックするときに Fail2ban が実行するアクションを指定します。 デフォルトでは、iptables を使用して、「bantime」が期限切れになるまで IP をブロックします。

以下で説明するように、他の手順を使用することもできます。 このチュートリアルでは、簡単にするためにデフォルト設定に固執します。

  • アクション_mw: IP アドレスがブロックされたときに、関連する WHOIS 情報とともに電子メール通知を送信します。
  • アクション_mwl: IP アドレスがブロックされたときに、ブロックの原因となった関連する WHOIS 情報とログ ファイル エントリとともに、電子メール通知を送信します。
  • アクション_xarf: IP アドレスがブロックされたときに、ブロックをトリガーしたログ ファイル エントリと共に X-ARF 電子メール通知を送信します。
また読む:  FedoraLinuxをアップデートする方法

他にも多くの手順を利用できますが、このチュートリアルですべてをカバーすることはできません。 してもいいです 利用可能なすべての手順について読む Fail2ban のドキュメント。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

サービスの構成を有効にする

Fail2ban のデフォルトの動作を設定する以外に、いくつかの一般的なインターネット サービス用に事前に作成されたフィルター ファイルを使用することもできます。 これらは、開発者が特定のサーバーの特定のログ出力を検索するために作成した小さなファイルです。

たとえば、「apache-shellshock.conf」ファイルには、Fail2ban がシェルショック エラーを生成しようとする悪意のある試みをチェックできるようにするために必要なすべての設定が含まれています。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ディレクトリ「/etc/fail2ban/filter.d」を一覧表示すると、システムで使用可能なすべてのフィルター ファイルを見つけることができます。

ls /etc/fail2ban/filter.d

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

使用するフィルターがわかったら、「jail.local」ファイルを開いて、起動時にそれらをロードするように Fail2ban に指示します。

sudo nano /etc/fail2ban/jail.local

新しいフィルターを有効にできる「jail.local」にスペースを作成します。 コメントのタイトルと [INCLUDES] ブロックの間に自分で作成します。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

アクティブにするフィルターを追加します。 たとえば、次は私の構成で使用しているスニペットです。

# コメント: コメント行には「#」を使用し、「;」を使用します。 (スペースに続く) インラインコメント [sshd] 有効 = true [nginx-bad-request] 有効 = true [bitwarden] 有効 = true [INCLUDES]

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

完了したら、ファイルを保存して閉じます。 変更を適用するには、fail2ban を再起動します。

sudo systemctl 再起動fail2ban

構成をテストする

Linux で Fail2Ban を構成したので、今度はそれをテストします。

構成をテストする最も簡単な方法は、間違ったパスワードで数回連続してログインを試みることです。 これを行うには、SSH 接続を使用できます。

廃棄マシンで、「admin」ユーザー名を使用して Fail2ban サーバーに SSH で接続してみます。 「your_server_ip_address」を Fail2ban サーバーの実際の IP アドレスに置き換えます。

ssh admin@your_server_ip_address

プロンプトが表示されたらランダムなパスワードを入力し、数回繰り返します。 何度か試行すると、サーバーが接続試行を拒否したというメッセージが表示されます。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ssh を使用する以外に、Fail Status を実行して Fail2ban の他のフィルター ファイルをテストすることもできます。 私の場合、ホストが無効なリクエストでサーバーをフラッディングしているかどうかを検出する「nginx-bad-request」フィルターを使用しています。

また読む:  Ubuntu を高速化する 7 つの方法

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

これを知っていれば、curl を使用して意図的に空のリクエストを Web サーバーに送信することで、この機能をテストできます。

curl -H "ユーザーエージェント:" -H "ホスト:" https://yourwebsite.com -v

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

Linux での Fail2Ban ルーチンの確認

最後に、Fail2ban サーバーで次のコマンドを実行して、fail2ban が必要なルールを iptables に追加したことを確認します。

grep コマンドは、iptables コマンドの出力をフィルタリングします。 -S オプションは、ルールを簡単に解析できる形式で出力するように iptables に指示します。

sudo iptables -S | grep f2b

以下の画像のような出力が表示されます。 「–reject-with icmp-port-unreachable」引数は、iptables に、クライアントが接続を試みたときに ICMP ポート到達不能メッセージをクライアントに送信するように指示します。 サーバーがブロックしたデバイスの IP アドレスも確認できます。

Linux で Fail2Ban を使用してサーバーを保護する方法 - %categories

ヒント: SELinux を使用して Linux サーバーを保護する必要もあります。

よくある質問

Q1: Fail2ban が IP アドレスをブロックすると、空のメール通知が届くのはなぜですか?
الجواب: 空の電子メール通知を受け取った場合、メール サーバーが正しく構成されていない可能性があります。 メール サーバーの構成を確認し、メールを送信できることを確認します。

Q2: IP アドレスのブロックを解除するにはどうすればよいですか?
الجواب: まず、IP アドレスが現在ブロックされている刑務所を見つけます: sudo fail2ban-client status 、次のコマンドを実行して IP アドレスのブロックを解除します: sudo fail2ban-client set unsanip .

Q3: fail2ban ログ ファイルを表示するにはどうすればよいですか?
الجواب: fail2ban ログ ファイルを表示して、問題のトラブルシューティングを行ったり、IP アドレスがブロックされた理由を調べたりすることができます。 ファイル「/var/log/fail2ban.log」には、fail2ban によって生成されたすべてのログが含まれています。 cat コマンドを使用して、fail2ban ログ ファイルを表示します: cat /var/log/fail2ban.log。

Q4: 複数のフィルター ファイルを有効にしました。 なぜ彼らはすべて働いていないのですか?
الجواب: この問題は、フィルタがその前の別のファイルを上書きするために発生する可能性が最も高いです。 これを修正する XNUMX つの方法は、複数のフィルターを組み合わせて独自のフィルター ファイルを作成することです。

Q5: Fail2ban はサーバーを DoS 攻撃から保護しますか?
الجواب: はいといいえ。 ほとんどの場合、Fail2ban は無効なリクエストをサーバーに送信する IP をブロックできます。 ただし、このプログラムの最大の制限の XNUMX つは、ログ エントリを生成しないイベントに対処できないことです。 そのため、これらの形式の攻撃に対して他のツールを使用して Linux サーバーを保護することは依然として重要です。

あなたも好きかも