本文介绍在Ubuntu 20.04操作系统上Fail2ban的安装和配置方法,包括介绍Fail2ban Jail和Fail2ban客户端的基本操作。
前言 暴露给Internet的任何服务都可能遭受恶意软件攻击,例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户。 Fail2ban是一种工具,可通过监视服务日志中的恶意活动来帮助保护Linux机器免受暴力攻击和其他自动攻击,它使用正则表达式来扫描日志文件,对所有与模式匹配的条目进行计数,并且当它们的数量达到某个预定义的阈值时,Fail2ban会在特定时间段内使用系统防火墙禁止有问题的IP,禁止期限到期后,将从禁止列表中删除IP地址。
在Ubuntu 20.04上安装Fail2ban Fail2ban软件包包含在默认的Ubuntu 20.04存储库中,要安装它,请以root或具有sudo特权的用户身份输入以下命令: sudo apt update sudo apt install fail2ban 安装完成后,Fail2ban服务将自动启动,您可以通过检查服务状态来验证它: sudo systemctl status fail2ban 输出将如下所示:
此时,您已在Ubuntu 20.04上运行了Fail2Ban。 参考:在服务器Ubuntu Server 18.04版本下安装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 cp /etc/fail2ban/jail.local 该文件包含描述每个配置选项功能的注释,在此示例中,我们将更改基本设置。 1、将IP地址列入白名单 您可以将要排除的IP地址、IP范围或主机添加到ignoreip伪指令中,在这里,您应该添加您的本地PC IP地址以及您要列入白名单的所有其他计算机。 在/etc/fail2ban/jail.local文件中取消注释以ignoreip开头的行,并添加您的IP地址,用空格分隔: ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24 2、禁止设置 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 注:以上操作都是在/etc/fail2ban/jail.local文件中进行。 3、邮件通知 当IP被禁止时,Fail2ban可以发送电子邮件警报,要接收电子邮件,您需要在服务器上安装SMTP并更改默认操作,该操作仅将IP禁止为%(action_mw)s,如下所示: action = %(action_mw)s %(action_mw)s将禁止有问题的IP,并发送包含Whois报告的电子邮件,如果要在电子邮件中包括相关日志,请将操作设置为%(action_mwl)s。 您还可以调整发送和接收电子邮件地址: destemail = 249562751@qq.com sender = 371716194@qq.com 注:以上操作都是在/etc/fail2ban/jail.local文件中进行。
Fail2ban Jail Fail2ban使用Jail的概念,Jail描述了一项服务,其中包括过滤器和操作,对符合搜索模式的日志条目进行计数,并在满足预定义条件时执行相应的操作。 Fail2ban附带有许多用于不同服务的Jail,您还可以创建自己的Jail配置。 默认情况下,仅启用ssh jail,要启用Jail,您需要在Jail标题后添加enabled = true,以下示例显示了如何启用proftpd jail,在/etc/fail2ban/jail.local文件中: [proftpd] port = ftp,ftp-data,ftps,ftps-data logpath = %(proftpd_log)s backend = %(proftpd_backend)s 我们在上一节中讨论的设置可以按Jail设置,这是一个例子,在/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目录中,并存储在与jail同名的文件中,如果您具有自定义设置并且对正则表达式有经验,则可以对过滤器进行微调。 每次编辑配置文件时,都需要重新启动Fail2ban服务以使更改生效: sudo systemctl restart fail2ban
Fail2ban客户端 Fail2ban附带了一个名为fail2ban-client的命令行工具,可用于与Fail2ban服务进行交互。 要查看所有可用选项,请使用-h选项调用命令: fail2ban-client -h 此工具可用于禁止/取消禁止IP地址,更改设置,重新启动服务等等,以下是一些示例: 1、检查jail状况: sudo fail2ban-client status sshd 2、取消IP: sudo fail2ban-client set sshd unbanip 23.34.45.56 3、禁止IP: sudo fail2ban-client set sshd banip 23.34.45.56
相关主题 |