- 注册
- 10 16, 2023
- 消息
- 1,843
- G
- 10,705 G
- 中国
- 河南
- 洛阳市
- 联通 网友
- 主题 作者
- #1
第 1 部分:安装 Fail2ban
第 1 步:更新Debian
在安装 Fail2Ban 之前,您必须更新Debian操作系统。这可确保所有现有软件包都是最新的,并且您运行的是最新版本的软件。要更新系统,请在终端中运行以下命令:
sudo apt update && sudo apt upgrade
该命令 sudo apt update 从存储库中检索最新的软件包信息,并将sudo apt upgrade已安装的软件包更新到最新版本。
第2步:安装Fail2ban
Fail2Ban 包含在默认的Debian存储库中,这意味着您不需要添加额外的存储库来安装该程序。要安装 Fail2Ban,请在终端中使用以下命令:此命令告诉软件包管理器 (apt) 在您的Debian
sudo apt install fail2ban
系统 上安装 Fail2Ban 软件包。
第3步:确认安装Fail2ban
安装完成后,您需要确认 Fail2Ban 已正确安装。为此,请运行以下命令:
fail2ban --version
此命令将显示已安装的 Fail2Ban 版本,表明安装成功。
步骤4:检查Fail2ban服务
安装后,Fail2Ban 服务应处于活动状态并默认启用。但是,检查服务的状态以确保其按预期工作始终是一个好主意。要检查 Fail2Ban 服务的状态,请使用以下 systemctl 命令:
systemctl status fail2ban
如果您的 Fail2Ban 服务未激活或未运行,您可以使用以下命令启动它:
sudo systemctl start fail2ban
此命令告诉 systemctl 启动 Fail2Ban 服务。如果您还想默认在系统启动时启用 Fail2Ban,请使用以下命令:
sudo systemctl enable fail2ban
在系统启动时启用 Fail2Ban 可确保该服务在您重新启动Debian服务器时自动启动,从而提供持续保护,无需手动干预。
第 2 部分:安装 UFW(可选)
如果您更愿意将简单防火墙 (UFW) 与 Fail2Ban 结合使用而不是 IPTables,请按照以下步骤操作。 UFW 是 IPTables 的友好界面,提供了一种管理服务器防火墙的简单方法。请注意,Debian默认情况下没有 UFW。
第1步:安装UFW
要在Debian系统 上安装 UFW ,请在终端中运行以下命令:此命令使用包管理器 (apt) 从Debian
sudo apt install ufw
存储库 安装 UFW 包。
第 2 步:验证安装
安装UFW后,需要验证安装是否成功。要检查已安装的UFW版本,请运行以下命令:
ufw version
该命令将显示已安装的UFW版本,表明安装成功。
第 3 步:启用 UFW
现在是时候在您的系统上启用 UFW 了。启用 UFW 将启用防火墙并确保它在您启动Debian服务器时自动启动。要启用 UFW,请使用以下命令:
sudo ufw enable
该命令请求启动 UFW 并将其配置为在系统启动时启动。运行此命令后,您应该看到类似于以下内容的输出:
此输出确认 UFW 处于活动状态,并将在您重新引导Debian服务器时自动启动。
第 3 部分:Fail2Ban 备份设置
安装Fail2Ban后,您需要根据您的服务器环境进行安装和配置。 Fail2Ban 附带两个默认配置文件,位于 /etc/fail2ban/jail.conf 和/etc/fail2ban/jail.d/defaults-debian.conf。
重要提示:不要直接修改这些文件。这些是您的原始文件,将在未来的 Fail2Ban 更新期间被替换。
要保存用户设置,请创建扩展名为 .local 的配置文件的副本。 Fail2Ban 将优先读取 .local 文件而不是 .conf 文件。通过创建 .local 文件,您可以确保您的设置在更新期间不会丢失,并且您始终有一个新副本可以在配置错误时依靠。
第 1 步:备份您的配置文件
运行以下命令创建jail.conf 文件的副本:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
此命令使用cp(复制)命令在同一目录中创建名为jail.local 的重复jail.conf 文件。 sudo 前缀提供执行此操作所需的权限。
您现在拥有原始配置文件的备份,并且可以通过编辑jail.local 文件安全地配置Fail2Ban 设置,而不必担心在将来的更新期间丢失更改。
第 4 部分:设置 Fail2Ban
备份原始配置文件后,需要更改jail.local 文件中的设置以满足服务器的安全需求。
步骤一:编辑配置文件
要使用nano 编辑器编辑jail.local 文件,请运行以下命令:
sudo nano /etc/fail2ban/jail.local
此命令以管理员权限在nano 文本编辑器中打开jail.local 文件,允许您编辑其内容。
第二步:增加禁令时间
启用“禁令时间增量”选项可延长屡犯者的禁令持续时间。例如,如果默认禁止时间为一小时,您可以在五次重复禁止后将其增加到五小时。为此,您需要为禁止时间增加逻辑设置一个乘数。
例子:
在此示例中,后续每个禁令的禁令时间都会加倍。您可能希望启用此功能,通过增加每次被禁止时的禁止持续时间来阻止持续的攻击者。
步骤 3:将 Fail2Ban 中的 IP 地址列入白名单
要将特定 IP 地址列入白名单,请注释掉ignoreip 行并添加所需的 IP 地址,以空格或逗号分隔。您还可以将 IP 地址范围列入白名单。
示例:
ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)
本例中,IP 地址 180.53.31.33 被列入白名单。您可能希望将属于受信任用户或服务的 IP 地址列入白名单,以防止意外禁止。
步骤 4:配置默认禁止时间
默认情况下,在 10 分钟窗口内尝试失败 5 次后,Fail2Ban 会禁止攻击者 10 分钟。您可以自定义这些默认设置,但建议您为不同的监狱设置自定义禁止时间和重试限制。
例子:
在此示例中,默认设置会在 10 分钟窗口内尝试 5 次失败后阻止攻击者 10 分钟。您可以更改这些设置以更好地满足服务器的安全要求。
步骤 5:配置 Fail2Ban 以使用 UFW 而不是 IPTables
要将 Fail2Ban 配置为使用 UFW 而不是 IPTables 作为默认禁止操作,请更新 [DEFAULT] 部分中的 banaction 行。
示例:
[DEFAULT]
banaction = ufw
通过将 banaction 更改为 ufw,Fail2Ban 将使用 UFW 而不是 IPTables 来管理禁令。如果您已经使用 UFW 作为服务器的主要防火墙并且想要维护一致的管理系统,这非常有用。
第 6 步:警报/电子邮件
配置 Fail2Ban 以将带有 whois 报告的电子邮件通知发送到指定的电子邮件地址。您还可以设置各种报告选项,例如向黑名单提供商或攻击者的提供商发送电子邮件。
例子:
在此示例中,[email protected]是将通知发送到的电子邮件地址,[email protected]是通知将发送到的电子邮件地址。您可以启用电子邮件警报以随时了解安全事件并在必要时采取适当的措施。
第 7 步:Fail2Ban Jails
Jails 包含针对各种服务器应用程序的预定义过滤器和操作。您可以根据服务器的需要启用、禁用或自定义监狱。
要启用监狱,请将enabled = true 添加到相应的监狱部分。
例子:
此示例启用 apache-badbots Jail 功能来保护 Apache Web 服务器免受恶意机器人的侵害。在一次尝试失败后,此功能将阻止违规者 48 小时。您可以根据服务器上运行的服务及其相关的安全风险启用特定的监狱。
您还可以通过更新监狱部分中的 banaction 行来添加自定义操作或使用 action.d 目录中的操作。
例子:
此示例启用 apache-botsearch Jail 功能来防止 Apache Web 服务器上的搜索机器人攻击。自定义禁止操作配置为使用 action_mw 和 cloudflare 操作。您可以添加自定义操作以增强安全性或将 Fail2Ban 与其他安全工具和服务集成。
步骤8:重新启动Fail2Ban服务
Fail2Ban 配置完成后,重新启动服务以应用更改:
sudo systemctl restart fail2ban
第 5 节:如何使用 Fail2Ban 命令阻止/取消阻止
配置 Fail2Ban 后,您可以使用fail2ban-client 命令管理 IP 禁止。您可能需要 sudo 权限,具体取决于您的设置。
第 1 步:阻止 IP 地址:
要手动阻止特定监狱(例如 apache-botsearch)的 IP 地址,请使用以下命令:
sudo failure2ban-client set apache-botsearch banip <ip address>
此命令将指定的 IP 地址添加到禁止的 IP 列表中apache 监狱 -botsearch 的地址。因此,根据监狱中定义的规则,该 IP 地址将被阻止访问您的服务器。
第 2 步:解锁 IP 地址:
要取消禁止特定监狱(例如 apache-botsearch)的 IP 地址,请使用以下命令:
sudo failure2ban-client set apache-botsearch unbanip <ip address>
此命令取消禁止指定的 IP 地址,允许其再次访问您的 IP 地址。服务器,前提是它遵循 apache-botsearch 监狱中的规则。
第 3 步:访问帮助菜单:
要访问帮助菜单并查看其他设置或命令,请使用以下命令:
sudo fail2ban-client -h
此命令显示帮助菜单,其中包含用于管理 Fail2Ban 的各种选项和命令。
第 4 步:更多示例:
检查特定监狱的状态:
sudo fail2ban-client status apache-botsearch此命令提供有关 apache-botsearch 监狱的信息,例如其当前状态和被禁止的 IP 地址的数量。
重新加载配置而不重新启动 Fail2Ban 服务:
sudo fail2ban-client reload此命令重新加载 Fail2Ban 配置,应用所做的所有更改,而无需重新启动服务。
检查您的特定监狱的禁止 IP 地址列表:
sudo fail2ban-client get apache-botsearch banned此命令列出了 apache-botsearch 监狱中当前禁止的所有 IP 地址。
为监狱中的特定 IP 地址设置自定义禁止时间:
sudo fail2ban-client set apache-botsearch bantime <time_in_seconds> --banip <ip_address>此命令在 apache-botsearch 监狱中禁止指定的 IP 地址一段指定的时间(以秒为单位)。
这些命令提供了使用 Fail2Ban 有效管理 IP 禁令的工具。请记住将 <ip_address> 替换为您要禁止或取消阻止的实际 IP 地址,并根据您的配置将 apache-botsearch 替换为适当的监狱名称。
第 6 节:检查/监控 Fail2Ban 日志
监视和查看 Fail2Ban 日志以确保您的监狱正常运行非常重要。默认情况下,Fail2Ban 日志可以在 /var/log/fail2ban.log 中找到。
第1步:实时日志监控
要实时查看日志并注意到服务器上运行时的任何问题,请使用 tail -f 命令:
tail -f /var/log/fail2ban.log
该命令允许您实时监视日志中的变化。当新条目添加到日志文件中时,您将看到它们,这可以帮助您识别异常活动或错误。
第二步:在日志中搜索具体信息
您还可以使用 grep 命令在日志中查找特定信息,例如 IP 地址、用户代理或错误。 grep 命令过滤日志文件并仅显示包含指定关键字的行。
用户代理示例:
grep "Bing" /var/log/fail2ban.log此命令查找包含单词“Bing”的所有日志条目,这可以帮助您识别不需要的机器人或用户代理活动。
错误示例:
grep "error" /var/log/fail2ban.log此命令查找包含“错误”一词的日志条目,帮助您检测 Fail2Ban 的任何问题或问题。
IP 地址示例:
grep "123.123.123.1" /var/log/fail2ban.log此命令搜索包含指定 IP 地址的日志条目,允许您跟踪特定 IP 地址的活动或确定它是否已被拒绝。
这些示例演示了使用终端命令过滤和搜索日志的不同方法。定期查看 Fail2Ban 日志将帮助您维护服务器的安全并确保您的监狱按预期运行。
第 7 节:如何删除(卸载)Fail2Ban
如果您决定从系统中删除 Fail2Ban,可以按照以下步骤轻松将其删除:
步骤 1:停用 Fail2Ban 服务
如果 Fail2Ban 服务仍然处于活动状态,您需要先禁用它,以便删除过程顺利进行。禁用服务将阻止其在后台运行并干扰卸载过程。
使用以下命令禁用 Fail2Ban 服务并停止其运行:
sudo systemctl disable fail2ban --now
此命令立即禁用 Fail2Ban 服务(-now 标志)并确保它不会在后续系统重新引导时自动启动。
第 2 步:从系统中删除 Fail2Ban
禁用该服务后,您可以使用以下命令删除 Fail2Ban:
sudo apt remove fail2ban
此命令将删除 Fail2Ban 及其系统依赖项和关联数据。