GNU/Linux >> Linux の 問題 >  >> Cent OS

RHEL 8 /CentOS8にFail2banをインストールして使用する方法

すべてのIT運用チームのリストのトップは、サーバーが許可されていないユーザーや悪意のあるスクリプトから保護されていることを確認しています。攻撃や侵害を防ぐために適用できるソリューションは多数あります。その中には、Fail2banソフトウェアツールの実装があります。

Fail2banは、SSHやVSFTPDなどのさまざまなサービスを標的とするブルートフォース攻撃を軽減するオープンソースの侵入検知手段です。 SSHを含む一連のフィルターが付属しており、ファイアウォールルールを更新し、不正なSSHログイン試行をブロックするようにカスタマイズできます。

fail2banユーティリティは、サーバーのログファイルを監視して侵入の試みがないかどうかを監視し、指定された期間に事前定義された回数の試みが失敗した後、ユーザーのIPアドレスをブロックします。ユーザーのIPは、/ etc / fail2ban / jail.conf構成ファイルで設定、有効化、または無効化できる「jail」に配置されます。このようにして、Linuxサーバーを不正アクセスから、より具体的にはボットネットや悪意のあるスクリプトから保護するのに役立ちます。

刑務所とは何ですか?刑務所は次の重要な要素で構成されています:

  • 分析するログファイル。
  • ログファイルに適用されるフィルター。
  • フィルターが一致したときに実行するアクション
  • 一致のタイプを詳しく説明するための追加のパラメーター。たとえば、maxtry(最大試行回数)やbantime(禁止時間)などです。

このチュートリアルでは、RHEL 8 /CentOS8でのFail2banのインストールと構成について説明します。

ステップ1)EPELリポジトリをインストールする

まず、サーバーにログインし、次のようにEPEL(Extra Package for Enterprise Linux)パッケージをインストールします。

CentOS8の場合

$ sudo dnf install -y epel-release

RHEL8の場合

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

ステップ2)Fail2banをインストールする

Fail2banをインストールするには、以下の簡単なコマンドを実行します。

$ sudo dnf install -y fail2ban

ステップ3)Fail2banの構成

設計上、fail2banはログファイルを解析し、フィルターで指定されているfailregexとの照合を試みます。フィルタは、特定のサービスで失敗した認証の試行を検出します。たとえば、正規表現(regex)を使用したSSHログインの試行です。ログエントリで「maxtry」回の最大数に達すると、アクションがトリガーされます。

デフォルトでは、これは認証の試行が3回失敗した後に発生し、ユーザーは10分間禁止または「刑務所」に入れられます。これらのパラメーターは、グローバル構成ファイルである/etc/fail2ban/jail.confファイルで簡単に構成できます。

重要な設定ファイルはすべて/etc/fail2ban/ディレクトリにあります。

フィルタは/etc/fail2ban/filter.dディレクトリに保存されます。 SSH、Webmin、postfixなどのさまざまなサービス用のフィルターが数十あります。

/etc/fail2ban/jail.confがメインの設定ファイルです。ただし、このファイルを直接変更することはお勧めしません。ファイルの内容が説明されているため、後のディストリビューションの更新時に構成が上書きまたは改善される可能性があるためです。

回避策は、/ etc / fail2ban / jail.dディレクトリにjail.localファイルを作成し、保護したいサービスのカスタム構成を追加することです。

注:jail.localファイルで定義されたパラメーターは、jail.confファイルをオーバーライドします。そのため、メインの構成ファイルをそのままにしておくことがさらに望ましいです。

デモンストレーションの目的で、SSH接続を保護するjailファイルを作成します。

$ sudo vim /etc/fail2ban/jail.local

これがサンプル構成ファイルです。

[DEFAULT]
ignoreip = 192.168.2.105
bantime  = 86400
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
[sshd]
enabled = true

パラメータを分類して、それらが何を表すかを見てみましょう。

  • ignoreip –禁止されないIPアドレスまたはドメイン名のリストを定義します。
  • 禁止時間–名前が示すように、これはリモートホストが禁止される期間を秒単位で指定します。
  • maxretry –これは、ホストがブロック/禁止されるまでに失敗したログイン試行の数です。
  • findtime – maxtryの試行を達成した後、ホストがブロックされる時間(秒単位)。
  • 禁止措置–禁止措置。
  • バックエンド–ログファイルのフェッチに使用されるシステム

私たちの構成は次のことを意味します:

IPアドレスが過去5分間に3回失敗した認証の試行を記録すると、IP 192.168.2.105のホストを除いて、24時間禁止されます。

構成ファイルを保存して終了します。

ステップ4)Fail2banを開始して有効にします

SSH用のjailファイルの設定が完了したら、起動時にfail2banを起動して有効にします。通常、サービスはインストール時に実行されていません

fail2banを開始して有効にするには、次のコマンドを実行します。

$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban

fail2banのステータスを明らかにするには、以下のコマンドを呼び出します。

$ sudo systemctl status fail2ban

今回は、fail2banが期待どおりに実行されていることを確認できます。

次に、Fail2banがどのように機能するかを見てみましょう。

ステップ4)実行中のFail2ban

さらに一歩進んで、Fail2banの動作を見てみましょう。禁止されているIPアドレスを監視するには、fail2ban-clientユーティリティが便利です。たとえば、ssh jailのステータスを取得するには、次のコマンドを実行します。

$ sudo fail2ban-client status sshd

現時点では、サーバーにリモートでログインしていないため、禁止されているIPエントリはありません。

jail.local構成ファイルで指定されたものとは異なるIPを使用してWindowsPCからパテSSHクライアントからログインを試みます。

出力から、サーバーにアクセスできないことがはっきりとわかります。ステータスをもう一度確認すると、示されているように1つのIPが禁止されていることがわかります。

禁止リストからIPを削除するには、次のように禁止を解除します。

$ sudo fail2ban-client unban 192.168.2.101

fail2banのルールとポリシーの詳細については、次のようにjail.confのマンページにアクセスしてください

$ man jail.conf

コメントやフィードバックはありますか?お気軽にお問い合わせください。折り返しご連絡いたします。

また読むLinuxユーザー向けの12のIPコマンドの例


Cent OS
  1. CentOS7にPHPComposerをインストールして使用する方法

  2. CentOS7にifconfigをインストールして使用する方法

  3. CentOS7にFail2Banをインストールする方法

  1. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  2. RHEL 8 / CentOS8Linuxにbinファイルをインストールする方法

  3. CentOS8にFail2banをインストールして設定する方法

  1. CentOS7にDockerをインストールして使用する方法

  2. CentOS7にDockerComposeをインストールして使用する方法

  3. CentOS7にPHPComposerをインストールして使用する方法