关于 firewall-configuration
用于规划、应用和验证 UFW 防火墙变更的技能,面向配置服务器网络访问的运维人员。它在变更时检查 SSH 可达性,并支持保留现有规则、回滚及 IPv4/IPv6 验证。
主要功能
- 01检查监听端口和防火墙策略
- 02添加来源受限的管理规则
- 03预览或应用 UFW 变更
- 04保留现有规则并保存回滚状态
- 05验证允许和阻止的网络路径
适用场景
- 01将 SSH 限制为获批来源网段
- 02开放必需的服务端口
- 03在启用前审查防火墙变更
- 04从失败的防火墙更新中恢复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mikr13/ secure-server-setup-skills --skill firewall-configuration安装后在 Claude Code 中输入/firewall-configuration确认已加载。
附带文件references/ufw-rules.mdscripts/setup-firewall.sh
详细介绍
防火墙配置
仅配置必需的网络路径。更改默认设置前,必须了解现有的生效策略和规则;允许 SSH 的规则并不能证明新的连接能够正常建立。
清点
- 检查
ss -ltnup、实际生效的 SSH 端口、存在时的ssh.socket、ufw status verbose、ufw show added、服务提供商的安全组以及任何由容器发布的端口。 - 确认实际的管理端口和获准的 IPv4/IPv6 来源范围。使用套接字激活或自定义守护进程调用时,应确认监听器,而不能只依赖
sshd_config。 - 检查
/etc/default/ufw中的 IPv6 处理设置。进行相关的外部 IPv6 测试;IPv4 过滤无法证明 IPv6 已隔离。 - 记录控制台恢复途径以及当前规则/策略。不要将重置 UFW 作为常规故障排查手段。
有关来源限制规则、路由、Docker 和恢复,请参阅 references/ufw-rules.md。
配置
如果授权的设置要求安装 UFW/iproute2,请先安装。预览 scripts/setup-firewall.sh:
sudo bash scripts/setup-firewall.sh --ssh-source 203.0.113.10/32 --allow-port 443/tcp --dry-run
对于套接字/自定义监听器,请使用 --ssh-port 传入每个实际端口。对获准的来源(包括 IPv6)重复使用 --ssh-source。--public-ssh 明确选择允许来自任意来源的访问;不要根据缺失的信息推断应作此选择。
规则集和启用操作获得授权后:
sudo bash scripts/setup-firewall.sh --ssh-source 203.0.113.10/32 --allow-port 443/tcp --apply --enable
此辅助脚本会验证端口/来源/监听器,并在更改规则前检查当前 SSH 客户端是否位于拟议的来源 CIDR 范围内。如果该客户端不在范围内,或者启用原本未启用的 UFW 时无法获取其地址,除非使用 --console-recovery-confirmed 明确确认已测试带外恢复途径,否则脚本会拒绝操作。适当情况下,提权时应保留 SSH_CONNECTION;切勿仅为绕过访问检查失败而添加该覆盖选项。脚本会先添加管理访问规则,并为 UFW 配置创建快照。只有在 UFW 未启用时,脚本才会暂存拒绝传入/允许传出的默认策略。现有的生效默认策略和规则会予以保留;应单独检查不需要的宽泛允许规则。不使用 --enable 时,未启用的防火墙仍会保持未启用状态。公共服务标志会刻意允许来自任意来源的访问;对于内部数据库/服务,请手动添加限制来源的规则。
验证和恢复
- 验证生效的规则和策略,然后通过实际管理路径重新连接。从相关的允许/拒绝网络测试获准的服务和被阻止的路径;适用时,应在两种地址族中分别测试。
- 独立检查容器发布的端口和服务提供商的规则。Docker 的转发/NAT 路径可能绕过 UFW 的主机输入过滤。
- 如果命令失败,辅助脚本会还原保存的文件和先前的启用状态。之后如需恢复,请使用服务提供商控制台和打印出的备份目录;同时考虑该快照之后发生的服务/规则更改。
- 分别报告配置、启用状态和可达性方面的证据。默认拒绝策略不会移除预先存在的允许规则,而 UFW 服务正在运行也不能证明不存在外部暴露。