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, 二层透明网桥, 安全网关, 客户端加密, 网络安全, 隐私保护