it-swarm.com.de

Welche Firewall-Ports muss ich bei Verwendung von FTPS öffnen?

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

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

Ich habe ein paar Fragen:

  1. Sollten diese Ports aus Sicht der Firewall des Anbieters sowohl für eingehenden als auch für ausgehenden Datenverkehr geöffnet werden?
  2. Was ist mit Ports für den DATA-Kanal?
  3. Muss ich alle Ports über 1000 öffnen?
  4. Sollte ich dies sowohl für eingehenden als auch für ausgehenden Verkehr tun?
33
user3293

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 öffnet. Wenn diese Informationen durch SSL gesichert sind kann die Firewall es 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 und ob sie statisch ist NAT oder dynamisches NAT. Wenn Ihr Client-Computer statisch ist Adresse oder statisch NATed, 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 Einzelheiten zur Konfiguration des Systems zu erfahren.

b) Verwenden Sie einen Protokollanalysator wie tcpdump oder wireshark, um den Datenverkehr sowohl von außerhalb Ihrer Firewall als auch innerhalb Ihrer Firewall zu untersuchen

Sie müssen herausfinden, welcher Port die Steuerverbindung ist. Sie listen 3 auf, was mir seltsam erscheint. Angenommen, der Server funktioniert 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.

19
pcapademic

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 über Port 21 herstellen 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 einstellen.

Ich glaube, Sie benötigen mindestens einen Port pro Datenverbindung, die Sie unterstützen möchten. Wenn es nur Sie sind, können Sie wahrscheinlich nur ein paar zusätzliche Ports öffnen. Speziell für mich verwende ich 21000-21010.

In vsftpd.conf habe ich diese beiden Zeilen (zusammen mit all den anderen Dingen, die SSL unterstützen):

pasv_min_port=21000

pasv_max_port=21010

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

29
David

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

Bitte beachten Sie, dass sich SFTP vollständig von FTPS unterscheidet. (SSH gegen SSL)

FTPS funktioniert 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 beibehalten wird, ist sie auf der Serverseite mit PROT P konfigurierbar], während das 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 automatisch zur Datenübertragung auf 989 umgeschaltet, wenn nicht anders konfiguriert). Während Port 21 allgemein als EXPLICIT FTPS und 990 als IMPLICIT FTPS akzeptiert wird, führt in Wirklichkeit jeder Port, den Sie konfigurieren, 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. Um jedoch sicherzugehen, sollten Sie sich an den FTPS Server-Administrator wenden und nach dem Weg fragen. Beachten Sie auch, dass Sie für den passiven Modus wie für jede andere FTP-Software zusätzliche Ports (TCP/UDP) öffnen müssen, die normalerweise zwischen 64000 und 65000 liegen.

11
Marin

Grundsätzlich ist ftps fast nutzlos, da Sie peinliche Anfragen an Firewall-Administratoren stellen müssen. Der Rat, die Ports auf 10 zu beschränken, ist gut. Viel mehr wird es erbärmlich.

sftp ist theoretisch viel besser. Sie benötigen jedoch einen funktionsfähigen SFTP-Server, z. eine, die Clients auf ihr eigenes Home-Verzeichnis beschränkt.

Berücksichtigen Sie je nach Anwendung HTTPS. Ein Datei-Upload ist wirklich einfach und ein Download natürlich auch. Wenn Sie ohnehin Skripte für FTP erstellen, wird es wahrscheinlich insgesamt einfacher sein, einen HTTPS-Datei-Upload zu skripten.

Automatisiertes FTP ist ein Zeichen für ein Designproblem. Ich bemerkte dies, als ich mich mit insgesamt etwa einem Dutzend Anbietern befasste, die einen Ort "benötigten", an dem ich für automatisiertes FTP arbeitete (für SEHR wichtige Dinge), und als ich Dutzende von Kunden dazu brachte, dies mit demselben Geschäft zu tun (ein Designfehler für ungefähr) 20 verschiedene Verwendungen, die ich gesehen habe). Es war einfach, die meisten App-Leute davon zu überzeugen, HTTPS zu verwenden (normalerweise sagten sie bei der Erwähnung: "Warten Sie, es gibt keinen Grund, warum sie es nicht einfach mit HTTPS von dem Webserver bekommen, auf dem wir ihnen bereits Daten liefern?" ), mit Ausnahme einiger weniger, die Antworten gaben wie "Nun, wir haben bereits diese Skripte, die zu funktionieren scheinen, und niemand in unserem Team ist wirklich gut mit Skripten, so dass wir keine wirklichen Änderungen vornehmen können" (ein Team von 5-10 Programmierern, 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
carlito

Der Hersteller kann möglicherweise einen engen Portbereich für die DATA-Verbindungsports konfigurieren, sofern dies noch nicht geschehen ist. Dann können Sie denselben Bereich für die Hosts öffnen, die einen solchen Zugriff benötigen. Der PASV-Modus sollte verwendet werden.

1
Chris W. Rea

Port 22 ist Standard, da der SSH-Daemon unter UNIX über ein SFTP-Modul verfügt, mit dem Sie grundsätzlich einen expliziten SFTP-Server erstellen können. Wenn Sie einen impliziten FTP-Server mit Filezilla ausführen möchten, können Sie ihn an jedem gewünschten Port ausführen. Es gibt jedoch 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 Portfeld zu setzen, 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 geöffnet sein: 8086 (der intern an Port 21 auf Ihrem Filezilla-Server weitergeleitet wird).

0
djangofan