Obslužný program iptables řídí kód filtrování síťových paketů v jádře Linuxu. Funkce iptables se používá k nastavení, údržbě a kontrole tabulek pravidel filtrování paketů IP v jádře Linuxu. Příspěvek pojednává o nejčastějších problémech s iptables a o tom, jak je vyřešit.
Pravidla iptables se po restartu nenačtou
jste nastavili a uložili pravidla brány firewall iptables a po restartu se stále nenačtou. Po restartu se pravidla iptables nenačtou a místo toho:
– Pravidla brány firewall je třeba znovu definovat, protože nová pravidla nebyla uložena/aplikována.
– Služba iptables musí být restartována v pořadí načtení pravidel.
odstraňování problémů
1. Ujistěte se, že je služba nastavena na spuštění při spouštění
1. Ověřte, zda byla služba nastavena tak, aby se spouštěla při spuštění:
# chkconfig iptables --list iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. Pokud je iptables vypnuto, povolte službu pro úrovně běhu 3-5
# chkconfig iptables on
2. Ujistěte se, že pravidla byla uložena na disku
1. Ověřte, že jsou nová pravidla uložena v /etc/sysconfig/iptables .
2. Pokud nebyla uložena, uložte aktuální pravidla po jejich nastavení jednou ze dvou níže uvedených metod:
a. Uložení pravidel pomocí příkazu služby iptables:
# service iptables save
b. Uložení výstupu příkazu níže do souboru /etc/sysconfig/iptables. Pravidla můžete také uložit tak, že je ručně zapíšete do souboru.
# iptables-save
3. Ujistěte se, že při bootování jsou načteny moduly iptables
1. Ověřte, že byl modul iptables načten ihned po spuštění.
Výstup RHEL 5 by měl vypadat nějak takto:
# lsmod | grep tables ip_tables 55457 1 iptable_filter ip6_tables 50177 1 ip6table_filter x_tables 50505 6 ipt_REJECT,xt_state,ip_tables,ip6t_REJECT,xt_tcpudp,ip6_tables
Výstup RHEL 6 by měl vypadat nějak takto:
# lsmod | grep table iptable_filter 2793 1 ip_tables 17831 1 iptable_filter ip6table_filter 2889 1 ip6_tables 19458 1 ip6table_filter
2. Pokud se modul nedaří načíst, odstraňte z konfigurace modprobe všechny blacklisty pro moduly iptables.
# grep -r iptables /etc/modprobe* /etc/modprobe.d/blacklist.conf:blacklist iptables /etc/modprobe.d/blacklist.conf:blacklist ip6tables
4. Zkontrolujte tabulky, zda nejsou prázdné nebo zda v nich nechybí pravidla
Níže je příklad prázdné nebo prázdné tabulky:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination
5. Ověřte, že se soubor pravidel po restartu nezměnil
# cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bkp # reboot # sdiff -s /etc/sysconfig/iptables /etc/sysconfig/iptables.bkp
6. Zkontrolujte, zda restartování služby iptables úspěšně načte pravidla
Zkontrolujte, zda je po spuštění vyžadováno spuštění ‚service iptables restart‘ a načte tabulky v pořádku.
# service iptables restart # service iptables statusCo způsobuje, že se iptables načtou pokaždé po restartu, i když je úplně vypnutýCo způsobí, že se iptables načte pokaždé po restartu, i když je úplně vypnutý