分享最新优惠信息
购买主机更加划算

CentOS 8 | RHEL 8系统安装配置Fail2ban过程详解

Fail2ban是一种开源入侵检测和预防工具,可扫描访问日志中显示多次密码登录尝试失败迹象的恶意IP地址,该工具通过更新防火墙规则以拒绝IP地址来禁止IP。

Fail2ban可用于保护Linux系统上的不同服务,包括SSHD、WordPress访问、Postfix 等。在本文中,小编将简单介绍在 CentOS 8 | RHEL 8系统上安装和配置Fail2ban详细过程。

Fail2ban

CentOS 8| RHEL 8安装Fail2ban

首先必须要在CentOS 8/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| RHEL 8系统中配置Fail2ban

安装成功后,下一步就是配置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 地址
  • backend – 用于获取日志文件修改的后端。
  • Banaction_allports – Fail2ban阻止每个端口上的远程IP地址

配置Jails以保护 SSH、Postfix 和Dovecot

接下来,小编将简单介绍如何为SSH、Postfix和dovecot配置 Fail2ban jail。

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

对于SSH:

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

对于Postfix:

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

Dovecot:

[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

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

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

使用Fail2ban客户端

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

一般用法是 fail2ban-client <COMMAND>

以下是 Fail2ban-client 命令列表:

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

例子:

  • Fail2ban-client status
$ sudo fail2ban-client status
Status
|- Number of jail:	6
`- Jail list:	dovecot, postfix, postfix-sasl, proftpd, sshd, webmin-auth
  • 2. Fail2ban-client status 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:	
  • 被禁止的IP地址:

被禁止的IP地址

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

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

例子:

$ sudo fail2ban-client set sshd unbanip 192.168.100.11

在上面的例子中,已经从sshd jail中删除了IP地址192.168.100.11。

结论

Fail2ban该工具对于入侵检测和预防攻击(例如 RHEL/CentOS 8系统上的暴力破解)非常有用,可以有效保护系统的安全。

以上就是在CentOS/RHEL 8系统设置Fail2ban的详细过程,仅供参考。在租用国外服务器的时候,强烈建议大家安装Fail2ban,以保障网站的稳定性和数据安全性。

未经允许不得转载:惠主机 » CentOS 8 | RHEL 8系统安装配置Fail2ban过程详解