Die iptables Dienstprogramm steuert den Filtercode für Netzwerkpakete im Linux-Kernel. Die Funktion iptables wird verwendet, um die Tabellen der IP-Paketfilterregeln im Linux-Kernel einzurichten, zu verwalten und zu überprüfen. Es können mehrere verschiedene Tabellen definiert werden. Jede Tabelle enthält eine Reihe von eingebauten Ketten und kann auch benutzerdefinierte Ketten enthalten.
Auf dem FTP-Server sind die iptables-Regeln standardmäßig nicht so eingestellt, dass Port 20/21 für FTP-Verbindungen zugelassen werden. Der Versuch, eine FTP-Verbindung zu öffnen, führt zu folgendem Fehler:
# ftp 192.168.10.10 ftp: connect: No route to host ftp>
FTP-Ports 20/21 in iptables zulassen
Melden Sie sich beim FTP-Server an und befolgen Sie die unten angegebenen Schritte.
1. Bearbeiten Sie die Datei /etc/sysconfig/iptables-config und fügen Sie „ip_conntrack_ftp hinzu „“ Modul zum Abschnitt „IPTABLES_MODULES= “. Der Eintrag sollte folgendermaßen aussehen:
IPTABLES_MODULES="ip_conntrack_ftp"
2. Bearbeiten Sie die Datei /etc/sysconfig/iptables und stellen Sie sicher, dass iptables-Regeln für Port 20/21 hinzugefügt wurden
# 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 COMMITHinweis: Die Reihenfolge der iptables-Regeln ist wichtig.
3. Starten Sie den iptables-Dienst neu
# service iptables restart
4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob FTP-Module geladen sind oder nicht.
# lsmod | grep -i ftp
Beispielausgabe:
# lsmod | grep -i ftp nf_conntrack_ftp 12913 0 nf_conntrack 79357 3 nf_conntrack_ftp,nf_conntrack_ipv4,xt_state
5. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die iptables-Regeln für FTP-Port 20 und Port 21 aktiviert sind oder nicht.
# 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. Prüfen Sie, ob Sie erfolgreich vom Client zum FTP-Server ftp können.