ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban

暴露给Internet的任何服务都有遭受恶意软件攻击的风险。 例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户。

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

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

在Ubuntu上安装Fail2ban

Fail2ban软件包包含在默认的Ubuntu 20.04存储库中。 要安装它,请以root用户或具有sudo特权的用户身份输入以下命令: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 2020-08-19 06:16:29 UTC; 27s ago

Docs: man:fail2ban(1)

Main PID: 1251 (f2b/server)

Tasks: 5 (limit: 1079)

Memory: 13.8M

CGroup: /system.slice/fail2ban.service

└─1251 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

此时,您已在Ubuntu服务器上运行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.localignoreip = 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.localbantime = 1d

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

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

/etc/fail2ban/jail.localfindtime = 10m

maxretry是禁止IP之前失败的次数。 默认值设置为5,对于大多数用户来说应该可以。

/etc/fail2ban/jail.localmaxretry = 5

电子邮件通知

Fail2ban可以在IP被禁止时发送电子邮件警报。 要接收电子邮件,您需要在服务器上安装SMTP并更改默认操作,该操作仅将IP禁止为%(action_mw)s,如下所示:

/etc/fail2ban/jail.localaction = %(action_mw)s

%(action_mw)s禁止有问题的IP,并发送包含Whois报告的电子邮件。 如果要在电子邮件中包含相关日志,请将操作设置为%(action_mwl)s。

您还可以调整发送和接收电子邮件地址:

/etc/fail2ban/jail.localdestemail = [email protected]

sender = [email protected]

Fail2ban Jails

Fail2ban使用Jails的概念。 Jails描述了一项服务,其中包括过滤器和操作。 计算与搜索模式匹配的日志条目,并在满足预定条件时执行相应的操作。

Fail2ban附带许多用于不同服务的Jails。 您还可以创建自己的Jails配置。

默认情况下,仅启用ssh Jails。 要启用Jails,您需要在Jails标题后添加enabled = true。 以下示例显示了如何启用proftpd Jails:

/etc/fail2ban/jail.local[proftpd]

port = ftp,ftp-data,ftps,ftps-data

logpath = %(proftpd_log)s

backend = %(proftpd_backend)s

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

/etc/fail2ban/jail.local[sshd]

enabled = true

maxretry = 3

findtime = 1d

bantime = 4w

ignoreip = 127.0.0.1/8 23.34.45.56

筛选器位于/etc/fail2ban/filter.d目录中,存储在与Jails名称相同的文件中。 如果您具有自定义设置并具有使用正则表达式的经验,则可以微调过滤器。

每次编辑配置文件时,都需要重新启动Fail2ban服务才能使更改生效:sudo systemctl restart fail2ban

Fail2ban客户端

Fail2ban附带了一个名为fail2ban-client的命令行工具,可用于与Fail2ban服务进行交互。

要查看所有可用选项,请使用-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

结论

我们向您展示了如何在Ubuntu 20.04上安装和配置Fail2ban。

有关此主题的更多信息,请访问Fail2ban文档。

如果您有任何疑问,请随时在下面发表评论。

你可能感兴趣的:(ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban)