本文介绍如何在CentOS 8上安装和配置Fail2ban。
1、首先,我们在CentOS上安装Fail2ban。
Fail2ban软件包包含在默认的CentOS 8存储库中。要安装它,请以root或具有sudo特权的用户身份输入以下命令:
sudo dnf install fail2ban
安装完成后,启用并启动Fail2ban服务:
sudo systemctl enable --now fail2ban
要检查Fail2ban服务器是否正在运行,请输入:
sudo systemctl status fail2ban
至此,您已经在CentOS服务器上运行了Fail2Ban。
2、Fail2ban配置
默认的Fail2ban安装中带有两个配置文件,/etc/fail2ban/jail.conf和/etc/fail2ban/jail.d/00-firewalld.conf。这些文件不应该被修改,因为它们可能会在更新软件包时被覆盖。
Fail2ban会按照以下顺序读取配置文件:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
每个.local文件都会覆盖文件中的设置.conf。
配置Fail2ban最简单的方法是从 jail.conf复制到jail.local,然后修改.local文件。高级用户可以从头开始建立一个.local配置文件。.local文件不必包含相应的.conf文件中的所有设置,只需要覆盖那些您想要覆盖的设置。
从默认的 jail.conf 文件中创建一个 .local 配置文件:
sudo cp /etc/fail2ban/jail.{conf,local}
要开始配置Fail2ban服务器,请用文本编辑器打开 jail.local文件。
sudo nano /etc/fail2ban/jail.local
该文件包含描述每个配置选项功能的注释。在此示例中,我们将更改基本设置。
3、将IP地址列入白名单
可以在ignoreip指令中添加你想从禁止中排除的IP地址、IP范围或主机。在这里,你应该添加你的本地PC的IP地址和所有其他你想加入白名单的机器。
取消以ignoreip开头的一行,然后添加你的IP地址,用空格隔开:
在/etc/fail2ban/jail.local文件中如下设置。
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
4、禁止设置
的值bantime,findtime和maxretry选项定义禁令时间和禁止条件。
bantime禁止IP的持续时间。如果未指定后缀,则默认为秒。默认情况下,该bantime值设置为10分钟。通常,大多数用户会希望设置更长的禁止时间。根据您的喜好修改值:
/etc/fail2ban/jail.local文件中:
bantime = 1d
要永久禁止IP,请使用负数。
findtime是设置禁令前的失败次数之间的持续时间。例如,如果将Fail2ban设置为在5次失败后禁止IP(maxretry请参见下文),则这些失败必须在findtime持续时间内发生。
/etc/fail2ban/jail.local文件中:
findtime = 10m
maxretry是禁止IP之前的失败次数。默认值设置为5,这对于大多数用户来说应该没问题。
/etc/fail2ban/jail.local文件中:
maxretry = 5
邮件通知
当IP被禁止时,Fail2ban可以发送电子邮件警报。要接收电子邮件,您需要在服务器上安装SMTP并更改默认操作,该操作仅将IP禁止为%(action_mw)s,如下所示:
/etc/fail2ban/jail.local文件中:
action = %(action_mw)s
%(action_mw)s将禁止违规的IP,并发送包含Whois报告的电子邮件。如果要在电子邮件中包含相关日志,请将操作设置为%(action_mwl)s。
您还可以调整发送和接收电子邮件地址:
/etc/fail2ban/jail.local文件中:
destemail = admin@linuxize.com
sender = root@linuxize.com
5、Fail2ban Jails
Fail2ban使用Jails的概念。Jails描述了一项服务,其中包括过滤器和操作。对符合搜索模式的日志条目进行计数,并在满足预定义条件时执行相应的操作。
Fail2ban附带有许多用于不同服务的Jails。您还可以创建自己的Jails配置。
认情况下,在CentOS 8上,没有启用Jails。要启用Jails,您需要在Jails标题后添加 enabled = true。下面的例子显示了如何启用sshd jail:
/etc/fail2ban/jail.local文件中:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
我们在上一节中讨论的设置可以按Jails设置。例如:
/etc/fail2ban/jail.local
筛选器位于/etc/fail2ban/filter.d目录中,并存储在与Jails同名的文件中。如果您具有自定义设置并具有使用正则表达式的经验,则可以微调过滤器。
每次修改配置文件时,都必须重新启动Fail2ban服务,以使更改生效:
sudo systemctl restart fail2ban
6、Fail2ban客户端
Fail2ban附带了一个名为的命令行工具fail2ban-client,可用于与Fail2ban服务进行交互。
要查看fail2ban-client命令的所有可用选项,请使用选项调用它-h:
fail2ban-client -h
此工具可用于禁止/取消禁止IP地址,更改设置,重新启动服务等等。这里有一些例子:
检查Jails的状态:
sudo fail2ban-client status sshd
取消IP:
sudo fail2ban-client set sshd unbanip 23.34.45.56
禁止IP:
sudo fail2ban-client set sshd banip 23.34.45.56
至此,我们已经向您展示了如何在CentOS 8上安装和配置Fail2ban。A5互联https://www.a5idc.net/