前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用 Fail2Ban 配置保护您的 Linux 服务器?

如何使用 Fail2Ban 配置保护您的 Linux 服务器?

原创
作者头像
网络技术联盟站
发布2022-06-02 18:07:28
2.7K0
发布2022-06-02 18:07:28
举报
文章被收录于专栏:网络技术联盟站

Fail2Ban 可以说是保护 Linux 服务器并保护其免受自动攻击的最佳软件,启用后,它会提供许多可自定义的规则来禁止可能试图访问您的计算机的源地址。Fail2Ban 与防火墙协同工作,因此我们建议您将它们作为单独的安全层进行安装和启用。

在本文中,我们将解释什么是 Fail2Ban 及其用例,我们还将向您展示如何安装和设置 Fail2Ban。

什么是 Fail2Ban 及其用途?

Fail2Ban 是一个日志解析应用程序,可保护基于 Linux 的 Web 服务器免受许多安全威胁,例如字典、DoS、DDoS 和暴力攻击,它通过监视系统日志中的任何恶意活动并扫描文件以查找与已识别模式匹配的任何条目来工作。

如果 Fail2Ban 检测到登录尝试失败的高峰,它会自动将新的防火墙规则添加到您的 iptables 并在指定时间或无限期阻止源地址。

安装 Fail2Ban 可帮助服务器所有者自动减少任何非法活动。每当发生攻击时,它还会通过电子邮件向他们发出警报。

如何安装 Fail2Ban

要安装 Fail2Ban 服务,请使用终端(macOS 和 Linux)或 PuTTY(Windows)等 SSH 客户端以 root 访问权限连接到您的服务器。

Ubuntu:

以下是在Ubuntu上安装 Fail2Ban 的方法:

在安装新软件包之前,我们建议更新系统存储库和软件。运行以下命令:

代码语言:txt
复制
apt-get update && apt-get upgrade

通过运行以下命令安装 Fail2Ban 包:

代码语言:txt
复制
apt-get install fail2ban

如果要为 Fail2Ban 服务添加电子邮件支持,请插入以下命令并按Enter:

代码语言:txt
复制
apt-get install sendmail

使用以下命令验证 Fail2Ban 状态:

代码语言:txt
复制
sudo systemctl status fail2ban

CentOS:

按照以下步骤在CentOS上安装 Fail2Ban :

  1. CentOS7 的 Fail2Ban 包含在 Extra Packages for Enterprise Linux (EPEL) 存储库中。通过运行以下命令下载它:
代码语言:txt
复制
sudo yum install epel-release
  1. 完成后,通过输入以下命令并按Enter安装 Fail2Ban :
代码语言:txt
复制
sudo yum install fail2ban
  1. 通过运行以下命令启用和启动服务:
代码语言:txt
复制
sudo systemctl enable fail2ban
代码语言:txt
复制
sudo systemctl start fail2ban

Debian:

以下是在 Debian 上安装 Fail2Ban 的方法:

  1. 通过键入以下命令并按Enter来更新和升级您的系统存储库:
代码语言:txt
复制
apt-get update && apt-get upgrade -y
  1. 使用以下命令继续 Fail2Ban 安装:
代码语言:txt
复制
apt-get install fail2ban
  1. 如果要添加电子邮件支持,请运行以下命令安装 Sendmail:
代码语言:txt
复制
apt-get install sendmail-bin sendmail
  1. 以下是检查 Fail2Ban 状态的方法:
代码语言:txt
复制
systemctl status fail2ban

Fedora:

按照以下说明在 Fedora 上安装 Fail2Ban:

  1. 通过插入下面的命令并按Enter来更新您的系统存储库:
代码语言:txt
复制
dnf update
  1. 使用以下命令安装 Fail2Ban:
代码语言:txt
复制
dnf install fail2ban
  1. 如果要安装 Sendmail,请输入以下命令并按Enter:
代码语言:txt
复制
dnf install sendmail
  1. 通过运行以下命令启动并启用 Fail2Ban 服务:
代码语言:txt
复制
systemctl start fail2ban
代码语言:txt
复制
systemctl enable fail2ban
  1. 如果您添加了 Sendmail,请运行以下命令来启动并启用它:
代码语言:txt
复制
systemctl start sendmail
代码语言:txt
复制
systemctl enable sendmail

如何设置 Fail2Ban

安装 Fail2Ban 后,考虑配置它。在本节中,我们将探讨如何使用fail2ban.local和jail.local文件来实现。

使用 fail2ban.local 编辑默认设置(可选)

fail2ban.conf文件包含 Fail2Ban 的基本配置。它包含不应修改的全局设置。

如果您想进行任何更改,我们建议您创建一个本地文件。复制fail2ban.conf并将其重命名为fail2ban.local以覆盖默认配置文件。

以下是如何更改副本的名称并在 fail2ban.local 文件上设置设置:

  1. 通过运行以下命令将文件重命名为fail2ban.local 。请记住,它不会产生任何输出:
代码语言:txt
复制
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
  1. 键入以下命令并按Enter 键打开文件:
代码语言:txt
复制
sudo nano /etc/fail2ban/fail2ban.local
  1. 现在您可以编辑文件中的定义。

让我们回顾一下选项和它们可以采用的值。

代码语言:txt
复制
loglevel = INFO

将日志输出级别定义为:

  • CRITICAL - 应立即调查的紧急情况。
  • ERROR ——出现问题但并不严重。
  • WARNING——一种潜在的有害状况。
  • NOTICE– 正常但重要的情况。
  • INFO – 可以忽略的信息性消息。
  • DEBUG——调试级消息。
代码语言:txt
复制
logtarget = STDERR

在特定目标套接字中记录操作,可以是:

  • FILE – 输出到文件套接字。
  • SYSLOG – 输出到基于消息的日志文件。
  • STDERR——作为标准错误输出。
  • STDOUT——标准输出。
代码语言:txt
复制
syslogsocket = auto

将 syslog 套接字文件设置为auto或file(如果您已将logtarget设置为SYSLOG)。

代码语言:txt
复制
socket = /var/run/fail2ban/fail2ban.sock

设置套接字文件以与守护程序通信。默认位置是/var/run/fail2ban/fail2ban.sock。

代码语言:txt
复制
pidfile = /var/run/fail2ban/fail2ban.pid

设置 PID 文件来存储 Fail2Ban 服务器的进程 ID。默认位置是/var/run/fail2ban/fail2ban.pid。

设置 jail.local 配置文件

Fail2Ban 有另一个名为jail.conf的配置文件,其中包括监狱——带有动作的过滤器。但是,用户不应直接修改此文件,因为它包含软件的基本规则集。

相反,制作原始文件的副本并将其命名为jail.local。使用它,您将能够自定义和设置过滤器和操作,例如ignoreip、bantime、findtime、maxretry和backend。

ignoreip

此功能要求您指定 Fail2Ban 应忽略的可信 IP 地址、DNS 主机或 CIDR 掩码。此参数允许来自指定来源的所有流量。您可以添加多个地址并用空格分隔它们。

bantime

此参数设置客户端在身份验证失败后将被禁止的时间长度。禁止期限以秒为单位,默认数字为 600 或 10 分钟。

findtime

此设置确定登录尝试失败的时间段。如果一个主机在设定的时间段内认证失败一定次数(基于maxretry设置),它的 IP 地址将被禁止。

maxretry

maxretry与findtime一起工作——它设置在定义的时间窗口内不成功的登录尝试的最大次数。默认值为 5。

backend

此功能允许您指定文件修改的后端配置。默认值为auto,但如果你使用 CentOS 或 Fedora,则需要systemd。

以下是您可以选择的可用值:

  • pynotify – 实时监控文件系统的变化,需要安装一个文件修改监控器。
  • gamin – 与pynotify相同,但需要一个 Gamin 工具。
  • polling – 使用不需要外部库的轮询算法。
  • systemd – 使用systemd python 库来访问systemd日志。
  • auto - 将按此顺序使用先前的值 - pyinotify、gamin和polling。

您还可以在jail.local文件中设置其他配置,包括SSH和iptables设置。可用选项包括:

  • banaction – 定义达到maxretry阈值时要使用的默认操作。如果您使用firewalld,请将值设置为firewallcmd-ipset。但是,如果您已将 UFW 设置为防火墙,请将其更改为ufw。
  • banaction_allports – 允许您标记和阻止每个端口上的 IP 地址。如果您使用firewalld,请将值设置为firewallcmd-ipset。
  • port – 该值应与设置的服务相对应。如果您使用默认端口,请将值更改为服务名称。如果您使用非传统端口,请在此处输入其编号。
  • filter – 位于/etc/fail2ban/filter.d的文件名包含用于解析日志文件的failregex信息。

结论

Fail2Ban 是日志解析软件,有助于保护基于 Linux 的 Web 服务器免受网络攻击。

本文演示了如何在流行的操作系统上安装 Fail2Ban,例如 Ubuntu、CentOS、Debian 和 Fedora,我们还解释了如何编辑软件的配置文件fail2ban.local和jail.local 。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 Fail2Ban 及其用途?
  • 如何安装 Fail2Ban
    • Ubuntu:
      • CentOS:
        • Debian:
          • Fedora:
          • 如何设置 Fail2Ban
            • 使用 fail2ban.local 编辑默认设置(可选)
            • 设置 jail.local 配置文件
              • ignoreip
                • bantime
                  • findtime
                    • maxretry
                      • backend
                      • 结论
                      相关产品与服务
                      云服务器
                      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档