GNU/Linux >> Linux の 問題 >  >> Linux

RockyLinux8にFirewalldを使用してFail2banをインストールする方法

Fail2banは、ブルートフォースログイン攻撃からサーバーを保護する無料のオープンソース侵入防止ソフトウェアソリューションです。 SSHやその他のWebアプリケーションのさまざまなログファイルを監視し、認証の失敗が検出されて最大数に達すると、Fail2BanはFirewalldのiptablesを使用してIPアドレスを自動的にブロックします。 Fail2Banはシンプルで、便利で、設定が簡単で、柔軟性があります。

このガイドでは、RockyLinux8にfirewalldを使用してFail2Banをインストールする方法を説明します。

前提条件

  • Atlantic.NetクラウドプラットフォームでRockyLinux8を実行しているサーバー
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてRockyLinux8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2–Firewalldを設定する

dnf info firewalld

がインストールされている場合、次の出力が得られます。

Last metadata expiration check: 0:34:46 ago on Wednesday 17 November 2021 09:52:51 AM UTC.
Installed Packages
Name         : firewalld
Version      : 0.8.2
Release      : 7.el8_4
Architecture : noarch
Size         : 1.9 M
Source       : firewalld-0.8.2-7.el8_4.src.rpm
Repository   : @System
From repo    : baseos
Summary      : A firewall daemon with D-Bus interface providing a dynamic firewall
URL          : http://www.firewalld.org
License      : GPLv2+
Description  : firewalld is a firewall service daemon that provides a dynamic customizable
             : firewall with a D-Bus interface.

Available Packages
Name         : firewalld
Version      : 0.9.3
Release      : 7.el8
Architecture : noarch
Size         : 501 k
Source       : firewalld-0.9.3-7.el8.src.rpm
Repository   : baseos
Summary      : A firewall daemon with D-Bus interface providing a dynamic firewall
URL          : http://www.firewalld.org
License      : GPLv2+
Description  : firewalld is a firewall service daemon that provides a dynamic customizable
             : firewall with a D-Bus interface.

次に、Firewalldが実行されているかどうかを確認します。

systemctl status firewalld

Firewalldサービスがマスクされていることを確認する必要があります:

● firewalld.service
   Loaded: masked (Reason: Unit firewalld.service is masked.)
   Active: inactive (dead)

そのため、Firewalldサービスのマスクを解除する必要があります。次のコマンドを使用してマスクを解除できます:

systemctl unmask firewalld

次に、Firewalldサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start firewalld
systemctl enable firewalld

この時点で、Firewalldがシステムにインストールされ、実行されています。これで、次のステップに進むことができます。

ステップ3–Fail2Banをインストールする

dnf install epel-release -y

次に、次のコマンドを使用してFail2Banパッケージをインストールします。

dnf install fail2ban fail2ban-firewalld -y

Fail2Banをインストールしたら、次のコマンドを使用して、Fail2Banサービスを開始して有効にします。

systemctl start fail2ban
systemctl enable fail2ban

次のコマンドを使用して、Fail2Banのバージョンを確認できます。

fail2ban-client --version

サンプル出力:

Fail2Ban v0.11.2

ステップ4–Fail2Banを構成する

まず、次のコマンドを使用して、Fail2BanのFirewalld構成ファイルの名前を変更します。

mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

次に、Fail2Banのデフォルト構成ファイルをコピーします。

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

次に、jail.localファイルを編集します:

nano /etc/fail2ban/jail.local

次の行を見つけます:

banaction = iptables-multiport
banaction_allports = iptables-allports

そして、それらを次の行に置き換えます。

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

ファイルを保存して閉じ、Fail2Banを再起動して変更を適用します。

systemctl restart fail2ban

この時点で、Fail2BanはFirewalldで動作するように構成されています。

ステップ5–Fail2Banを使用したSSHサービスの保護

SSHDサービスを保護するには、jail.localファイルを編集します。

nano /etc/fail2ban/jail.local

[sshd]セクションを見つけて、次の行を追加して有効にします。

[sshd]

enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
bantime = 10m
findtime = 10m
maxretry = 5

ファイルを保存して閉じ、Fail2Banを再起動して変更を適用します。

systemctl restart fail2ban

次のコマンドを使用して、Fail2Banのステータスを確認できるようになりました。

systemctl status fail2ban

次の出力が得られます:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 10:34:49 UTC; 2s ago
     Docs: man:fail2ban(1)
  Process: 21154 ExecStop=/usr/bin/fail2ban-client stop (code=exited, status=0/SUCCESS)
  Process: 21185 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 21186 (fail2ban-server)
    Tasks: 5 (limit: 11411)
   Memory: 14.6M
   CGroup: /system.slice/fail2ban.service
           └─21186 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start

Nov 17 10:34:49 rockylinux systemd[1]: Starting Fail2Ban Service...
Nov 17 10:34:49 rockylinux systemd[1]: Started Fail2Ban Service.
Nov 17 10:34:49 rockylinux fail2ban-server[21186]: Server ready

ステップ6–Fail2Banファイアウォールを確認する

この時点で、Fail2BanはSSHサービスを保護するように構成されています。次に、Fail2Banが機能しているかどうかを確認します。

まず、次のコマンドを使用してjailの構成を確認します。

fail2ban-client status

次の出力が表示されます。

Status
|- Number of jail:	1
`- Jail list:	sshd

次に、リモートマシンに移動し、間違ったパスワードでSSHサーバーに接続してみます。最大再試行回数(5回)に達すると、IPアドレスはFail2Banによってブロックされます。

次に、次のコマンドを使用して、Fail2BanによってブロックされたIPアドレスを確認します。

fail2ban-client status sshd

次の出力が得られるはずです:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	1
|  |- Total failed:	6
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	1
   |- Total banned:	1
   `- Banned IP list:	27.61.171.115

次のコマンドを使用して、Firewalldによって追加されたルールを確認できます。

firewall-cmd --list-rich-rules

次の出力が得られます:

rule family="ipv4" source address="27.61.171.115" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

詳細については、Fail2Banログを確認することもできます:

tail -f /var/log/fail2ban.log

サンプル出力:

2021-11-17 10:37:21,837 fail2ban.filter         [21186]: INFO    [sshd] Found 27.61.171.115 - 2021-11-17 10:37:21
2021-11-17 10:37:21,859 fail2ban.actions        [21186]: NOTICE  [sshd] Ban 27.61.171.115
2021-11-17 10:37:27,220 fail2ban.filter         [21186]: INFO    [sshd] Found 27.61.171.115 - 2021-11-17 10:37:27

結論

おめでとう!これで、Fail2BanとFirewalldが正常にインストールされました。サーバーにFail2Banを実装して、ブルートフォースログイン攻撃からサーバーを保護できるようになりました。 Atlantic.NetのVPSホスティングアカウントで試してみてください!


Linux
  1. AlmaLinux8にFail2banをインストールして設定する方法

  2. RockyLinux8にNginxを使用してModSecurityをインストールする方法

  3. RockyLinux8にGulp.jsをインストールする方法

  1. スクリーンショットを使用してMXLinux21をステップバイステップでインストールする方法

  2. RockyLinux8にApacheKafkaをインストールする方法

  3. RockyLinux8にPython3.10をインストールする方法

  1. RockyLinux8.4にFirewalldを使用してFail2banをインストールする方法

  2. RockyLinux8.4のインストール方法

  3. RockyLinux8.4のインストール方法