Beheben Sie den FTP-Zugriff von einem Linux-Client-PC mit aktivierter Firewall
Heute möchte ich meine persönlichen Erfahrungen mit dem FTP-Zugriff unter Linux teilen. Dank der neuen Betriebssysteme von Microsoft, die ich nicht alltagstauglich finde, bin ich vor einigen Jahren auf Linux umgestiegen. Ich betreibe einen FTP-Server in meinem Heimnetzwerk und konnte von meinem laufenden Client-PC aus nicht darauf zugreifen Linux mit Firewall-Regeln zum Blockieren eingehender Verbindungen, d. h. die INPUT-Richtlinie ist auf REJECT in. gesetzt iptables. So habe ich das Problem behoben.
Ich gehe davon aus, dass die OUTPUT-Richtlinie sowohl auf Client- als auch auf Server-Rechnern ACCEPT ist.
Lösung #1. Verwenden Sie das Kernel-Modul nf_conntrack_ftp
Mit dem Kernel-Modul nf_conntrack_ftp können Sie den Zugriff auf den erforderlichen Port für den FTP-Server bei jedem Verbindungsaufbau automatisch entsperren. Die einzige Voraussetzung für dieses Modul ist die folgende Zeile in Ihren iptables-Regeln (normalerweise /etc/iptables/iptables.rules) auf dem Client-PC:
$IPT -A INPUT -i eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT
Es gibt eth0 ist Ihr Netzwerkgerätename.
Als nächstes müssen Sie nf_conntrack_ftp laden, wenn es nicht geladen ist. Führen Sie den folgenden Befehl als Root auf dem Client-PC aus
# modprobe nf_conntrack_ftp
Wenn Ihr Server einen nicht standardmäßigen Port verwendet (anders als Port 21), verwenden Sie den folgenden Befehl:
# modprobe nf_conntrack_ftp ports=your_port
Dadurch wird eine automatische Verbindung mit allen erforderlichen Ports zwischen dem FTP-Server und Ihrer Client-Software hergestellt. Dies funktioniert, bis Sie Ihren PC neu starten.
Um diese Änderung dauerhaft zu machen, müssen Sie eine neue Textdatei erstellen, /etc/modules-load.d/conntrack_ftp.conf, und dieser Datei die folgende Zeile hinzufügen:
nf_conntrack_ftp
Bei einem nicht standardmäßigen Serverport müssen Sie eine zusätzliche Datei /etc/modprobe.d/conntrack_ftp.conf mit folgendem Inhalt erstellen:
Optionen nf_conntrack_ftp ports=
Dies sollte reichen.
Lösung #2. Verwenden Sie einen festen passiven Portbereich
Wenn Sie das Modul nf_conntrack_ftp nicht verwenden können, können Sie einen festen Portbereich für die FTP-Server-Software einstellen und auf dem Client-PC öffnen. Hier ist zum Beispiel, wie dies für die vsftpd-App gemacht werden kann.
- Fügen Sie in der Konfigurationsdatei von vsftpd, die normalerweise /etc/vsftpd.conf ist, die folgenden Zeilen hinzu:
pasv_min_port=5500. pasv_max_port=6500
Dies sollte serverseitig erfolgen. Danach sollten Sie vsftpd neu starten.
- Fügen Sie in Ihren iptables-Regeln (normalerweise /etc/iptables/iptables.rules) auf dem Client-PC die folgende Regel hinzu:
$IPT -A EINGANG -p tcp -s
--dport 5500:6500 -j AKZEPTIEREN - Wenden Sie iptables-Regeln wie folgt an:
# iptables-restore < /etc/iptables/iptables.rules
Das ist es.