在Debian 10上安装和配置Fail2ban

可从Internet访问的所有服务器都受到恶意软件攻击的风险。 例如,如果您有一个可以从公共网络访问的应用程序,则攻击者可以使用蛮力尝试来获取对该应用程序的访问权限。

Fail2ban是一种工具,可以通过监视服务日志中的恶意活动来帮助保护Linux机器免受暴力攻击和其他自动攻击。 它使用正则表达式来扫描日志文件。 将对所有与模式匹配的条目进行计数,并且当它们的数量达到某个预定义的阈值时,Fail2ban会在特定时间段内使用系统防火墙禁止有问题的IP。 禁止期限到期后,将从禁止列表中删除IP地址。

本文介绍了如何在Debian 10上安装和配置Fail2ban。

在Debian上安装Fail2ban#

Fail2ban软件包包含在默认的Debian 10存储库中。 要安装它,请以root或具有sudo特权的用户身份运行以下命令:

sudo apt updatesudo apt install fail2ban

完成后,Fail2ban服务将自动启动。 您可以通过检查服务状态来验证它:

sudo 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.confjail.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

禁止设置#

bantimefindtime, 和 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附带有许多用于不同服务的监狱。 您还可以创建自己的监狱配置。 默认情况下,仅启用ssh监狱。

要启用监狱,您需要添加 enabled = true 监狱称号之后。 以下示例显示了如何启用后缀监狱:

/etc/fail2ban/jail.local

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log

我们在上一节中讨论的设置可以针对每个监狱进行设置。 这是一个例子:

/etc/fail2ban/jail.local

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 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文档。

如有疑问,请在下面发表评论。

fail2ban debian安全性

Sidebar