Fail2banは、Pythonで記述された無料のオープンソースの侵入防止システムです。これは、ブルートフォース攻撃からシステムを保護するために使用されます。 SSH(およびその他の)ログファイルの認証試行を継続的に監視し、指定された回数の誤ったパスワード試行の後、クライアントのIPアドレスはFail2Banによって禁止されます。 SSH、vsftpd、Apache、Webminなどのいくつかのサービスを保護するために使用できます。
このチュートリアルでは、AlmaLinux8にFail2Banファイアウォールをインストールする方法を紹介します。
- AlmaLinux8を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
デフォルトでは、FirewalldパッケージはAlma Linux 8にプリインストールされています。最初に、それが実行されているかどうかを確認する必要があります。次のコマンドで確認できます:
systemctl status firewalld
Firewalldが実行されていない場合は、次の出力が表示されます。
? firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)>
次に、次のコマンドでfirewalldサービスを開始します。
systemctl start firewalld
次のコマンドを使用して、firewalldのステータスを確認できます。
systemctl status firewalld
次の出力が表示されます。
? firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-19 08:57:14 UTC; 40s ago Docs: man:firewalld(1) Main PID: 7214 (firewalld) Tasks: 2 (limit: 23696) Memory: 27.9M CGroup: /system.slice/firewalld.service ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid Feb 19 08:57:14 linux systemd[1]: Starting firewalld - dynamic firewall daemon... Feb 19 08:57:14 linux systemd[1]: Started firewalld - dynamic firewall daemon.
次に、次のコマンドを使用して、firewalldによって構成されたすべてのサービスを一覧表示します。
firewall-cmd --list-all
次の出力が表示されます。
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
デフォルトでは、Fail2BanパッケージはAlmaLinuxのデフォルトリポジトリでは利用できません。したがって、EPELリポジトリからインストールする必要があります。次のコマンドを使用して、EPELリポジトリをインストールできます。
dnf install epel-release -y
EPELリポジトリをインストールしたら、次のコマンドを使用してFail2Banファイアウォールをインストールできます。
dnf install fail2ban fail2ban-firewalld -y
インストールが完了したら、次のコマンドを使用してFail2Banサービスを開始して有効にします。
systemctl start fail2ban
systemctl enable 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 Sat 2022-02-19 08:58:34 UTC; 6s ago Docs: man:fail2ban(1) Process: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS) Main PID: 7840 (fail2ban-server) Tasks: 3 (limit: 23696) Memory: 10.8M CGroup: /system.slice/fail2ban.service ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start Feb 19 08:58:34 linux systemd[1]: Starting Fail2Ban Service... Feb 19 08:58:34 linux systemd[1]: Started Fail2Ban Service. Feb 19 08:58:35 linux fail2ban-server[7840]: Server ready
Fail2Banのメイン構成ファイルは/etc/fail2ban/jail.confにあります。 。メイン構成ファイルのコピーを作成することをお勧めします。次のコマンドで作成できます:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
デフォルトでは、Fail2BanはIptablesファイアウォールを使用します。 Firewalldのサポートを有効にするには、次のコマンドを実行します。
mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local
次に、Fail2Banサービスを再起動して、変更を適用します。
systemctl restart fail2ban
デフォルトでは、Fail2BanはリモートIPをブロックするように構成されていません。保護するサービスごとにFail2Banjail構成ファイルを構成する必要があります。
SSHサービスを保護するには、次のコマンドを使用してSSHのjail構成ファイルを作成します。
nano /etc/fail2ban/jail.d/sshd.local
次の行を追加します:
# This configuration will block the remote host for 2 hours after 3 failed SSH login attempts. [sshd] enabled = true bantime = 2h maxretry = 3
終了したらファイルを保存して閉じ、SSHサービスを再起動して変更を適用します。
systemctl restart fail2ban
これで、次のコマンドを使用してjail構成を確認できます。
fail2ban-client status
構成されたjailは、次の出力で取得されます。
Status |- Number of jail: 1 `- Jail list: sshd
SSHジェイルで禁止されているIPを確認するには、次のコマンドを実行します。
fail2ban-client status sshd
次の出力で、すべての禁止IPリストが表示されます。
Status for the jail: sshd |- Filter | |- Currently failed: 6 | |- Total failed: 15 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 2 |- Total banned: 2 `- Banned IP list: 96.9.67.48 43.154.142.8
IPアドレスの禁止を手動で解除する場合は、次のコマンドを実行します。
fail2ban-client unban remote-ip-address
上記のガイドでは、Alma Linux 8にFail2Banをインストールする方法について説明しました。また、Fail2Banを使用してSSHサービスを保護する方法についても説明しました。これで、本番環境にFail2Banを実装して、ブルートフォース攻撃からシステムを保護できます。