iptables is de klassieke tool voor het beheren van firewallregels op Linux. Het werkt direct met het netfilter-subsysteem in de kernel en bepaalt wat er met inkomende, uitgaande en doorgestuurde netwerkpakketten gebeurt.
iptables werkt met tabellen, ketens en regels:
| Tabel | Doel |
|---|---|
filter | Pakketten toestaan of blokkeren (standaard) |
nat | Adresvertaling (SNAT, DNAT, masquerade) |
mangle | Pakketattributen aanpassen |
Elke tabel heeft ketens (chains) waar pakketten doorheen lopen:
| Keten | Wanneer |
|---|---|
INPUT | Pakketten bestemd voor deze machine |
OUTPUT | Pakketten van deze machine |
FORWARD | Pakketten die worden doorgestuurd |
# Toon huidige regels
iptables -L -n -v
# Sta SSH toe
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Blokkeer een IP-adres
iptables -A INPUT -s 192.168.1.50 -j DROP
# Sta gevestigde verbindingen toe
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables wordt langzaam vervangen door nftables, dat een modernere en efficiëntere syntaxis biedt. Op veel distro's is iptables inmiddels een wrapper om nftables.