在 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,sievePostfix-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服务器和jailsreload:用于重新加载Fail2ban配置stop:停止服务器status:用于检查服务器状态并启用jailsstatus JAIL:显示监狱的状态和当前禁止的IP
例子:
- 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 和漏洞管理平台

