Warum werde ich aus einer FTP-Sitzung ausgeschlossen, wenn ich einen Befehl ausführe?


12

Warum werde ich aus einer FTP-Sitzung ausgeschlossen, wenn ich einen Befehl ausführe? Es scheint, dass, sobald ich mich erfolgreich bei einem Server angemeldet habe, nach dem Ausführen eines Befehls wie "ls" Folgendes angezeigt wird (ich habe den Fehlerteil in die "[ERROR]" - Tags eingeschlossen):

allen92@allen92-VirtualBox:~/Videos$ ftp -n ftp.FreeBSD.org
Connected to ftp.FreeBSD.org.
220 beastie.tdk.net FTP server (Version 6.00LS) ready.
ftp> user
(username) anonymous
331 Guest login ok, send your email address as password.
Password: 
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
[ERROR]
421 Service not available, remote server has closed connection
[ERROR]
ftp> 

Dies scheint auf jedem entfernten FTP-Server zu passieren. Alles funktioniert einwandfrei, wenn ich mich auf dem lokalen Computer anmelde und FTP-Befehle ausführe. Wenn der Fehler "421" tatsächlich ein allgemeiner Fehler ist, gibt es eine Möglichkeit, die Ursache des Problems herauszufinden? Hinweise hierzu wären willkommen. Ich konnte zu diesem speziellen Thema keine Unterstützung finden . Wenn Sie ein ähnliches Problem haben, teilen Sie uns bitte Ihre Gedanken mit.

HINWEIS: Ich habe VSFTPD installiert.

Antworten:


13

Höchstwahrscheinlich befindet sich zwischen Ihnen und den Servern eine NAT-Firewall, die das Symptom anzeigt. (NAT-Firewalls verstecken ein ganzes Netzwerk hinter einer einzigen IP-Nummer).

Das Problem ist, dass ftp die aus dem Befehl resultierenden Daten in einer neuen, separaten TCP / IP-Verbindung senden möchte und diese nicht durch die Firewall gehen kann, da sie vom Server zu Ihnen gehen muss und Sie sich hinter der Firewall verstecken, über die sie verfügt Keine Ahnung, dass die Daten für Ihre Maschine bestimmt sind. Bei der Entwicklung des FTP-Protokolls waren viele moderne Geräte wie der NAT-Router (der erforderlich wurde, wenn mehr Geräte als verfügbare IP-Adressen vorhanden waren) noch nicht erfunden worden.

Verwenden Sie den pasvBefehl (in Ihrem Client möglicherweise als etwas anderes bezeichnet), um zu einer passiven Verbindung zu wechseln, über die Datenverbindungen von Ihnen zum Server hergestellt werden.

Weitere Informationen finden Sie unter http://slacksite.com/other/ftp.html .


Danke vielmals. Im Fall von VSFTPD lautet der Befehl zum Aufrufen des passiven Modus "passiv". Das scheint jetzt zu funktionieren. Ich denke, diese ganze Situation hat damit zu tun, dass ich die Linux-Installation auf einer virtuellen Maschine und deren nicht so standardmäßigen Einstellungen ausführe. Ich werde herausfinden, wie der "passive" Modus standardmäßig aktiviert wird. Sobald ich herausfinde, werde ich für jeden Interessierten posten.
AllenD

Es ist nicht ungewöhnlich, dass das Standardnetzwerk für virtuelle Maschinen eine Art NAT ist, sodass der Computer nicht verfügbar ist. Wenn VirtualBox in Bridged geändert wird, wird es wie jeder andere Computer im lokalen Netzwerk angezeigt.
Thorbjørn Ravn Andersen

-1

Fügen Sie diese Zeile in /etc/vsftpd.conf hinzu oder aktivieren Sie sie

seccomp_sandbox = NO


Diese Antwort hat mein Problem gelöst, aber ich habe noch Fragen zu dieser undokumentierten Konfiguration.
A1rPun

Warum seccomp_sandbox=NOunter bestimmten Umständen die richtige Antwort gefunden wird, ist in der /etc/vsftpd.confDatei dokumentiert : `` `# seccomp_sanbox füge eine zusätzliche Sicherheitsebene hinzu, die die Anzahl der Syscalls begrenzt, die via vsftpd ausgeführt werden können. Es kann jedoch vorkommen, dass eine # Whitelist keinen legitimen Aufruf zulässt (in der Regel indirekt durch # Bibliotheken von Drittanbietern wie pam oder openssl ausgelöst) und der Prozess vom Kernel abgebrochen wird. # # Daher, wenn Ihr Server in normalen Situationen (Herunterladen, Hochladen von Dateien) # ausfällt,
kommentieren Sie die
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.