mcpField
F
fail2ban-setup

fail2ban-setup

github.com/mikr13安全684 次安装2 周前更新
代码仓库

关于 fail2ban-setup

fail2ban-setup 用于为选定的日志服务配置 Fail2ban,同时保留其他 jail 和可信地址策略。它涵盖检查、受控配置、验证、拦截测试和恢复。

主要功能

  1. 01检查日志、过滤器和防火墙路径
  2. 02保留现有 jail 与允许列表
  3. 03预览并应用 SSH jail
  4. 04启用前验证配置
  5. 05验证拦截并恢复原状态

适用场景

  1. 01为服务器配置 SSH jail
  2. 02检查仅使用 journald 的 SSH 日志支持
  3. 03测试拦截且避免锁定管理员

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mikr13/secure-server-setup-skills --skill fail2ban-setup

安装后在 Claude Code 中输入/fail2ban-setup确认已加载。

附带文件references/fail2ban-filters.mdscripts/setup-fail2ban.sh

详细介绍

Fail2ban 设置

保护所选日志服务,同时不替换无关的 jail 或可信地址策略。进程正在运行,并不代表 jail 处于活动状态或有效。

检查

  • 确认已安装的 Fail2ban/过滤器版本、实际 SSH 监听端口、活动 jail、本地覆盖项和现有 ignoreip 值。测试封禁前,先检查管理员访问情况。
  • 确定 SSH 事件是否写入 /var/log/auth.log、/var/log/secure,还是仅写入 journald。对于仅使用 journal 的系统,确认已安装 python3-systemd,且已安装的 SSH 过滤器支持 journalmatch。
  • 确定防火墙封禁操作和网络路径;如适用,还要考虑反向代理或容器。jail 必须识别实际违规客户端,而不是共享代理或管理员地址。

选择后端、过滤器模式、自定义应用过滤器或受控测试时,请阅读 references/fail2ban-filters.md。

配置

如果 Fail2ban 和所需的后端软件包尚未安装,请在授权范围内安装。预览 scripts/setup-fail2ban.sh:

sudo bash scripts/setup-fail2ban.sh --dry-run

如果套接字激活或自定义端口导致无法明确判断端口,请为每个实际监听端口传入 --ssh-port。要在授权范围内更改 SSH jail 并激活:

sudo bash scripts/setup-fail2ban.sh --apply --activate

该辅助程序只写入 jail.d/99-secure-server-sshd.local,选择文件轮询或 systemd 后端,保留现有 ignoreip 和其他 jail,并在激活前验证配置。它使用已安装的 sshd 过滤器,阈值为十分钟内失败五次,封禁一小时。这些是可调整的本地策略选择,并非 Fail2ban 的通用默认值。不使用 --activate 时,运行中的服务不会改变。

除非已验证实际日志来源、过滤器和封禁操作,否则不要启用 recidive 或应用 jail。激进的 SSH 行为是已安装 sshd 过滤器的一种模式,并非假定存在 sshd-aggressive.conf 文件。

该辅助程序会验证合并后的封禁操作端口和 TCP 覆盖范围。已安装的 iptables/nftables 全端口操作需要明确批准 --allow-allports;无法验证的自定义操作需要手动处理流程。活动服务的重新加载和恢复只选择 sshd。启动非活动服务会加载所有已启用的 jail,因此必须相应地进行审核。

验证和恢复

  • 激活后运行 sudo fail2ban-client -t,并检查 sudo fail2ban-client status sshd。
  • 确认所选日志/journal 中包含实际事件,并确认 jail 的过滤器能匹配身份验证失败,同时排除有代表性的合法流量。
  • 从受控的备用客户端验证封禁会阻止目标网络路径,然后解除封禁。不要故意封禁唯一的管理客户端。
  • 验证此前要求的所有 jail 和允许列表仍然有效。封禁通知和日志保留应与现有策略保持一致。
  • 如果验证/激活失败,辅助程序会恢复先前管理的 jail,并尝试恢复先前的服务状态。之后如需回滚,请使用输出的目录恢复或移除该管理覆盖项,验证配置并重新加载。

分别报告运行中的服务、活动 jail、过滤器匹配情况和实际执行封禁的证据。

评论

支持 Markdown