FTP-Download-Probleme mit iptables – Verbindung über Port 21 ist zulässig, aber „Netzwerk ist nicht erreichbar“

FTP-Download-Probleme mit iptables – Verbindung über Port 21 ist zulässig, aber „Netzwerk ist nicht erreichbar“

Ich versuche, eine Verbindung zu einer FTP-Site herzustellen, aber beispielsweise mit wget:

Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gcrypt/gnutls ... done.
==> SIZE v3.2 ... done.
==> PASV ... couldn't connect to 217.69.76.55 port 40258: Network is unreachable

Wenn ich iptables deaktiviere, funktioniert es, also liegt das offensichtlich am Problem. Dennoch bin ich sicher, dass ich alles richtig eingerichtet habe:

# Accept related, established...
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# ftp/http(s) clients
-A OUTPUT -p tcp -m multiport --dports 21,80,443,8080 -j ACCEPT
-A OUTPUT -p udp --dport 21 -j ACCEPT

Was ist falsch?

Antwort1

Iptables muss einige Kernelmodule laden, damit „RELATED, ESTABLISHED“ funktioniert. Wenn Ihre HTTP-Clients in Ordnung sind, verfügen Sie offensichtlich über einige davon.

 > lsmod | grep conntrack
 nf_conntrack_ipv4      20258  6 
 nf_defrag_ipv4         12702  1 nf_conntrack_ipv4
 xt_conntrack           12760  6 
 nf_conntrack           99996  2 xt_conntrack,nf_conntrack_ipv4

Der Treiber für FTP nf_conntrack_ftpist jedoch zusätzlich und wird im Gegensatz zu einem Geräte- oder Dateisystemtreiber nicht automatisch vom Kernel geladen.

 > modprobe nf_conntrack_ftp

Sollte funktionieren. Soweit ich weiß, gibt es keine distributionsübergreifende Methode zum automatischen Laden von Modulen beim Booten, aber unter Fedora können Sie Folgendes hinzufügen:

IPTABLES_MODULES="nf_conntrack_ftp"

zu /etc/sysconfig/iptables-config. Informationen zu anderen Systemen, die systemddiese Datei verwenden, aber nicht haben, finden Sie unter man modules-load.d.

verwandte Informationen