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!
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/;
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4771896555
Url: https://administrator.de/forum/mittels-nginx-alles-ueber-port-443-routen-4771896555.html
Ausgedruckt am: 27.12.2024 um 08:12 Uhr
4 Kommentare
Neuester Kommentar