如何在 Alma Linux 8 上安装和配置 Fail2ban如何在 Alma Linux 8 上安装和配置 Fail2ban如何在 Alma Linux 8 上安装和配置 Fail2ban如何在 Alma Linux 8 上安装和配置 Fail2ban
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Alma Linux 8 上安装和配置 Fail2ban

在此页

  1. 先决条件
  2. 验证防火墙安装
  3. 安装 Fail2Ban
  4. 配置 Fail2Ban
  5. 使用 Fail2Ban 保护 SSH
  6. 结论

Fail2ban 是一个用 Python 编写的免费开源入侵防御系统。它用于保护您的系统免受暴力攻击。它持续监控 SSH(和其他)日志文件以进行身份验证尝试,在指定次数的错误密码尝试后,客户端 IP 地址将被 Fail2Ban 禁止。它可用于保护多种服务,包括 SSH、vsftpd、Apache 和 Webmin。

在本教程中,我将向您展示如何在 Alma Linux 8 上安装 Fail2Ban 防火墙。

先决条件

  • 一台运行 Alma Linux 8 的服务器。
  • 在服务器上配置了根密码。

验证 Firewalld 安装

默认情况下,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

默认情况下,Alma Linux 默认存储库中不提供 Fail2Ban 包。所以你需要从 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

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 保护 SSH

默认情况下,Fail2Ban 未配置为阻止远程 IP。您需要为每个要保护的服务配置 Fail2Ban 监狱配置文件。

为了保护 SSH 服务,使用以下命令为 SSH 创建一个监狱配置文件:

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

您现在可以使用以下命令验证监狱配置:

fail2ban-client status

您将在以下输出中获得配置的监狱:

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

要检查任何被禁止的 IP 的 SSH 监狱,请运行以下命令:

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 以保护您的系统免受暴力攻击。

©2015-2025 艾丽卡 support@alaica.com