bfren/ftps Container nicht erreichbar

Crash1601

Benutzer
Mitglied seit
27. Jan 2009
Beiträge
360
Punkte für Reaktionen
14
Punkte
24
Guten Morgen,

ich benötige für den Upload von Bild+Videodaten verschiedener Instar-Kameras einen FTPS Server, da diese kein SFTP oder FTPES unterstützen. DSM selbst kann leider nur FTPES (explizit). Ich möchte die Sache einfach halten und die Daten direkt in einen Synology Share laden. Eine Installation auf einem separaten Linux Server ist mir, für das was ich erreichen möchte, zu aufwändig und es wäre wieder sehr umständlich die Daten in die Synology Shares zu laden.

Auf der Suche nach einer smarten Lösung bin ich immer wieder auf das Docker Image hier gestoßen: https://registry.hub.docker.com/r/bfren/ftps/
Es scheint aktuell zu sein, wird gepflegt und ist auch ein wenig dokumentiert.

Nun habe ich das Image in verschiedenen Varianten und mit dem bridge Network, Hostnetwork und eigenem Network als Container gestartet und bekomme leider keinerlei Verbindung von z.B. dem WinSCP - auch finde ich mit einem Portscanner nicht mal die IP Adresse (meine NIC mit der ich gescannt habe ist in dem passenden Subnetz). Der Container selbst läuft und wäre betriebsbereit, wenn ich ihn erreichen würde.

Nutzt evtl. jemand dieses Image und kann mir einen Tipp geben was ich falsch mache? Oder gibt es ein anderes Image, welches besser funktioniert?


Hier ein Screenshot der aktuellen Testconfig:


docker1.PNG

docker2.PNG

Für einen Tipp wäre ich sehr dankbar, da ich aktuell nicht mehr weiter weiß und zu dem Image gibt es leider auch so gut wie keine Informationen - zumindest habe ich keine weiteren finden können, als auf der Dockerseite beschrieben ist.

Btw: Ob die Synology Firewall vor den Dockercontainer hängt oder nicht, weiss ich im moment nicht, habe sie aber trotzdem für den Test auf "Durchzug" geschaltet.
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.526
Punkte für Reaktionen
413
Punkte
103
Ist dir bewusste wie pasv FTP(S) funktioniert?
1. Client baut die Kontroll-Verbindung zum Server-Port 21 auf
2. Der Server teilt dem Client IP: PORT für die nächste DATA Verbindung mit
3. Der Client verwendet den vom Server erhaltenen IP: PORT und sendet daten.

An Deinem Screenshot ist zu erkennen, dass die lokalen Ports nicht identisch sind mit den Container-Ports. Die müssen passen, damit 1+ 3 überhaupt hinhaut.

Dann wäre da noch die Frage, ob der FTPS nur im LAN oder auch über WAN benutzt werden soll?
  • nur LAN -> FTPS_EXTERNAL_IP muss die IP der Syno sein
  • LAN + WAN -> FTPS_EXTERNAL_IP muss die WAN-IP sein, bei dynamisch wechselnder WAN-IP bietet sich hier FTPS_EXTERNAL_URI in Verbindung mit einem dyndns Namen an (keine Ahnung wie der exakte Wert aussehen muss. Ich benutze das Image nicht)
Das ist wichtig, damit 2) dem Client bei der IP: PORT Kombination die richtige IP mitteilen kann.

Bei WAN sollten natürlich noch die Portforwardings entsprechend im Router auf das NAS zeigen. Generell sollte die Syno-Firewall so konfiguriert sein, dass sie den Verkehr zum Controll- und die Data-Ports nicht verhindert.

Anmerkung1: IP: PORT ist überall natürlich ohne Leerzeichen, hier nur mit gepostet, da das Forum sonst ein Emoticon aus dem Doppelpunkt und dem P macht.

Anmerkung2: Port 990 ist mit im FTPS Kontext unbekannt - keine Ahnung warum das Image den brauchen sollte und wofür er genutzt werden sollte.

Anmerkung3: wenn dein Client älter ist, kann es passieren, dass Client und Server keinen Cipher für die TLS-Verschlüsselung aushandeln können... So einen Fall hatte ich gerade tatsächlich beruflich. Hier kann ich dir allerdings nicht mehr zu sagen, da mein genutzter FTPS Server ein Managed Service von einem Cloud Anbieter ist der keinerlei Einstellungen erlaubt. Keine Ahnung was es da sonst noch gibt und wie da was zu konfigurieren wäre.
 
Zuletzt bearbeitet:

Crash1601

Benutzer
Mitglied seit
27. Jan 2009
Beiträge
360
Punkte für Reaktionen
14
Punkte
24
Hi,

wie es normalerweise funktioniert ist mir "eigentlich" bewusst, nur die Funktionsweise mit dem FTPS Image ist mir nicht so ganz klar bzw. wie das mit dem Docker Network abläuft.

Die Ports hatte ich auch schon vollständig zugeordnet (ohne die automatische Zuweisung), auch mit der automatischen Zuweisung müsste es doch eigentlich funktionieren. Hier muss nur daran gedacht werden, die lokale Ports zu verwenden. Das Hauptproblem scheint zu sein, dass wenn ich das Host-Netzwerk nutze, dass ich keine Ports definieren kann.

Ich habe die Container gelöscht und nun einmal so angelegt, wie es meiner Meinung erstmal korrekt wäre. Hier mal ein paar Screenshot - das ist besser als eine lange Erklärung :)

1) Host Netzwerk nutzen

docker3.PNG
2) Ports

docker4.PNG

3) Übersicht (IP ist die der Synology - der Zugriff soll erstmal lokal funktionieren)
docker5.PNG

4) WinSCP 5.19.2 (Btw: Ich habe hier auch schon alle möglichen Verbindungsvarianten getestet aus Verzweiflung xD)
docker6.PNG

5) Fehlermeldung

docker7.PNG

6) Docker Protokoll - Loginversuch von dem WinSCP Endgerät

docker8.PNG

7) Dockerconfig

docker9.PNG

docker10.PNG


Mein Eindruck ist, dass das mit dem HostNetzwerk nicht funktioniert bzw. dass dies mit dem Image nicht geht. Wenn ich ein bridge Network nehmen, habe ich zwar korrekte Network Settings im Container, aber kann nicht mal einen fehlerhaften Zugriff, welcher geloggt wird, auf den Container absetzen.

Ich stocher gerade im Nebel und steh vermutlich gewaltig auf dem Schlauch :-D Ich hatte vor längerem einige Dinge via Dockercontainer laufen, welche auch umfangreicher in der Konfiguration waren, und hatte auch keine Probleme, aber das hier möchte nicht klappen.

Was müsste ich denn tun, damit ich von meinem normalen Netz 192.168.178.0/24 in das Docker Netzwerk (z.B. 172.17.0.0/16) geroutet werde? Evtl. ist das die Lösung, aber bei mir klemmt gerade ein wenig das Verständnis wie ich in ein Docker Netzwerk route. An den Schnittstellen kann ich selbst nicht viel machen und als separate NIC taucht das ganze auch nicht auf. :unsure:

Btw: Wenn der Ansatz mit dem HostNetzwerk richtig ist, ich aber keine Ports zur Verfügung habe (so wirkte es zumindest in der GUI), dann kann ich auch keine hinzufügen, weil scheinbar keine benötigten Umgebungsvariablen zur Verfügung stehen.

Vielen Dank im Voraus!
 

Anhänge

  • docker4.PNG
    docker4.PNG
    30,5 KB · Aufrufe: 1
  • docker3.PNG
    docker3.PNG
    16,7 KB · Aufrufe: 1
Zuletzt bearbeitet:

Crash1601

Benutzer
Mitglied seit
27. Jan 2009
Beiträge
360
Punkte für Reaktionen
14
Punkte
24
Ich verstehe es gerade nicht mehr - an der Konfiguration habe ich nichts gegenüber dem was ich eben gerade postet habe geändert und die Verbindung funktioniert mit der EXPLIZITEN TLS Verbindung.

Es ist ja schön das es nun funktioniert, aber ich möchte eine implizite Verschlüsselung :cautious:


docker11.PNGdocker12.PNG


Entweder muss noch etwas anders konfiguriert werden oder es handelt sich hierbei auch um ein FTPES :-/
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.526
Punkte für Reaktionen
413
Punkte
103
Host-Netzwerk = der Container (= nichts anderes als ein isolierter Prozess auf dem Host!) läuft im selben Netzwerk-Namespace wie der Host und damit unmittelbar auf den selben Host-Interfaces. Damit unterscheidet sich der Container netzwerk-technisch nicht von anderen nicht isolierten Prozessen auf dem Host. Natürlich bindet so ein Container dann auch alle Ports direkt auf dem Host-Interface und braucht kein Portmapping mehr.

Für LAN-Zugriff sollte die Kombination aus Host-Netzwerk und der FTPS_EXTERNAL_IP von Screenshot 3 korrekt sein. Ich würde erwarten, dass ein Client mit PASV TLS Verbindung im Netzwerk so darauf zugreifen kann.
 

Crash1601

Benutzer
Mitglied seit
27. Jan 2009
Beiträge
360
Punkte für Reaktionen
14
Punkte
24
Das vermute ich auch :-( Wundert mich ein wenig, weil in einem Thread (meine in der offiziellen Syno Community) ging es genau um die Problematik und als Lösung wurde dieses Image genannt. Aber nun ist wenigstens das Rätsel gelöst und der Tipp bzgl. externer IP war sehr hilfreich - hier hatte ich einen Denkfehler.

Danke für deine Hilfe und Erklärung!

Dann werde ich mal nach einem anderen Image suchen :)
 
Zuletzt bearbeitet von einem Moderator:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat