CyberLearn
← Back to beginner
Beginner

Firewall Rule Engine

Parse and validate iptables/nftables rules

Log in to track progress
2–3hV

What you'll learn

  • Firewall internals
  • Rule parsing
  • iptables/nftables
  • V language
██╗   ██╗███████╗██╗    ██╗██████╗ ██╗   ██╗██╗     ███████╗
██║   ██║██╔════╝██║    ██║██╔══██╗██║   ██║██║     ██╔════╝
██║   ██║█████╗  ██║ █╗ ██║██████╔╝██║   ██║██║     █████╗
╚██╗ ██╔╝██╔══╝  ██║███╗██║██╔══██╗██║   ██║██║     ██╔══╝
 ╚████╔╝ ██║     ╚███╔███╔╝██║  ██║╚██████╔╝███████╗███████╗
  ╚═══╝  ╚═╝      ╚══╝╚══╝ ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝

Cybersecurity Projects V License: AGPLv3

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.

What It Does

  • 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

Quick Start

./install.sh
fwrule analyze /etc/iptables.rules

[!TIP] 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

Commands

CommandDescription
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

Harden Options

FlagDefaultDescription
-s, --servicesssh,http,httpsComma-separated services to allow
-i, --ifaceeth0Public-facing network interface
-f, --formatiptablesOutput format: iptables or nftables

Examples

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.rules

Learn

This project includes step-by-step learning materials covering security theory, architecture, and implementation.

ModuleTopic
00 - OverviewPrerequisites and quick start
01 - ConceptsFirewall theory, netfilter, and real-world breaches
02 - ArchitectureSystem design, module layout, and data flow
03 - ImplementationCode walkthrough with file references
04 - ChallengesExtension ideas and exercises

License

AGPL 3.0