Ich versuche, den Befehl „ls“ bei einer anonymen FTP-Sitzung zu verwenden. Beim Eintippen des Befehls „ls“ erhalte ich jedoch Folgendes:
200 PORT-Befehl erfolgreich. Erwägen Sie die Verwendung von PASV.
Und es bleibt so hängen (keine Rückkehr zur FTP-Eingabeaufforderung).
Ich habe die FTP-Sitzung neu gestartet und bin in den passiven Modus gewechselt (Zitat PASV), aber ich habe ein anderes Problem: „Keine Route zum Host“
Hast du irgendwelche Vorschläge ?
Antwort1
quote PASV
nichtWechseln Sie in den passiven Modus, wie Sie es sich vorstellen – „PASV“ ist ein sofortiger Befehl (der jeder einzelnen Übertragung vorausgeht) und kein permanenter Befehl zum Moduswechsel.
VielmehrKlientmuss angewiesen werden, PASV statt PORT zu verwenden, wenn ls
eine Dateiübertragung angefordert wird.
Mitinetutils-ftpverwenden Sie diepassive
Befehl, oder führen Sie den Client als pftp
oder aus ftp --passive
.
Antwort2
Ich erinnere mich, dieses Problem einmal gesehen zu haben, als ich vergessen hatte, Port 20 in der Firewall zu öffnen. Obwohl der normalerweise mit FTP verknüpfte Port 21 ist, werden Daten normalerweise über Port 20 gesendet.
Stellen Sie sicher, dass sowohl 20 als auch 21 auf dem Client und dem Server geöffnet sind, sodass jeder, der die Verbindung auf Port 20 initiiert, durchkommt.
Antwort3
Hast du irgendwelche Vorschläge ?
Ja, schmeiß FTP weg.
Ich weiß, das war wahrscheinlich nicht die Antwort, die Sie hören wollten, aber lassen Sie mich erklären, warum es tatsächlich notwendig ist, und dann sind Sie vielleicht eher geneigt, es zu tun. Ich werde Ihnen auch eine andere Alternative anbieten.
FTP wurde geschrieben, als das Internet noch als experimentelles Projekt galt. Die großen Universitäten und großen Organisationen hatten Verhaltensregeln, die von den angesehenen Institutionen durchgesetzt wurden, und so vertraute man den Leuten im Internet (das damals eigentlich ARPAnet hieß).
FTP wurde so konzipiert, dass der Client eine Dateianforderung über eine TCP-Verbindung sendet. Anschließend empfing der Server die Anforderung und initiierte eine separate TCP-Verbindung zum Client.
Dies funktionierte nicht mehr, als Clients anfingen, Firewalls zum Schutz ihrer Daten zu verwenden. So konnten FTP-Clients zwar ausgehende Verbindungen herstellen, eingehende Verbindungen wurden jedoch blockiert.
Eine Möglichkeit, dies zu umgehen, war der passive Modus: Der Client sendet eine Anforderung über TCP-Port 21, dann sagt der Server, dass er eine weitere Verbindung über einen zufälligen TCP-Port (z. B. 43728) wünscht, und dann stellt der Client eine zweite Verbindung über den angegebenen zufälligen TCP-Port (z. B. 43728) her.
Das funktionierte, wenn der Client eine Firewall hatte. Viele Leute lernten, dass der „passive Modus“ die FTP-Probleme behob. Was der „passive Modus“ jedoch tatsächlich behob, war nur dieses eine spezifische Problem. Wenn der Server eine Firewall hat, die eingehenden Datenverkehr nur auf bestimmten Portnummern zulässt, wie z. B. Port 21 für FTP, behebt selbst der „passive Modus“ nicht alles, was zum Funktionieren erforderlich ist.
Theoretisch könnte dies behoben werden, wenn die Firewall des FTP-Servers einen FTP-Proxy unterstützt, der den Datenverkehr überwacht und bei Bedarf einen anderen Port öffnet. Viele Leute halten die Einrichtung für etwas schwierig.
Da immer mehr Organisationen Wert auf Sicherheit und weniger auf FTP legten, merkten die Leute, dass FTP immer häufiger Probleme bereitete (was bedeutete, dass die Nutzung von immer mehr FTP-Servern von immer mehr Standorten aus, an denen Leute einen FTP-Client verwenden wollten, immer schwieriger wurde). FTP-Probleme begannen sich immer weiter auszubreiten.
Eine Zeit lang dachten die Leute, der „passive Modus“ sei ein magisches Allheilmittel, das die FTP-Probleme behebt. (Viele Leute verstanden nicht, warum FTP nicht mehr funktionierte. Sie lernten nur, dass der „passive Modus“ das seltsame FTP-Problem zu beheben schien, wenn FTP anfing, sich seltsam zu verhalten. Später wurde der Glaube, der „passive Modus“ sei ein magisches Allheilmittel, allgemein durch eine andere Ansicht ersetzt, nämlich, dass FTP einfach nicht mehr zu funktionieren scheint (bei weitem nicht mehr so gut wie früher). Auch wenn viele Leute nicht verstanden, warum FTP nicht mehr funktionierte, verstanden sie doch, dass das Leben scheinbar besser funktionierte, wenn sie eine andere Technik ausprobierten, nämlich einfach auf andere Protokolle umzusteigen. Als das Hochladen über HTTPS immer beliebter wurde, hörten die Leute einfach auf, FTP fast so oft zu verwenden.
Ihre beste Lösung besteht also darin, das alte FTP-Protokoll einfach aufzugeben, da es mit modernen Internet-Sicherheitsmaßnahmen nicht funktioniert. FTP wurde einfach nicht dafür entwickelt. NAT wird auch verwendet, um mehreren Geräten die Verwendung einer IP-Adresse zu ermöglichen.
NAT wird häufig von einer Firewall implementiert, kann aber auch andere Zwecke als nur Sicherheit haben (wie etwa die Erhöhung der Anzahl unterstützter Geräte). Was auch immer der Zweck der Verwendung von NAT sein mag, das Endergebnis ist, dass NAT die FTP-Verbindung grundsätzlich aus denselben Gründen unterbricht (da die Verbindung das gewünschte Gerät nicht erreichen kann). FTP wurde also auch nicht dafür entwickelt, NAT zu unterstützen.
Damals war FTP nur ein Versuch, die Dateiübertragung zum Laufen zu bringen. FTP hat sein ursprüngliches Ziel erreicht. Obwohl FTP also nicht gut mit dem heutigen Internetdesign funktionierte, war es nicht wirklich schlecht konzipiert. Sein Design war damals wirklich ein großer Erfolg. Es wurde nur für eine andere Art von Internet konzipiert als für eines, das die heute üblichen Technologien verwendet.
HTTP hat nicht so viele Probleme, da es eine TCP-Verbindung statt mehrerer verwendet. Das Gleiche gilt für viele sichere Alternativen: HTTPS, SFTP, FTPS, SCP.
Ich habe eine andere Alternative versprochen. Sie lautet: FTP zum Laufen bringen. Strategien umfassen: * Lassen Sie Ihre Firewall auf der Clientseite einen FTP-Proxy ausführen. * Lassen Sie die Firewall des FTP-Servers einen FTP-Proxy ausführen.
Das Problem besteht darin, dass Sie häufig keine Kontrolle über eine Seite der Verbindung haben. Eine dieser Optionen ist daher möglicherweise nicht für Sie geeignet.
Sie sollten vielleicht versuchen, Ihre Firewall ganz zu entfernen. Dies bringt jedoch wahrscheinlich Sicherheitsrisiken mit sich, die die meisten Leute als NICHT lohnenswert erachten. Verwerfen Sie stattdessen einfach die Idee, das alte FTP-Protokoll zu verwenden, das mit dem modernen Internet nicht so gut funktioniert, und besorgen Sie sich eine moderne Software, um Dateiübertragungen über HTTPS oder FTPS (oder SCP) zu verwenden. Dies funktioniert normalerweise besser mit Firewalls, funktioniert besser mit NAT und bietet Ihnen die Vorteile der Privatsphäre. (Sie wollten Ihr Passwort doch nicht wirklich unverschlüsselt über das Internet senden, oder?)
Sofern Sie nicht versuchen, auf öffentliche Dateien zuzugreifen, ist HTTPS oder HTTP möglicherweise der einfachere Weg.