网站搜索

在 CentOS 8 上安装和配置 Fail2ban | RHEL 8 |


在本指南中,我们将讨论如何在 Centos 8 上安装和配置 Fail2ban | RHEL 8. Fail2ban 是一款开源入侵检测和预防工具,可扫描访问日志中的恶意 IP 地址,这些日志显示多次密码登录尝试失败的迹象。然后,该工具通过更新防火墙规则来拒绝 IP 地址,从而禁止这些 IP。

Fail2ban 可用于保护 Linux 系统上的不同服务,包括 sshd、wordpress 访问、postfix 等。

在 CentOS 8 上安装 Fail2ban | RHEL 8

您必须在 CentOS/RHEL 8 系统上安装 EPEL 存储库才能获取 Fail2ban 软件包。

sudo dnf -y install epel-release

安装 Fail2ban 包:

sudo dnf -y install fail2ban

启动并启用 Fail2ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

在 CentOS 8 上配置 Fail2ban | RHEL 8

安装成功后,下一步是配置fail2ban。

Fail2ban 配置文件位于 /etc/fail2ban/ 目录中。

主要配置文件是/etc/fail2ban/jail.conf。过滤器存储在 /etc/fail2ban/filter.d/ 目录中。

不建议对 jail.conf 文件进行任何更改,因为配置将被 *.local 文件中的配置覆盖。

因此,最佳实践是创建一个单独的文件,jail.local,其中将包含我们的配置。

让我们在 /etc/fail2ban/jail.local 中配置一些默认值

sudo vi /etc/fail2ban/jail.local

添加以下参数:

[DEFAULT]
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
banaction_allports = iptables-allports

对以上参数的简单说明:

  • Bantime – IP 被禁止的时间(以秒为单位)
  • maxretry – 主机被禁止之前的重试次数
  • Findtime – 如果主机在最后“findtime”秒内生成了“maxretry”,fail2ban 将禁止该主机。
  • banaction – 要实施的禁令操作类型
  • ignoreip – 您可以指定fail2ban将忽略的IP地址
  • 后端 – 用于获取日志文件修改的后端。
  • Banaction_allports – Fail2ban 阻止每个端口上的远程 IP

配置 Jails 以保护 SSH、Postfix 和 Dovecot

在本节中,我们将了解如何为 SSH、Postfix 和 dovecot 配置 Fail2ban 监狱。

在 /etc/fail2ban/jail.local 文件中,添加您要启用的服务的参数。

对于 SSH:

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

对于后缀:

[postfix]
enabled  = true
port     = smtp,465,submission

鸽舍:

[dovecot]
enabled = true
port    = pop3,pop3s,imap,imaps,submission,465,sieve

Postfix-SASL

[postfix-sasl]
enabled  = true
port     = smtp,465,submission,imap,imaps,pop3,pop3s

在上面的配置中,使用了以下属性:

  • 启用 – 可以设置为true或false来启用/禁用过滤器。
  • 端口 – 运行服务的端口。如果使用的端口是默认端口,则可以使用服务名称,否则需要显式指定端口号
  • Filter – 位于 /etc/fail2ban/filter.d/ 目录中的过滤器文件的名称,其中包含用于解析日志的 fileregex 信息。
  • Logpath – 服务日志的路径

使用 Fail2ban 客户端

Fail2ban-client 是用于从 shell 运行 Fail2ban 的命令行工具。

一般用法是fail2ban-client

以下是 Fail2ban-client 命令列表:

  • start:用于启动fail2ban服务器和jails
  • reload:用于重新加载Fail2ban配置
  • stop:停止服务器
  • status:用于检查服务器状态并启用jails
  • status JAIL :显示监狱的状态和当前禁止的IP

例子:

  1. Fail2ban-客户端状态
$ sudo fail2ban-client status
Status
|- Number of jail:	6
`- Jail list:	dovecot, postfix, postfix-sasl, proftpd, sshd, webmin-auth

2. Fail2ban-客户端状态sshd

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

3. 禁止IP:

要从监狱中删除 IP,您可以通过以下命令执行此操作:

$ sudo fail2ban-client set <jailname> unbanip <IP>

例子 :

$ sudo fail2ban-client set sshd unbanip 192.168.100.12

在上面的示例中,我们已从 sshd Jail 中删除了 IP 192.168.100.12。

结论

我们已经完成了有关如何在 CentOS/RHEL 8 上设置 Fail2ban 的指南。该工具对于入侵检测和预防攻击(例如 RHEL/CentOS 8 系统上的暴力破解)很有用。

查看我们网站上的其他相关文章;

  • 使用 Infection Monkey 自动执行渗透测试操作
  • Faraday – 渗透测试 IDE 和漏洞管理平台

相关文章: