ipfwadm: Originated with Linux 1.2.x/2.0.x. Inspired by BSD’s ipfw.
- Simple stateless packet filtering
ipchains: Introduced with Linux 2.2.x
- Basic stateful packet filtering
- Better chain organization
- NAT support
- IPv6 support:
ip6chains.
iptables / Netfilter: Introduced with Linux 2.4.x
- Netfilter became a kernel-space framework for hooks and connection tracking.
iptables is the user-space command-line tool to configure Netfilter.
- Module-based architecture for extensibility.
- IPv6 support:
ip6tables.
nftables: Introduced with Linux 3.13.x
- Replaces
iptables, ip6tables, arptables, and ebtables.
- Uses a single command-line tool:
nft.
- More efficient rule processing with a new virtual machine.
- De-duplicates v4/v6 rules
Distro Frontends
firewalld (Red Hat, Fedora, CentOS)
- Uses
iptables/nftables as backend.
- Dynamic firewall management with zones and services.
- D-Bus interface for programmatic control.
ufw (Ubuntu)
- Simplified interface for
iptables.
- Friendly wrapper that auto-generates rules underneath.