如何在CentOS 8上安装和配置Fail2ban
暴露给Internet的所有服务器都有遭受恶意软件攻击的风险。 例如,如果您有连接到公用网络的软件,则攻击者可以使用蛮力尝试来访问应用程序。
Fail2ban是一个开源工具,可通过监视服务日志中的恶意活动来帮助保护Linux机器免受暴力攻击和其他自动攻击。 它使用正则表达式来扫描日志文件。 将对所有与模式匹配的条目进行计数,并且当它们的数量达到某个预定义的阈值时,Fail2ban会在特定时间段内禁止有问题的IP。 默认系统防火墙用作禁止操作。 禁止期限到期后,将从禁止列表中删除IP地址。
本文介绍了如何在CentOS 8上安装和配置Fail2ban。
在CentOS上安装Fail2ban#
Fail2ban软件包包含在默认的CentOS 8存储库中。 要安装它,请以root或具有sudo特权的用户身份输入以下命令:
sudo dnf install fail2ban
安装完成后,启用并启动Fail2ban服务:
sudo systemctl enable --now fail2ban
要检查Fail2ban服务器是否正在运行,请键入:
sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-09-10 12:53:45 UTC; 8s ago
...
而已。 至此,您已经在CentOS服务器上运行了Fail2Ban。
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
文件,只有您要覆盖的文件。
创建一个 .local
默认配置文件 jail.conf
文件:
sudo cp /etc/fail2ban/jail.{conf,local}
要开始将Fail2ban服务器配置为打开,请 jail.local
使用文本编辑器保存文件:
sudo nano /etc/fail2ban/jail.local
该文件包含描述每个配置选项功能的注释。 在此示例中,我们将更改基本设置。
将IP地址列入白名单
您可以将要排除在外的IP地址,IP范围或主机添加到 ignoreip
指示。 在这里,您应该添加您的本地PC IP地址和所有其他要列入白名单的计算机。
取消注释以 ignoreip
并添加以空格分隔的IP地址:
/etc/fail2ban/jail.local
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
禁止设置
的值 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 = [email protected]
sender = [email protected]
Fail2ban监狱#
Fail2ban使用监狱的概念。 监狱描述了一项服务,其中包括过滤器和操作。 对符合搜索模式的日志条目进行计数,并在满足预定义条件时执行相应的操作。
Fail2ban附带有许多用于不同服务的监狱。 您还可以创建自己的监狱配置。
默认情况下,在CentOS 8上,不启用任何监狱。 要启用监狱,您需要添加 enabled = true
在监狱称号之后。 以下示例显示了如何启用 sshd
监狱:
/etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
我们在上一节中讨论的设置可以针对每个监狱进行设置。 这是一个例子:
/etc/fail2ban/jail.local
过滤器位于 /etc/fail2ban/filter.d
目录,存储在与监狱同名的文件中。 如果您具有自定义设置并具有使用正则表达式的经验,则可以微调过滤器。
每次修改配置文件时,都必须重新启动Fail2ban服务,以使更改生效:
sudo systemctl restart fail2ban
Fail2ban客户端#
Fail2ban附带一个名为的命令行工具 fail2ban-client
可以用来与Fail2ban服务进行交互。
要查看的所有可用选项 fail2ban-client
命令,使用 -h
选项:
fail2ban-client -h
此工具可用于禁止/取消禁止IP地址,更改设置,重新启动服务等等。 这里有一些例子:
检查监狱的状态:
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。有关配置Fail2ban的更多信息,请访问官方文档。
如有疑问,请在下面发表评论。
fail2ban centos安全