[A·M2] nftables enforcement: deception → engine, real → DNAT #17
Labels
No labels
bug
deploy
documentation
duplicate
enhancement
good first issue
help wanted
invalid
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/blackwall#17
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wire the classifier rules deferred in M1: deception set → NFQUEUE/TPROXY to the engine, real services → DNAT to backend, drop set → drop. Remove the inert accept-all placeholder. Part of #2.
The real→DNAT half of this issue is now implemented and merged in #98: a dedicated
natprerouting chain emits a per-servicednat to <ip>:<port>rule fornat:targets (host:/incus:keep the plain accept; cross-family targets skipped). Deception→engine enforcement (TPROXY + NFQUEUE) landed earlier. Leaving this open for any remaining M2 enforcement scope.Implemented.
blackwall-nft::render(crates/blackwall-nft/src/render.rs) now emits the full M2 classifier — the inert accept-all placeholder is gone:iifname-scoped real-service membership;nat:<ip>:<port>backends are rewritten in a dedicatednatchain atdstnatpriority (render.rs:493+).default_state == Closedthe chain's default policy isdrop.Enforced end-to-end by the deception-* lab gates (all green). Closing.