Mein Verständnis von FTP über SSL (ftps) ist, dass es mit Firewalls und NAT nicht gut funktioniert. In einer normalen FTP-Sitzung werden die Informationen zu Datenverbindungen von der Firewall gelesen und für NAT geändert, damit die Firewall die erforderlichen Ports dynamisch öffnen kann. Wenn diese Informationen durch SSL geschützt sind, kann die Firewall sie nicht lesen oder ändern.
Die Verwendung von SFTP oder scp erleichtert die Arbeit des Netzwerkadministrators erheblich - alles geschieht auf dem Port 22 des Servers, und die Transaktion folgt dem normalen Client / Server-Modell.
Eine Sache, die nicht erwähnt wird, ist, ob Ihre Firewall NAT ausführt oder nicht und ob es sich um statisches NAT oder dynamisches NAT handelt. Wenn Ihr Clientcomputer eine statische Adresse hat oder sich in einem statischen NAT befindet, müssen Sie möglicherweise keine Firewall-Änderungen vornehmen, sofern Sie den gesamten ausgehenden Datenverkehr zulassen und der Server nur im passiven Modus (PASV) arbeitet.
Um genau zu wissen, welche Ports Sie öffnen müssen, müssen Sie entweder:
a) Sprechen Sie mit dem Anbieter, um Einzelheiten zur Konfiguration seines Systems zu erhalten.
b) Verwenden Sie einen Protokollanalysator wie tcpdump oder wireshark, um den Datenverkehr sowohl außerhalb Ihrer Firewall als auch innerhalb Ihrer Firewall zu überwachen
Sie müssen herausfinden, welcher Port die Steuerverbindung ist. Sie listen 3 auf, was mir merkwürdig vorkommt. Angenommen, der Server arbeitet nur im PASV-Modus (passiv), müssen Sie herausfinden, wie der Server für die Zuweisung von DATA-Ports konfiguriert ist. Haben sie den DATA-Kanal für einen einzelnen eingehenden Port gesperrt? Haben sie den DATA-Kanal auf einen kleinen Bereich oder Ports beschränkt?
Mit diesen Antworten können Sie mit der Konfiguration Ihrer Firewall beginnen.
Ich glaube, die Ports um 990 waren für implizites SSL, was eine alte, nicht standardmäßige Methode für FTP / SSL war. Der "richtige" Weg ist heutzutage explizites SSL, was bedeutet, dass Sie immer noch eine Verbindung zu Port 21 herstellen und dann SSL aushandeln, bevor Sie Ihre Goodies senden. Um Verbindungen durch eine Firewall zu unterstützen, müssen Sie den PASV-Modus verwenden und die zu verwendenden Datenports fest einstellen.
Ich glaube, Sie benötigen mindestens einen Port pro Datenverbindung, die Sie unterstützen möchten. Wenn es nur Sie sind, ist es wahrscheinlich in Ordnung, nur ein paar zusätzliche Ports zu öffnen. Speziell für mich verwende ich 21000-21010.
In vsftpd.conf habe ich diese zwei Zeilen (zusammen mit all den anderen Dingen, die SSL unterstützen):
Auf meiner Firewall habe ich eine öffentliche statische IP mit eins zu eins / statischem NAT zur internen IP und nur TCP-Ports 21, 21000-21010 geöffnet.
quelle
Ich weiß jedoch, dass dies ein extrem alter Thread ist.
Bitte beachten Sie, dass sich SFTP vollständig von FTPS unterscheidet. (SSH vs SSL)
FTPS-Arbeit auf zwei Arten. Explizit und implizit. Explicit ist weniger sicher, da nach dem ersten Handshake die Verschlüsselung während der Datenübertragung übersprungen wird [wenn die Datenverschlüsselung auf der Serverseite mit PROT P konfiguriert werden kann], während Implicit die Verschlüsselung der Daten auch nach dem Handshake beibehält. Der standardmäßige explizite FTPS-Port ist 21. Der standardmäßige implizite Port ist 990 (nach dem Handshake wird zur Datenübertragung automatisch auf 989 umgeschaltet, sofern nicht anders konfiguriert). Während Port 21 im Allgemeinen als EXPLICIT FTPS und 990 als IMPLICIT FTPS akzeptiert wird, führt in Wirklichkeit der von Ihnen konfigurierte Port mit Ausnahme von 990/989 zu EXPLICIT FTPS, während NUR 990/989 als IMPLICIT FTPS akzeptiert wird.
Um Ihre Frage zu beantworten: - Abhängig von der FTPS-Serverkonfiguration müssen Sie Port 21 oder 990/989 öffnen. Zur Sicherheit sollten Sie sich jedoch an den FTPS-Server-Administrator wenden und nach dem Weg fragen. Denken Sie auch daran, dass Sie im passiven Modus wie bei jeder anderen FTP-Software zusätzliche Ports (TCP / UDP) öffnen müssen, in der Regel zwischen 64000 und 65000.
quelle
Grundsätzlich ist ftps fast nutzlos, da Sie peinliche Anfragen an Firewall-Administratoren stellen müssen. Der Rat, Ports auf 10 zu beschränken, ist gut. Vielmehr wird es erbärmlich.
SFTP ist in der Theorie viel besser. Sie benötigen jedoch einen funktionsfähigen SFTP-Server, z. B. einen, der Clients auf ihr eigenes Basisverzeichnis beschränkt.
Berücksichtigen Sie je nach Anwendung HTTPS. Ein Datei-Upload ist sehr einfach und ein Download natürlich auch. Wenn Sie ohnehin FTP-Skripte erstellen, ist es wahrscheinlich insgesamt einfacher, ein Hochladen von HTTPS-Dateien per Skript durchzuführen.
Automatisches FTP ist ein Zeichen für ein Designproblem. Ich bemerkte dies, als ich mit insgesamt etwa einem Dutzend Anbietern zu tun hatte, die einen Ort 'benötigten', an dem ich automatisiertes FTP (für SEHR wichtige Dinge) betrieb, und als ich Dutzende von Kunden dazu veranlasste, dies mit demselben Shop zu tun (ein Designfehler für etwa 20 verschiedene Verwendungen, die ich gesehen habe). Es war einfach, die meisten App-Leute von der Verwendung von HTTPS zu überzeugen (normalerweise sagten sie bei der Erwähnung: "Warten Sie, es gibt keinen Grund, warum wir sie nicht einfach mit HTTPS von dem Webserver abrufen lassen, auf dem wir ihnen bereits Daten bereitstellen." ), mit Ausnahme einiger Antworten wie "Nun, wir haben bereits diese Skripte, die zu funktionieren scheinen, und niemand in unserem Team kann wirklich gut mit Skripten umgehen, so dass wir wirklich keine Änderungen vornehmen können" (ein Team von 5-10 Programmierern,
quelle
Der Anbieter kann möglicherweise einen engen Portbereich für die DATA-Verbindungsports konfigurieren, sofern dies noch nicht geschehen ist. Dann können Sie den gleichen Bereich an Ihrem Ende für die Hosts öffnen, die einen solchen Zugriff benötigen. Der PASV-Modus sollte verwendet werden.
quelle
Port 22 ist Standard, da der SSH-Dämon unter UNIX über ein SFTP-Modul verfügt, das Sie aktivieren können, um einen expliziten SFTP-Server zu erstellen. Wenn Sie einen impliziten FTP-Server mit Filezilla ausführen möchten, können Sie ihn an jedem gewünschten Port ausführen, aber es gibt einen Haken: Wenn Sie den FileZilla-Client verwenden, müssen Sie die FTP-Site-URL als ftps: //mysite.com: 8086 angeben anstatt den Port in das separate Portfeld zu stellen, das der FileZilla-Client bereitstellt.
Für die explizite Option benötigen Sie nur EINEN Port: 22. Für die implizite Option muss nur die Firewall für den Steuerport 8086 geöffnet sein (der intern an Port 21 auf Ihrem FileZilla-Server weiterleitet).
quelle
wenn ftps die gleiche wie SFTP , dann müssen Sie nur den Zugriff auf Port 22 auf der Hersteller-Website zu können.
Sie sollten Ihre Firewall so konfigurieren, dass Port 22 ausgehend und der damit verbundene eingehende Datenverkehr zugelassen wird . Dies ermöglicht die Kommunikation über jeden eingehenden Port, der mit der anfänglichen ausgehenden Verbindung über Port 22 zusammenhängt.
quelle