marcofortina/JanusGate

GitHub: marcofortina/JanusGate

JanusGate 是一款基于 Linux/OpenBSD 的透明二层桥接 DNS 安全设备,提供经典 DNS 过滤与加密 DNS 端点控制。

Stars: 0 | Forks: 0

|selected ingress traffic| workers end protected -->|data-in| bridge bridge -->|data-out| router management -->|management NIC| administration ``` 该设备将非特权策略处理、特权网络配置和 HTTPS 管理分离到不同的进程中。其管理接口永远不会附加到数据桥接上。 ## 功能 - 针对任何解析器地址的 UDP 和 TCP 经典 DNS 策略。 - 精确匹配和子域规则、允许优先级、作用域、本地列表以及受限的远程源。 - 针对 UDP DNS 的 Drop、REFUSED、NXDOMAIN 和 IPv4/IPv6 sinkhole 操作。 - 受限的 TCP 重组、分片处理、标准端口 DoT/DoQ 控制、已知 endpoint 集合,以及无需 TLS 拦截或 QUIC SNI 解析的可见 TLS SNI 策略。 - 带有确认和回滚的事务性网络更改。 - HTTPS 管理、特权本地 CLI、强制 mTLS 远程 CLI、角色、TOTP、token、CSRF 保护、审计链、指标、备份和诊断。 - 结构化的 stderr/syslog 日志记录,以及受限、过期且注重隐私的操作追踪。 - Alpine 3.24 软件包和 VM 镜像,以及 x86_64 和 AArch64 Buildroot 固件。 - 原生 OpenBSD 7.9 构建、PF/divert 包路径、rc.d 服务和安装程序。 - GCC/Clang、glibc/musl、sanitizer、fuzz、静态分析、镜像和性能验证。 JanusGate 无法检查被未识别的 DoH endpoint、ECH、全隧道 VPN 或加密代理隐藏的名称。共享 endpoint 阻止可能会影响无关的服务。请参阅 [局限性](docs/limitations.md)。 ## 构建 开发构建使用 CMake、Ninja、C17 编译器以及 [构建与验证](docs/build.md) 中列出的系统开发库: ``` cmake --preset debug cmake --build --preset debug --parallel 4 ctest --preset debug --output-on-failure ``` ## 快速 VM 实验环境 按以下顺序准确分配三个适配器:受保护侧数据、上游侧数据和管理。启动经过验证的镜像,从管理网络打开 `https://192.168.77.1/`,创建第一个管理员,并确认检测到的接口角色。保持管理适配器位于数据桥接之外。 Buildroot 镜像会根据经过审查的镜像配置执行非交互式的首次启动设置。可以通过 `packaging/install/install.sh --dry-run` 将 Alpine 安装到现有的受支持系统中,随后进行明确的已验证配置和确认。 在将设备置于内联之前,请验证桥接转发、管理隔离、一个允许的名称、每个选定的阻止操作、本地 CLI、远程 CLI、备份创建以及有序重启。 ## 文档 - [架构](docs/architecture.md) 和 [数据包路径](docs/packet-path.md) - [威胁模型](docs/threat-model.md) 和 [局限性](docs/limitations.md) - [Web 管理](docs/administration.md)、[CLI](docs/cli.md)、[管理 API](docs/web-api.md) 和 [私有 CA 远程访问](docs/remote-api.md) - [构建](docs/build.md)、[镜像和固件](docs/firmware.md)、[依赖项](docs/dependencies.md) 和 [性能](docs/performance.md) - [操作](docs/operations.md)、[隐私](docs/privacy.md) 和 [恢复](docs/recovery.md) - [安全策略](SECURITY.md) 和 [贡献指南](CONTRIBUTING.md) ## 支持 支持本项目的方式: - GitHub Sponsors:使用仓库的 **Sponsor** 按钮或赞助 `@marcofortina`。 - PayPal:`https://paypal.me/marcofortina`。 - Bitcoin:`36jDV57roGb4o59TwK1CB7viPrXToQHGiP`。 ## 许可证 JanusGate 采用 GNU Affero General Public License v3.0 或更高版本进行许可。请参阅 `LICENSE`。
标签:Bash脚本, DNS过滤, DoT/DoQ控制, IP 地址批量处理, OpenBSD, 二层透明网桥, 安全网关, 客户端加密, 网络安全, 隐私保护