So konfigurieren Sie vsftpd für die Arbeit im passiven Modus

So konfigurieren Sie vsftpd für die Arbeit im passiven Modus

Wenn ich vsftpdauf installiere centos, richte ich nur die Jail-Umgebung für die Benutzer ein und der Rest ist die Standardkonfiguration von vsftpd. Ich erstelle einen Benutzer und versuche, mich mit dem FTP-Client zu verbinden filezila, aber ich kann mich nicht im passiven Modus verbinden. Ich wechsle immer transfer settingsin den aktiven Modus, um eine erfolgreiche Verbindung herzustellen, ftp serversonst bekomme ich

 Error: Failed to retrieve directory listing

Gibt es also eine Möglichkeit, eine beliebige Direktive in vsftp.confder Datei zu ändern, sodass wir im passiven Modus eine Verbindung zum Server herstellen können?

Antwort1

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

Dadurch wird der passive Modus aktiviert und auf die Verwendung der elf Ports für Datenverbindungen beschränkt. 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

/etc/sysconfig/iptableswodurch die Datei aktualisiert wird .

Dazu müssen Sie unter CentOS 7 die neue Firewall und nicht iptables verwenden:

Finden Sie Ihre Zone:

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

Meine Zone ist „öffentlich“, also stelle ich sie auf öffentlich, füge den Portbereich hinzu und danach laden wir 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, mit welchem ​​Port aus dem oben angegebenen Bereich eine Verbindung hergestellt werden soll.

  • Der Client stellt über den angegebenen Port eine Datenverbindung her und die Sitzung wird fortgesetzt.

Es gibt eine tolle Erklärung der verschiedenen FTPModiHier.

Antwort2

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.

Darüber hinaus sollten Sie den Portbereich für den passiven Modus in Ihrer Firewall öffnen. Unter CentOS können Sie das ip_conntrack_ftpModul laden, um FTP-Verbindungen in Ihrer Firewall zu handhaben. Bearbeiten Sie /etc/sysconfig/iptables-configip_conntrack_ftp und fügen Sie es der Option IPTABLES_MODULES hinzu. Starten Sie anschließend iptables neu:

/sbin/service iptables restart

Antwort3

Geben Sie daneben pasv_enable=YESeinen Portbereich an, in dem VSFTP im PASV-Modus ausgeführt wird:

pasv_min_port=50000
pasv_max_port=50999
pasv_enable=YES

Vergessen Sie nicht, iptables so zu konfigurieren, dass die Paketübertragung auf diesen Ports zulässig ist:

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

Antwort4

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

verwandte Informationen