Commit 579e3ed
feat: complete nftables fallback and add eBPF build tooling
## nftables Fallback (Blocker #2 - FIXED)
- Add NftablesManager struct with full API:
- apply(): Actually applies rules to kernel (was check-only before)
- block_ip(): Runtime IP blocking
- allow_tcp_port()/allow_udp_port(): Dynamic port management
- cleanup(): Remove yacht firewall table
- Add Firewall enum to unify eBPF and nftables management
- Fix critical bug: rules were validated but never applied (used -c flag)
## eBPF Build Tooling (Blocker #1 - Build Infrastructure)
- Add xtask crate for workspace-level build tasks
- Add cargo xtask commands:
- build-ebpf: Compile XDP firewall with nightly toolchain
- install-ebpf: Install to /etc/wharf/
- build-all: Build everything
- Add .cargo/config.toml with xtask alias
- Update workspace to include xtask, exclude fuzz/
The eBPF kernel code was already complete - this adds the build automation
to compile it with: cargo xtask build-ebpf
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent 76e81de commit 579e3ed
6 files changed
Lines changed: 593 additions & 65 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | | - | |
9 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| |||
0 commit comments