iptables
iptables on Linuxin perinteinen palomuurityökalu netfilter-kehykselle.
Ajankohtainen huomio: iptables on nykyään Netfilter-projektin
virallisesti "legacy"-tilaan asettama — se saa vielä
tietoturvakorjauksia, mutta ei uusia ominaisuuksia. Kaikki merkittävät
Linux-jakelut (RHEL/AlmaLinux/Rocky 9+, Debian 11+, Ubuntu 22.04+,
Fedora 35+, Arch huhtikuusta 2026 alkaen) käyttävät oletuksena
nftables-taustamoottoria — iptables-komennot toimivat näissä
edelleen samalla syntaksilla, mutta reitittyvät iptables-nft
-yhteensopivuuskerroksen kautta oikean nftables-moottorin läpi. Uusiin
järjestelmiin kannattaa harkita suoraan nft-komentoa tai
firewalld/ufw-tason työkalua, mutta alla olevat komennot toimivat
silti käytännössä kaikkialla.
Perusrakenne
Säännöt on jaettu ketjuihin (chains): INPUT (saapuva liikenne
tälle koneelle), OUTPUT (lähtevä liikenne tältä koneelta), FORWARD
(reititettävä liikenne). Oletustaulu on filter.
Sääntöjen listaus
sudo iptables -L # listaa filter-taulun säännöt
sudo iptables -L -v -n # yksityiskohtaisemmin, ei DNS-käännöstä
sudo iptables -L INPUT --line-numbers # rivinumerot poistoa varten
Sääntöjen lisäys
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # lisää listan loppuun
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT # lisää tiettyyn kohtaan (tässä ensimmäiseksi)
sudo iptables -A INPUT -s 10.0.0.5 -j DROP # pudota tietystä IP:stä tuleva liikenne
sudo iptables -A INPUT -i lo -j ACCEPT # salli kaikki paikallinen (loopback) liikenne
Sääntöjen poisto
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT # poista täsmäävä sääntö
sudo iptables -D INPUT 3 # poista rivinumeron perusteella
sudo iptables -F # tyhjennä kaikki säännöt nykyisestä taulusta
Kohteet (targets)
| Kohde | Kuvaus |
|---|---|
ACCEPT |
Salli paketti |
DROP |
Pudota paketti hiljaisesti (ei vastausta lähettäjälle) |
REJECT |
Hylkää paketti ja lähetä virheilmoitus takaisin |
LOG |
Kirjaa paketti lokiin ja jatka seuraavaan sääntöön |
Oletuskäytäntö (default policy)
sudo iptables -P INPUT DROP # pudota oletuksena kaikki saapuva
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
Varoitus: aseta oletuskäytäntö DROP:ksi vasta sen jälkeen, kun olet
lisännyt tarvittavat ACCEPT-säännöt (mm. SSH:lle) — muuten voit
lukita itsesi ulos etäpalvelimelta.
Yleisiä esimerkkejä
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # olemassa olevat yhteydet
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # ping
Sääntöjen pysyvyys
iptables-säännöt eivät oletuksena säily uudelleenkäynnistyksen yli — ne pitää tallentaa erikseen:
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4
Monessa jakelussa tähän on oma paketti (esim. Debian/Ubuntu:
iptables-persistent), joka lataa tallennetut säännöt automaattisesti
käynnistyksessä.