4

在Debian 10上安装和配置Fail2Ban

 3 years ago
source link: https://www.myfreax.com/install-configure-fail2ban-on-debian-10/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

从互联网访问的所有服务器都存在恶意软件攻击的风险。 例如,如果您有可从公共网络访问的应用程序,则攻击者可以使用Brute-Force尝试访问应用程序。

Fail2Ban是一种工具,它可以通过监控用于恶意活动的服务日志来保护您的Linux机器免受Brute-Force和其他自动攻击。 它使用正则表达式来扫描日志文件。 匹配模式的所有条目都被计算,并且当它们的数字达到某个预定义的阈值时,Fail2Ban使用系统防火墙禁止违规IP进行特定的时间。 禁止期到期时,IP地址将从禁止列表中删除。

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

在debian上安装fail2ban

默认Debian 10存储库中包含Fail2Ban包。 要安装它,请用sudo权限作为root或用户运行以下命令

sudo apt update
sudo 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 Server上运行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文件的所有设置,只有要覆盖的文件。

通过复制默认值jail.conf文件来创建.local配置文件:

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

bantimefindtimemaxretry选项设置禁止时间和禁令条件。

bantime是禁止IP的持续时间。 没有指定后缀时,它默认为秒。 默认情况下,bantime值设置为10分钟。 大多数用户更喜欢设置更长的禁止时间。 将值更改为您的喜好:

/etc/fail2ban/jail.local

bantime  = 1d

要永久禁止IP,请使用负数。

findtime是设置禁止之前的故障次数之间的持续时间。 例如,如果Fail2Ban被设置为在五次故障后禁止IP(maxretry,请参见下文),则必须在findtime持续时间内发生这些故障。

/etc/fail2ban/jail.local

findtime  = 10m

maxretry是禁止IP之前的故障次数。 默认值设置为五个,对于大多数用户来说应该没问题。

/etc/fail2ban/jail.local

maxretry = 5

电子邮件通知

Fail2Ban可以在禁止IP时发送电子邮件警报。 要接收电子邮件,您需要在服务器上安装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

Fail2ban Jails

Fail2Ban使用Jails的概念。 监狱描述了一个服务,包括过滤器和动作。 匹配搜索模式的日志条目被计算,并且当满足预定义条件时,执行相应的操作。

Fail2Ban为不同服务提供了许多监狱。 您还可以创建自己的监控配置。 默认情况下,只有SSH监狱已启用。

要启用监狱,您需要在监狱标题后添加enabled = true。 以下示例显示了如何启用Postfix Jail:

/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文档

如果您有疑问,请随时留下评论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK