tholian-network/firewall
GitHub: tholian-network/firewall
一款基于eBPF的可编程防火墙,支持嵌入Go后端或独立运行,具备端口扫描检测和数据外泄协议识别能力。
Stars: 26 | Forks: 3
# Tholian® Firewall
一款可编程的 eBPF 防火墙,可用于基于 `Go` 的后端程序,
也可作为独立的 CLI 工具使用,具备自动端口扫描
或检测 exfil 网络协议等高级功能。
:construction: 实验性软件 - 风险自负 :construction:
## 构建
### 构建 eBPF 模块
[eBPF](./ebpf) 模块需要在网络流量到达内核之前将其拦截。虽然有一个使用 `iptables` 的备用实现可用,但并不推荐使用。eBPF 模块在性能上绝对优于 iptables。
该内核空间 eBPF 模块会被编译为字节码,因此有望在首次编译后无需重新编译。
如果确实需要重新编译,操作方法如下:
```
# 构建依赖
sudo pacman -S --needed binutils coreutils go bpf libbpf clang llvm llvm-libs lib32-llvm-libs;
cd /path/to/tholian-firewall;
bash make.sh ebpf;
```
### 构建 Go 程序
```
cd /path/to/tholian-firewall;
bash make.sh source;
# 列出构建的二进制文件
ls ./build/linux/*;
```
### 构建标签 (Build Tags)
`tholian-firewall` 代码库使用两个不同的保留 Go 构建标签:
- `guard`,包含 [ebpf 模块](/source/adapters/mitigations/ebpf) 和所有 [insights](/source/insights)。
- `guard_openwrt`,包含 [ebpf 模块](/source/adapters/mitigations/ebpf)。
此外,由于某些操作系统不支持 Linux 的 eBPF API,还有回退到使用 `iptables` 和 `hosts` 的构建标签:
- `guard_freebsd`
- `guard_netbsd`
- `guard_openbsd`
### 从源码运行
运行 Firewall CLI 最简单的方法:
```
cd /path/to/tholian-firewall/source;
sudo go run -tags `guard` ./cmds/tholian-firewall/main.go;
```
# 许可证
专有软件
标签:Beacon Object File, Docker镜像, Go语言, iptables替代, IP 地址批量处理, Linux内核, Packet Filtering, XDP, 协议识别, 可编程防火墙, 后端安全, 客户端加密, 客户端加密, 开源安全工具, 插件系统, 数据泄露防护, 日志审计, 程序破解, 端口扫描检测, 网络安全, 网络探测, 网络流量控制, 逆向工程平台, 防火墙, 隐私保护