Fail2ban是一种保护Linux机器免受暴力攻击和其他自动攻击的工具。本文介绍了如何在Debian 10上安装和配置Fail2ban。
所有可以从互联网访问的服务器都面临恶意软件攻击的风险。例如,如果您有一个可以从公共网络访问的应用程序,攻击者可以使用暴力破解尝试来获得对该应用程序的访问权。
Fail2ban是一种工具,可以通过监视服务日志中的恶意活动来帮助保护Linux机器免受暴力攻击和其他自动攻击。它使用正则表达式来扫描日志文件。对所有与模式匹配的条目进行计数,并且当它们的数量达到某个预定义的阈值时,Fail2ban会在特定时间段内使用系统防火墙禁止有问题的IP 。禁止期限到期后,将从禁止列表中删除IP地址。
在Debian上安装Fail2ban
Fail2ban软件包包含在默认的Debian 10存储库中。要安装它,请以root或具有sudo特权的用户身份运行以下命令:
sudo apt updatesudo apt install fail2ban
完成后,Fail2ban服务将自动启动。您可以通过检查服务状态来验证它:
udo systemctl status fail2ban
输出将如下所示:
● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-03-10 18:57:32 UTC; 47s ago...
至此,您的Debian服务器上正在运行Fail2Ban。
Fail2ban配置
默认的Fail2ban安装带有两个配置文件,/etc/fail2ban/jail.conf
和/etc/fail2ban/jail.d/defaults-debian.conf
。您不应该修改这些文件,因为更新软件包时它们可能会被覆盖。
Fail2ban按以下顺序读取配置文件。每个.local
文件都会覆盖文件中的设置.conf
:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
配置Fail2ban的最简单方法是将复制jail.conf
到jail.local
并修改.local
文件。更高级的用户可以.local
从头开始构建配置文件。该.local
文件不必包括相应.conf
文件中的所有设置,而仅包括您要覆盖的设置。
.local
通过复制默认jail.conf
文件来创建配置文件:
sudo cp /etc/fail2ban/jail.{conf,local}
要开始将Fail2ban服务器配置为打开,jail.local
请使用文本编辑器打开该文件:
要开始将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
持续时间内发生。
findtime = 10m
maxretry
是禁止IP之前的失败次数。默认值设置为5,这对于大多数用户来说应该没问题。
maxretry = 5
电子邮件通知
当IP被禁止时,Fail2ban可以发送电子邮件警报。要接收电子邮件,您需要在服务器上安装SMTP并更改默认操作,该操作仅将IP禁止为%(action_mw)s
,如下所示:
action = %(action_mw)s
%(action_mw)s
禁止违规的IP,并发送包含Whois报告的电子邮件。如果要在电子邮件中包括相关日志,请将操作设置为%(action_mwl)s
。
您还可以更改发送和接收电子邮件地址:
/etc/fail2ban/jail.local
destemail = [email protected] = [email protected]
Fail2ban监狱
Fail2ban使用监狱的概念。监狱描述了一项服务,其中包括过滤器和操作。对符合搜索模式的日志条目进行计数,并在满足预定义条件时执行相应的操作。
Fail2ban附带有许多用于不同服务的监狱。您还可以创建自己的监狱配置。默认情况下,仅启用ssh监狱。
要启用监狱,您需要enabled = true
在监狱标题后添加。以下示例显示了如何启用后缀监狱:
[postfix]enabled = trueport = smtp,ssmtpfilter = postfixlogpath = /var/log/mail.log
我们在上一节中讨论的设置可以针对每个监狱进行设置。这是一个例子:
[sshd]enabled = truemaxretry = 3findtime = 1dbantime = 4wignoreip = 127.0.0.1/8 11.22.33.44
筛选器位于/etc/fail2ban/filter.d
目录中,并存储在与监狱名称相同的文件中。如果您具有自定义设置并且对正则表达式有经验,则可以对过滤器进行微调。
每次修改配置文件时,都必须重新启动Fail2ban服务,以使更改生效:
sudo systemctl restart fail2ban
Fail2ban客户端
Fail2ban附带了一个名为的命令行工具fail2ban-client
,可用于与Fail2ban服务进行交互。
要查看所有可用选项,请使用以下选项调用命令-h
:
fail2ban-client -h
此工具可用于禁止/取消禁止IP地址,更改设置,重新启动服务等等。这里有一些例子:
-
获取服务器的当前状态:
sudo fail2ban-client status
检查监狱状态:
sudo fail2ban-client status sshd
取消IP:
sudo fail2ban-client set sshd unbanip 11.22.33.44
禁止IP:
sudo fail2ban-client set sshd banip 11.22.33.44
结论
我们已经向您展示了如何在Debian 10上安装和配置Fail2ban。
有关此主题的更多信息,请访问Fail2ban文档。
评论前必须登录!
注册