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

CentOS8およびFedora33にFail2Banをインストールおよび構成する方法

Fail2Banは、さまざまなプロセスのログファイルをスキャンし、パスワードの失敗が多すぎるIPアドレスを禁止するログ解析ユーティリティです。ログインの試行が検出されると、Fail2Banはiptablesに新しいルールを追加して、攻撃者のIPアドレスを一時的または永続的にブロックします。同じことをメールで通知することもできます。

これは主にSSHを介した侵入の検出に重点を置いていますが、ログファイルを使用する任意のサービスで機能するように構成できます。

前提条件
  1. sudo権限を持つroot以外のユーザーがいるFedora33またはCentOS8ベースのサーバー。

  2. Nanoエディターをインストールします。これを使用します。

    $ sudo dnf install nano -y
    
Fail2Banをインストール

CentOS 8にFail2Banをインストールするには、最初にEPELYumリポジトリをインストールする必要があります。

$ sudo dnf install epel-release

Fedora33にはFail2Banが同梱されています。

次のコマンドを実行して、Fedora33とCentOS8の両方にFail2Banをインストールします。

$ sudo dnf install fail2ban

インストールしたら、サービスを有効にする必要があります。

$ sudo systemctl enable fail2ban

次に、fail2banサービスを開始します。

$ sudo systemctl start fail2ban

これで、サービスのステータスをチェックして、サービスが正しく機能しているかどうかを確認できます。

$ sudo systemctl status fail2ban
? fail2ban.service - Fail2Ban Service
     Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
     Active: active (running) since Mon 2020-11-02 21:15:59 UTC; 5s ago
       Docs: man:fail2ban(1)
    Process: 19031 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
   Main PID: 19032 (f2b/server)
      Tasks: 3 (limit: 1125)
     Memory: 11.0M
        CPU: 96ms
     CGroup: /system.slice/fail2ban.service
             ??19032 /usr/bin/python3 -s /usr/bin/fail2ban-server -xf start

Nov 02 21:15:59 howtoforge-tutorial systemd[1]: Starting Fail2Ban Service...
Nov 02 21:15:59 howtoforge-tutorial systemd[1]: Started Fail2Ban Service.
Nov 02 21:15:59 howtoforge-tutorial fail2ban-server[19032]: Server ready
Fail2Banの構成

Fail2Banサービスは、構成ファイルを / etc / fail2banに保持します ディレクトリ。 jail.confファイルに出くわします 初期化。このファイルは通常、パッケージのアップグレード中に上書きされるため、編集しないでください。

代わりに、すべての構成は、 jail.localと呼ばれる新しいファイルで行う必要があります。 。これら2つのファイルの設定は、/etc/fail2ban/jail.d/のファイルを介してさらに上書きできます。 ディレクトリ。

構成は次の順序で適用されます:

  1. /etc/fail2ban/jail.conf
  2. etc / fail2ban / jail.d/*。conf 、アルファベット順
  3. /etc/fail2ban/jail.local
  4. /etc/fail2ban/jail.d/*.local 、アルファベット順

jail.conf [DEFAULT]が含まれています セクションの後に個々のサービスのセクションが続きます。これらのセクションは、 .localで定義することでオーバーライドできます。 ファイル。

jail.localを構成します

新しいjail.localを作成します ファイル。

$ sudo nano /etc/fail2ban/jail.local

次のコードを貼り付けます。

[DEFAULT]
# Ban hosts for one hour:
bantime = 3600

# Override backend=auto in /etc/fail2ban/jail.conf
backend = systemd

[sshd]
enabled = true

Ctrl + Xを押します エディターを閉じてYを押します ファイルを保存するように求められたら。これにより、新しいデフォルトの bantimeが設定されます すべてのサービスで、バックエンドを systemdに変更します `sshdを有効にします 刑務所。

Fail2banを再起動して、新しい変更を実装します。

$ sudo systemctl restart fail2ban

fail2ban-client を使用して、新しく適用された設定を確認できます ユーティリティ。

$ sudo fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   sshd

具体的には、次の方法で各刑務所の詳細なステータスを取得することもできます。

$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:
その他の設定

jail.conf /jail.localを使用してカスタマイズできるより多くの設定を提供します ファイル。次に、いくつかの設定について説明します。

ホワイトリストIP

次のコードを使用して、IPがFail2banによってブロックされないようにホワイトリストに登録/無視できます。

[DEFAULT]
ignoreip = 127.0.0.1/8 123.45.67.89

特定の刑務所のIPのみをホワイトリストに登録する場合は、 fail2ban-clientを使用して行うことができます。 。

$ sudo fail2ban-client set JAIL addignoreip 123.45.67.89

JAILを置き換えます 上記のコマンドでjailの名前を使用して、の設定を編集します。

禁止時間と再試行量

禁止の再試行の時間と回数を設定できる設定は3つあります。

bantime -IPが禁止される時間の長さ(秒単位)。永続的な禁止を設定するには、この値を負の数に設定します。デフォルト値は10分または600秒です。

findtime -禁止が設定されるまでのログイン試行間の時間の長さです。この値は常に秒数です。たとえば、Fail2banが5回のログイン試行の失敗後にIPを禁止するように設定されている場合、それらの5回の試行は設定された10分以内に発生する必要があります bantime 制限。

maxretry -禁止が課される前の単一のIPアドレスからの再試行回数です。デフォルト値は3です。

これらの設定をカスタマイズするには、次の行を \ etc \ fail2ban \ jail.localに貼り付けます。 [DEFAULT]の下のファイル セクション。

bantime = 3600
findtime = 300
maxretry = 4
メールアラート

電子メールアラートを送信するには、最初にメール転送エージェント(MTA)をインストールする必要があります。この目的のために、 sendmailをインストールします 。

$ sudo dnf install sendmail

メールを受信するには、 \ etc \ fail2ban \ jail.localに次のコードを追加します [DEFAULT]の下のファイル セクション。

destemail = [email protected]
sendername = Fail2Ban
mta = sendmail
action = %(action_mw)s

destemail sendernameでメールを受信するIDである宛先電子メールIDを指します 送信者の名前を参照しているため、Fail2Banを使用しています。 mta sendmailである使用されているメール転送エージェントを指します ここ。 Postfixを使用している場合 、次に値 mailを使用します mtaの場合 変数。

アクション 侵入が検出されたときに実行されるデフォルトのアクションを指します。デフォルト値は%(action_)sです。 これはユーザーを禁止するだけです。 %(action_mw)s 禁止し、Whoisレポートを含む電子メールを送信します。 %(action_mwl)s 関連するログファイルからの情報とともに、Whoisレポートを禁止して電子メールで送信します。これは、刑務所固有の基準で変更することもできます。

個々の刑務所の設定

すでに知っているように、 [DEFAULT] セクションはすべての刑務所に適用されます、それはいくつかの特定の刑務所とそれらの設定を調べる時です。

SSHD刑務所

すでに[sshd]を定義しています jail.localの前半 ファイル。次のコードでもう少しカスタマイズできます。

[sshd]

enabled = true
port = ssh
logpath = %(ssh_log)s

この場合、事前定義された変数 sshを使用しています。 デフォルトのSSHポートであるポート用。別のSSHポートを使用している場合は、それを変更する必要があります。 logpath 監視するログファイルの場所を指します。 %(ssh_log)s Fail2banの標準構成ファイル( /etc/fail2ban/paths-common.conf )で定義された値を使用します 。

Nginx刑務所

Nginxには、Fail2Banで使用できるいくつかのJailがあります。たとえば、サイトのパスワードで保護された部分が繰り返し攻撃される場合は、セクション [nginx-http-auth]を使用できます。 jail.localで そのためのファイル。

[nginx-http-auth]
enabled = true

[nginx-botsearch]というセクションを追加することもできます 存在しないフォルダまたは場所へのリクエストを停止します。

[nginx-badbots]
enabled  = true

他にもNginxジェイルがありますが、Fail2Banで事前構成されていません。それらは手動で作成する必要があり、それらのほとんどは、Fail2Banに付属しているApacheのものに基づくことができます。

Fail2BanフィルターとFailregexs

Fail2Ban構成には、フィルターと呼ばれる別の設定があります。フィルタは、ログファイルの行が認証の失敗を示しているかどうかを判断します。

構成ファイルのフィルター値は、 /etc/fail2ban/filter.dにあるファイルへの参照です。 .confのあるディレクトリ 拡張機能が削除されました。

ディレクトリを確認すると、使用可能なフィルターの種類を確認できます。

$ ls /etc/fail2ban/filter.d

Nginxの2つのログファイルが表示されます。 nginx-badbots.conf およびnginx-http-auth.conf

これらの構成ファイルは、正規表現(regex)を使用してログファイルを解析します。これらはFailregexと呼ばれます。独自の正規表現を作成することにより、新しいフィルターをカスタマイズまたは作成できます。これらの正規表現はこのチュートリアルの範囲外であるため、詳細には説明しません。

Fail2Banログとファイアウォールを監視する

systemctl を使用して、Fail2Banのステータスを確認できます。 前に述べたように。

$ sudo systemctl status fail2ban

もう少し詳細を取得するには、 journalctlを使用できます。 コマンド。

$ sudo journalctl -b -u fail2ban

fail2ban-clientを使用することもできます fail2ban-serverのステータスを照会するには または個別の刑務所。

$ sudo fail2ban-client status
$ sudo fail2ban-client status jail_name

Fail2banのログファイルを照会することもできます。

$ sudo tail -F /var/log/fail2ban.log

iptablesに設定されている現在のルールを一覧表示できます。

$ sudo iptables -L

iptablesルールを、それらのルールを有効にするために必要なコマンドを反映した形式で一覧表示することもできます。

$ sudo iptables -S
結論

これで、Fedora33またはCentOS8ベースのサーバーへのFail2Banのインストールと構成に関するチュートリアルは終了です。ご不明な点がございましたら、下のコメント欄に投稿してください。


Cent OS
  1. Fedora34にRedis6をインストールして設定する方法

  2. CentOS 8にFail2banをインストールして設定する方法は?

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

  1. CentOS7にNginxをインストールして構成する方法

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

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

  1. CentOS7にGitLabをインストールして構成する方法

  2. CentOS7にRedmineをインストールして設定する方法

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