βββ ββββββββββββββ ββββββββββ βββ ββββββ ββββββββ
βββ ββββββββββββββ ββββββββββββββ ββββββ ββββββββ
βββ βββββββββ βββ ββ ββββββββββββββ ββββββ ββββββ
ββββ ββββββββββ βββββββββββββββββββββ ββββββ ββββββ
βββββββ βββ βββββββββββββ ββββββββββββββββββββββββββββ
βββββ βββ ββββββββ βββ βββ βββββββ ββββββββββββββββFirewall rule parser, conflict detector, optimizer, and hardened ruleset generator for iptables and nftables.
This is a quick overview β security theory, architecture, and full walkthroughs are in the learn modules.
- Parse iptables-save and nft list ruleset formats into a unified rule model
- Detect shadowed rules, contradictions, duplicates, and redundant entries
- Suggest optimizations: port merging, rule reordering, missing rate limits, missing conntrack
- Generate hardened rulesets with default-deny, anti-spoofing, ICMP rate limiting, and connection tracking
- Export rulesets between iptables and nftables formats
- Diff two rulesets to find what changed
- Colored terminal output with severity-coded findings
./install.sh
fwrule analyze /etc/iptables.rulesTip
This project uses just as a command runner. Type just to see all available commands.
Install: curl -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin
| Command | Description |
|---|---|
fwrule load <file> |
Parse and display a ruleset in table format |
fwrule analyze <file> |
Run conflict detection and optimization analysis |
fwrule optimize <file> |
Show optimization suggestions only |
fwrule harden [options] |
Generate a hardened ruleset from scratch |
fwrule export <file> -f <fmt> |
Convert between iptables and nftables formats |
fwrule diff <file1> <file2> |
Compare two rulesets side by side |
| Flag | Default | Description |
|---|---|---|
-s, --services |
ssh,http,https |
Comma-separated services to allow |
-i, --iface |
eth0 |
Public-facing network interface |
-f, --format |
iptables |
Output format: iptables or nftables |
fwrule load testdata/iptables_basic.rules
fwrule analyze testdata/iptables_conflicts.rules
fwrule harden -s ssh,http,https,dns -f nftables
fwrule export testdata/iptables_basic.rules -f nftables
fwrule diff testdata/iptables_basic.rules testdata/nftables_basic.rulesThis project includes step-by-step learning materials covering security theory, architecture, and implementation.
| Module | Topic |
|---|---|
| 00 - Overview | Prerequisites and quick start |
| 01 - Concepts | Firewall theory, netfilter, and real-world breaches |
| 02 - Architecture | System design, module layout, and data flow |
| 03 - Implementation | Code walkthrough with file references |
| 04 - Challenges | Extension ideas and exercises |
AGPL 3.0