2u1c1d3
Goto Top

Mittels nginx alles über Port 443 routen

Hallo in diese Runde!

Folgender Aufbau verursacht mir gerade Kopfzerbrechen:
Client -> Subdomain -> Firewall -> Synology RS und das Ganze mit der Antwort der Syno wieder retour.
- Der Client greift über eine Subdomain auf eine DDNS-geroutete IP zu.
- Der einzige offene Port der Firewall ist HTTPS auf 443 <- und davon möchte / kann ich auch nicht abweichen.

Jetzt läuft auf der Syno aber einiges an Diensten. Diese verwenden im Regelfall verschiedene Ports. Damit ich auf diese verschiedenen Dienste über den HTTPS-Port zugreifen kann tue ich so, als hätte meine Subdomain Subdirectorys. Also ein SubDir für die Syno Drive (sub.meinedomain.de/drive) ein SubDir für den Kalender (sub.meinedomain.de/calendar).
Mittels nginx auf der Syno sage ich, dass die Anfrage nach dem SubDir "/drive" auf die Adresse "localhost:port" zu routen ist. Passt, läuft. Der User kommt von außen mit dem entsprechenden Subdirectory auf den passenden Port hinter der Firewall.
Problem: Das funktioniert anscheinend nur mit dem HTTP(S). Möchte ich die Möglichkeit schaffen, dass der User über das CalDAV- oder WebDAV-Protokoll mit einer Clientsoftware auf die Syno zugreift, führt das zu einer Bauchlandung.
Diese Bauchlandung sieht wie folgt aus:
Bei einem Zugriff via WebDAV routet er ordnungsgemäß auf die Syno und frägt, so wie es sich gehört, nach den Anmeldedaten des Users. Werden dies korrekt eingegeben, dann bekommt der User beim ersten Anmeldeversuch einen HTTP-Fehler "Multi-Status" und beim zweiten Versuch eine Fehlermeldung, dass das PW nicht richtig wäre. Diese beiden Fehlermeldungen kommen im Wechsel und auch nur, wenn man von extern, also über die öffentliche IP zugreift.
Bei einem Zugriff via CalDAV routet er ebenfalls ordnungsgemäß auf die Syno und sagt auch brav, dass er einen Kalender gefunden hätte. Nach Eingabe des PWs um auf den Kalender zuzugreifen bricht er ab und sagt, dass er keinen Kalender finden hätte können. Auch dieser Zugriff funktioniert aus dem internen Netz, also ohne Firewall.

Die Firewall blockiert anscheinend incoming und outgoing. Jetzt stehe ich etwas am Schlauch.
Ich bin der Meinung, dass meine Anfrage zwar richtig bei der Syno ankommt, die Syno aber ähnlich wie beim FTP-Mode auf anderen Ports antwortet. Diese werden dann natürlich gedroppt. Wie bekomme ich das wieder durch meinen nginx-Tunnel? Ich hab hier einfach mal drei relevante Auszüge aus meiner server...conf.
Und, um niemanden vor den Kopf zu stoßen und auch keine Urheberrechte zu verletzen: Ich bin im Bereich nginx absoluter Newbie! Das Grundgerüst und die Variablen habe ich vorgesetzt bekommen und sind nicht auf meinem Mist gewachsen!

   location /calendar/ {
       proxy_set_header        Host                $http_host;
       proxy_set_header        X-Real-IP           $remote_addr;
       proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
       proxy_set_header        X-Forwarded-Proto   $scheme;
       proxy_set_header        Upgrade             $http_upgrade;
       proxy_set_header        Connection          $connection_upgrade;
       proxy_intercept_errors  on;
       proxy_http_version      1.1;

       proxy_pass https://localhost:12345/;
    }
    location /caldav/ {
       proxy_set_header        Host                $http_host;
       proxy_set_header        X-Real-IP           $remote_addr;
       proxy_set_header        X-Forwarded-For     $remote_addr;

       proxy_pass https://localhost:5006/;
    }

    location /webdav/ {
       proxy_set_header        Host                $http_host;
       proxy_set_header        X-Real-IP           $remote_addr;
       proxy_set_header        X-Forwarded-For     $remote_addr;

       proxy_pass https://localhost:5006/;
    }

Content-Key: 4771896555

Url: https://administrator.de/contentid/4771896555

Printed on: April 28, 2024 at 05:04 o'clock

Member: it-fraggle
it-fraggle Nov 27, 2022 at 07:37:38 (UTC)
Goto Top
Ich bin der Meinung, dass meine Anfrage zwar richtig bei der Syno ankommt, die Syno aber ähnlich wie beim FTP-Mode auf anderen Ports antwortet. Diese werden dann natürlich gedroppt.
Was sagt denn Wireshark dazu?
Member: Lochkartenstanzer
Lochkartenstanzer Nov 27, 2022 at 20:13:04 (UTC)
Goto Top
Moin,

Warum nutzt Du nicht einfach ein SSL-VPN über diesen Port?

lks
Member: 2U1C1D3
2U1C1D3 Nov 28, 2022 at 05:17:49 (UTC)
Goto Top
Zitat von @it-fraggle:

Was sagt denn Wireshark dazu?

Wireshark habe ich nicht innerhalb dieses Netzwerks zur Verfügung. Ich habe mal von der Syno aus tcpdump laufen lassen. Die Ausgaben sind mir allerdings noch nicht so ganz schlüssig...
Bevor ich WS auf der Syno installiere und verwende, möchte ich mir erst mal das OK dazu einholen. Nicht dass es Ärger gibt!
Member: 2U1C1D3
2U1C1D3 Nov 28, 2022 at 05:23:01 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Moin,
Warum nutzt Du nicht einfach ein SSL-VPN über diesen Port?
lks

Die Verwendung von VPN scheidet mE aus. Zum Einen hab ich dann irgendwann 100 kleine Roadwarriors rumlaufen mit zwei oder drei Clients pro Nase (Handy, PC, Tablet), zum Anderen sind unter den Usern auch Personen dabei, denen ich das Händchen führen muss um einen CalDAV-Zugriff einzurichten. Und da dann zusätzlich noch nen VPN aktivieren? Da kann ich eine Vollzeitstelle draus machen und nicht mehr "so nebenbei" face-smile