Frage Welche Firewall-Ports muss ich öffnen, wenn ich FTPS verwende?


Ich muss auf der Website eines Herstellers auf einen FTPS-Server (vsftpd) zugreifen. Der Anbieter hat eine Firewall vor dem FTP-Server. Ich habe eine Firewall vor meinem FTPS-Client.

Ich verstehe, dass die Ports 990, 991 und vielleicht 989 für den Kontrollverkehr geöffnet werden müssen.

Ich habe ein paar Fragen:

  1. Wenn diese Ports aus der Firewall-Perspektive des Anbieters betrachtet werden, sollten diese Ports sowohl für eingehenden als auch für ausgehenden Verkehr geöffnet werden?
  2. Was ist mit Ports für den DATA-Kanal?
  3. Muss ich alle Ports über 1000 öffnen?
  4. Soll ich es sowohl für eingehenden als auch für ausgehenden Datenverkehr tun?

29
2018-05-21 15:18


Ursprung




Antworten:


Mein Verständnis von FTP über SSL (ftps) ist, dass es nicht gut mit Firewalls und NAT funktioniert. In einer normalen FTP-Sitzung werden die Informationen über Datenverbindungen von der Firewall gelesen und für NAT geändert, damit die Firewall die erforderlichen Ports dynamisch öffnet. Wenn diese Informationen durch SSL gesichert werden, kann die Firewall sie nicht lesen oder ändern.

Die Verwendung von SFTP oder scp erleichtert dem Netzwerkadministrator die Arbeit - 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 und ob es statisches NAT oder dynamisches NAT ist oder nicht. Wenn Ihr Clientcomputer über eine statische Adresse verfügt oder statisch mit NAT belegt ist, müssen Sie möglicherweise keine Firewalländerungen vornehmen, vorausgesetzt, Sie lassen den gesamten ausgehenden Datenverkehr zu, und der Server arbeitet nur im passiven Modus (PASV).

Um genau zu wissen, welche Ports Sie öffnen müssen, müssen Sie entweder:

a) Sprechen Sie mit dem Anbieter, um Informationen darüber zu erhalten, wie das System konfiguriert wurde.

b) Verwenden Sie einen Protokollanalysator, z. B. tcpdump oder wireshark, um den Datenverkehr sowohl von außerhalb der Firewall als auch innerhalb Ihrer Firewall zu überprüfen

Sie müssen herausfinden, welcher Port die Steuerverbindung ist. Sie listen 3 auf, was mir seltsam vorkommt. Vorausgesetzt, der Server funktioniert nur im PASV-Modus (passiv), müssen Sie herausfinden, wie der Server für zugewiesene DATA-Ports konfiguriert ist. Haben sie den DATA-Kanal an 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.


16
2018-05-21 20:28



passiver Modus FTPS würde einen Kontrollport über Port # 1024 verwenden und würde daher mit einer Firewall besser funktionieren als nicht passiv. Der Client teilt Port 21 mit, welcher oberer Port zu öffnen ist, und Sie können den Client so konfigurieren, dass er sagt "Control ist auf Port 2000 oder 2001" und dann öffnet der Server Outbound Port 2000 oder 2001. Die meisten FTP-Clients unterstützen die Definition eines bestimmten Bereichs von Ports für "control" aktiviert zu sein und das macht Firewall-Definitionen einfach. - djangofan


Ich glaube, die Ports um 990 waren für implizites SSL, was eine alte, nicht standardisierte Art war, FTP / SSL zu machen. Der "richtige" Weg ist heutzutage explizites SSL, was bedeutet, dass Sie immer noch auf Port 21 verbinden und dann SSL aushandeln, bevor Sie Ihre Goodies senden. Um Verbindungen über eine Firewall zu unterstützen, müssen Sie den PASV-Modus verwenden und die zu verwendenden Datenports fest festlegen.

Ich glaube, dass Sie mindestens einen Port pro Datenverbindung benötigen, 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 Sachen, die SSL unterstützen):

pasv_min_port=21000

pasv_max_port=21010

Auf meiner Firewall habe ich eine öffentliche statische IP mit 1 zu 1 / statischem NAT zur internen IP und nur tcp Ports 21, 21000-21010 geöffnet.


21
2018-06-07 08:29





Ich weiß, dass dies ein extrem alter Thread ist, aber ..

Bitte beachten Sie, dass SFTP völlig anders ist als FTPS. (SSH vs SSL)

FTPS wird in 2 Richtungen bewertet. Explizit und implizit. Explizit ist weniger sicher, da nach dem ersten Handshake die Verschlüsselung bei Datenübertragungen übersprungen wird [wenn die Datenverschlüsselung beibehalten wird, ist sie serverseitig mit PROT P konfigurierbar], während das Implizit 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 automatisch auf 989 für die Datenübertragung umgeschaltet, wenn nicht anders konfiguriert). Während Port 21 allgemein als EXPLICIT FTPS und 990 als IMPLICIT FTPS akzeptiert wird, wird in Wirklichkeit der Port, den Sie konfigurieren werden, außer 990/989, zu EXPLICIT FTPS führen, während NUR 990/989 als IMPLICIT FTPS akzeptiert werden.

Also, um deine Frage zu beantworten: - Abhängig von der Konfiguration des FTPS-Servers müssen Sie Port 21 oder 990/989 öffnen. Um jedoch sicher zu sein, sollten Sie sich an den FTPS Server Admin wenden und nach dem Weg fragen. Beachten Sie auch, dass Sie für den passiven Modus, wie bei jeder anderen FTP-Software, zusätzliche Ports (TCP / UDP) normalerweise aus dem Bereich 64000-65000 öffnen müssen.


6
2018-03-20 11:49





Im Grunde genommen ist ftps fast nutzlos, weil Sie Firewall-Administratoren peinliche Anfragen stellen müssen. Der Ratschlag, Ports auf 10 zu beschränken, ist gut. Viel mehr wird es erbärmlich.

Sftp ist in der Theorie viel besser. Aber Sie brauchen einen brauchbaren sftp-Server, z.B. eine, die Clients auf ihr eigenes Home-Verzeichnis beschränkt.

Berücksichtigen Sie je nach Anwendung HTTPS. Ein Datei-Upload ist wirklich einfach und natürlich auch ein Download. Wenn Sie das FTP trotzdem scripten, wird es wahrscheinlich einfacher, einen HTTPS-Datei-Upload zu erstellen.

Automatisiertes FTP ist ein Zeichen für ein Designproblem. Mir ist das aufgefallen, als ich mich mit insgesamt etwa einem Dutzend Anbietern befasste, die einen Ort benötigten, an dem ich automatisiertes FTP (für SEHR wichtige Dinge) ausführte, und Dutzende von Kunden mit dem gleichen Geschäft zu tun hatten (ein Konstruktionsfehler für ungefähr 20 verschiedene Anwendungen, die ich erlebt habe). Es war einfach, die meisten App-Leute davon zu überzeugen, HTTPS zu verwenden (normalerweise bei der Erwähnung sagten sie: "Moment mal, es gibt keinen Grund, warum wir sie nicht einfach mit HTTPS von dem Webserver bekommen, auf dem wir ihnen bereits Daten bereitstellen?" ), außer ein paar, die Antworten wie "nun, wir haben diese Skripte, die zu funktionieren scheinen, und niemand in unserem Team ist wirklich gut mit Skripten, so dass wir wirklich keine Änderungen vornehmen können" (ein Team von 5-10 Programmierer, vorgeben, nicht zu verstehen, dass sie es in einer Sprache ihrer Wahl schreiben können, weil sie nicht wissen, wie man ein triviales Programm von Grund auf neu schreibt.


2
2018-06-29 05:14





Der Anbieter kann möglicherweise einen schmalen Portbereich für die Datenverbindungsports konfigurieren, falls dies nicht bereits 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.


1
2018-05-21 15:41





Port 22 ist Standard, da der SSH-Daemon 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 auf jedem beliebigen Port ausführen, aber es gibt einen Haken: Wenn Sie den FileZilla-Client verwenden, müssen Sie die URL der FTP-Site als ftps: //mysite.com: 8086 angeben anstatt den Port in das separate Port-Feld zu setzen, das der FileZilla-Client bereitstellt.

Für die explizite Option benötigen Sie nur EINEN Port: 22. Für die implizite Option müssen Sie nur die Firewall für den Steuerport öffnen: 8086 (die intern an Port 21 auf Ihrem filezilla Server weiterleitet).


0
2018-04-28 21:49



Die Frage wurde nach FTPS gestellt, nicht nach SFTP. - Michael Lang


Wenn ftps gleich ist wie sftp, dann müssen Sie nur auf Port 22 des Herstellers zugreifen können.

An Ihrem Ende sollten Sie Ihre Firewall so konfigurieren, dass Port 22 ausgeht und verwandter ankommender Verkehr. Dies ermöglicht die Kommunikation an jedem eingehenden Port bezüglich die ursprüngliche ausgehende Verbindung an Port 22.


-7
2018-05-21 15:24



SFTP ist nicht dasselbe wie ftps (codeguru.com/csharp/.net/net_general/internet/article.php/...). SFTP ist das Dateiübertragungsprotokoll, das mit SSH verwendet wird. FTPS ist FTP mit SSL, FTPS startet eine neue DATA-Verbindung an einem neuen zufälligen Port, was es schwierig macht, hinter Firewalls zu implementieren, aber ich kann die Firewall in dieser Situation nicht entfernen.
Dann bitte ich um Entschuldigung. Ich werde diesen Beitrag jedoch verlassen, für den Fall, dass andere die gleiche Verwirrung haben. - Brent
Es ist eine sehr häufige Verwirrung. Von der Firewall aus ist sftp viel einfacher zu benutzen, außer dass es auf einem Protokoll basiert, das für den Login-Zugriff gedacht ist. Negligent für unabhängige Sicherheitsgruppen, ohne signifikante unabhängige Validierung zuzulassen. Schwierig für Systemadministratoren, einen vernünftigen sftp-Server für nicht vertrauenswürdige Clients zu finden / zu konfigurieren. Jede Diskussion von sftp oder ftps muss das andere Protokoll erwähnen, da Verwirrung normalerweise SO ist. - carlito