it-swarm.com.de

So konfigurieren Sie vsftpd für den passiven Modus

Immer wenn ich vsftpd auf centos installiere, richte ich nur die Gefängnisumgebung für die Benutzer ein und der Rest ist die Standardkonfiguration von vsftpd. Ich erstelle einen Benutzer und versuche, eine Verbindung mit dem FTP-Client filezila herzustellen, konnte jedoch keine Verbindung zum passiven Modus herstellen. Ich ändere immer transfer settings In den aktiven Modus, um erfolgreich eine Verbindung zum ftp server Herzustellen, sonst bekomme ich

 Error: Failed to retrieve directory listing

Gibt es also eine Möglichkeit, eine Direktive in der Datei vsftp.conf Zu ändern und eine Verbindung mit dem passiven Modus zum Server herzustellen?

52
Toqeer

Um den passiven Modus für vsftpd zu konfigurieren, müssen Sie einige Parameter in vsftpd.conf festlegen.

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

Dies aktiviert den passiven Modus und beschränkt ihn auf die Verwendung der elf Ports für Datenverbindungen. Dies ist nützlich, da Sie diese Ports in Ihrer Firewall öffnen müssen.

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

Wenn nach dem Testen alles funktioniert, speichern Sie den Status Ihrer Firewall mit

service iptables save

welches das /etc/sysconfig/iptables Datei.

Um dies unter CentOS 7 zu tun, müssen Sie die neue Firewall verwenden, nicht iptables:

Finden Sie Ihre Zone:

# firewall-cmd --get-active-zones
public
  interfaces: eth0

Meine Zone ist 'öffentlich', daher setze ich meine Zone auf öffentlich, füge den Portbereich hinzu und danach laden wir Folgendes neu:

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

Was passiert, wenn Sie eine Verbindung herstellen?

  • Ihr Client stellt über Port 21 eine Verbindung zum vsftpd-Server her.

  • Der Server antwortet dem Client und teilt ihm mit, zu welchem ​​Port aus dem oben angegebenen Bereich eine Verbindung hergestellt werden soll.

  • Der Client stellt eine Datenverbindung am angegebenen Port her und die Sitzung wird fortgesetzt.

Hier gibt es eine großartige Erklärung für die verschiedenen FTP Modi .

90
user9517

Um den passiven Modus zu aktivieren, legen Sie die folgenden Konfigurationsoptionen in Ihrer vsftp.conf fest:

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

Sie können natürlich den Start- und Endport ändern und sollten die xxx durch die öffentliche IP Ihres Servers ersetzen.

Außerdem sollten Sie den passiven Modus-Portbereich in Ihrer Firewall öffnen. Auf Centos können Sie die ip_conntrack_ftp Modul zur Verarbeitung von FTP-Verbindungen in Ihrer Firewall. Bearbeiten /etc/sysconfig/iptables-config und füge ip_conntrack_ftp zur Option IPTABLES_MODULES hinzu. Starten Sie anschließend iptables neu:

/sbin/service iptables restart
25
brain99

Neben der pasv_enable=YES, geben Sie einen Portbereich an, in dem VSFTP den PASV-Modus ausführen soll:

pasv_min_port=50000
pasv_max_port=50999
port_enable=YES

Vergessen Sie nicht, iptables so zu konfigurieren, dass die Paketübertragung an diesen Ports möglich ist:

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT
6
quanta

Normalerweise ist es nicht der FTP-Server vsftpd, sondern die Firewall wie iptable, die die Verwendung des passiven Modus verhindert (Blockierung der für die Datenübertragung erforderlichen TCP-Verbindung).

4
user130370

Ich musste die folgenden Schritte ausführen, damit der passive vsftp-Modus unter CentOS 8 funktioniert:

Aktivieren Sie den passiven Modus in vsftpd config /etc/vsftpd/vsftpd.config:

pasv_enable=Yes
pasv_min_port=50000
pasv_max_port=50999

Aktivieren Sie den FTP-Dienst in der Firewall:

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

Wie in einem anderen Beitrag erwähnt, müssen Sie das Kernelmodul "nf_conntrack_ftp" (was bereits in CentOS 8 der Fall war) laden und "nf_conntrack_helper" in den Kerneleinstellungen aktivieren :

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper

Fügen Sie diese Zeile zu /etc/sysctl.conf (oder /etc/sysctl.d/10-nf_conntrack_helper.conf wann /etc/sysctl.d/ ist vorhanden) für eine dauerhafte Neustarteinstellung:

net.netfilter.nf_conntrack_helper=1

Bei aktivierter Verbindungsspur müssen die passiven Ports in der lokalen Firewall nicht zusätzlich konfiguriert werden.

2
h18c