unknown0152/nft-firewall-public

GitHub: unknown0152/nft-firewall-public

基于 nftables 的安全默认防火墙管理器,为 Debian 系统提供 WireGuard killswitch、Docker 隔离、健康监控和运维工具链。

Stars: 0 | Forks: 0

# nft-firewall `nft-firewall` 是一个底层的 nftables 防火墙管理器,专为需要严格 WireGuard killswitch、默认丢弃(default-drop)输入策略、Docker 隔离、健康检查以及操作员工具的 Debian 系统而设计。 本项目面向有经验的 Linux 操作员。它直接管理 nftables 规则,并可能影响主机的网络连接。在应用生成的规则之前,请先进行审查,保留带外(out-of-band)恢复路径,并在不了解本地网络拓扑结构的情况下,切勿将其部署在生产主机上。 ## 当前状态 本仓库是基于真实生产部署环境导出的、对公众安全的源码。其中包含了代码、测试、systemd 模板和操作员文档,但有意排除了实际的主机配置、运行时状态、日志、备份产物以及私密历史记录。 部署文档有意保持保守。它侧重于审查、验证和恢复工作流,而不是提供一键式的公共安装程序。公共安装步骤应在干净的目标主机上经过测试后,方可撰写。 ## 功能 - 具备默认丢弃(default-drop)输入姿态的 nftables 规则集生成。 - 面向 WireGuard 的出站(egress)控制和 killswitch 健康检查。 - 支持 IPv6 硬阻断(hard-drop)killswitch。 - 在将 Docker 配置为不自行管理 iptables 的情况下,提供 Docker 隔离。 - 用于阻断、信任和 GeoIP 风格源列表的动态 nftables 集合。 - 包含 watchdog、listener、SSH 告警、指标和报告的 systemd 模板。 - 可选的 Keybase 通知和 ChatOps 集成。 - 通过 Ruff、ShellCheck 和 pytest 进行本地开发者检查。 ## 公共仓库范围 此公共仓库有意排除了实时的主机数据。请勿提交: - `config/firewall.ini` - 位于 `state/` 或 `/var/lib/nft-firewall/` 下的运行时状态 - 生成的 `/etc/nftables.conf` 副本 - 审计日志或其他日志 - 备份包、运行时状态 tar 包以及本地存档 - `.venv/`、缓存和测试产物 请使用 [config/firewall.ini.example](config/firewall.ini.example) 作为 本地配置的起点。真实的接口名称、局域网(LAN)网段、VPN 端点、SSH 端口、Keybase 标识符以及特定于服务的值只能存在于私有部署配置中。 ## 仓库结构 - `src/core/` 包含规则集生成、状态持久化和验证。 - `src/daemons/` 包含 watchdog、listener、knockd 和 SSH 告警守护进程。 - `src/integrations/` 包含 Docker、GeoIP 和威胁情报源(threat-feed)辅助工具。 - `src/utils/` 包含共享的格式化、指标、Keybase 和验证 实用工具。 - `systemd/` 包含服务和计时器模板。 - `scripts/` 包含本地操作员和维护辅助脚本。 - `tests/unit/` 包含单元和不变量(invariant)测试套件。 - `docs/` 包含运维和迁移说明。 ## 开发检查 本地检查入口点是: ``` make check ``` 它会运行 Ruff(如果可用)、ShellCheck(如果可用)以及单元测试套件。 Ruff 有意进行了狭义的配置,以便它能在不引起大范围代码风格变动的情况下,捕获高价值的未定义名称错误。 可选的本地工具可以安装到项目的 `.venv` 中: ``` make venv make check ``` `.venv` 仅用于开发检查。运行时服务不依赖于它。 ## 运维说明 [docs/](docs/) 下的文档描述了维护工作流,例如本地更改跟踪、零停机验证以及备份/导出处理。它们是操作员指南,不能替代在目标主机上审查生成的 nftables 策略。 在真实主机上应用生成的防火墙更改之前,请使用适用于该部署的项目 doctor、健康状态检查和 nftables 语法检查。
标签:Debian, Docker隔离, nftables, WireGuard, 安全规则引擎, 系统防护, 请求拦截, 运维工具, 逆向工具, 防火墙