iptables obslužný program ří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. Lze definovat několik různých tabulek. Každá tabulka obsahuje několik vestavěných řetězců a může také obsahovat uživatelem definované řetězce.
Na FTP serveru nejsou standardně pravidla iptables nastavena tak, aby umožňovala port 20/21 pro připojení FTP. Při pokusu o otevření připojení ftp dojde k následující chybě:
# ftp 192.168.10.10 ftp: connect: No route to host ftp>
Povolení portů FTP 20/21 v iptables
Přihlaste se k ftp serveru a postupujte podle níže uvedených kroků.
1. Upravte soubor /etc/sysconfig/iptables-config a přidejte „ip_conntrack_ftp „“ do sekce „IPTABLES_MODULES= “. Vstup by měl vypadat takto:
IPTABLES_MODULES="ip_conntrack_ftp"
2. Upravte soubor /etc/sysconfig/iptables a ujistěte se, že jsou přidána pravidla iptables pro port 20/21
# vi /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT ## rule related to FTP command (port 21) -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT ## rule related to FTP data (port 20) -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMITPoznámka: Pořadí pravidel iptables je důležité.
3. Restartujte službu iptables
# service iptables restart
4. Spusťte níže uvedený příkaz a zkontrolujte, zda jsou načteny ftp moduly nebo ne.
# lsmod | grep -i ftp
Příklad výstupu:
# lsmod | grep -i ftp nf_conntrack_ftp 12913 0 nf_conntrack 79357 3 nf_conntrack_ftp,nf_conntrack_ipv4,xt_state
5. Spusťte níže uvedený příkaz a zkontrolujte, zda jsou povolena pravidla iptables související s porty ftp 20 a 21.
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
6. Ověřte, zda můžete úspěšně ftp z klienta na ftp server.