Beratung gesucht: OPNSense, NGINX, Synology DSM, DAV-Server, externe Erreichbarkeit

RolloMollo

Cadet 2nd Year
Registriert
Apr. 2020
Beiträge
26
Hallo zusammen.

Bevor die Frage kommt, mein Setup:
  • Draytek Modem
  • Barebone mit installiertem Proxmox
  • WAN geht an Barebone -> Proxmox -> OPNsense -> Switch / Netzwerk


Um was geht es:

Ich habe zurzeit meine alte DSM, die ich als Card/CaldDav & Dateiserver. Sie ist extern erreichbar über eine URL via https://spdyn.de. OPNSense schickt dabei meine wechselnde IP an https://spdyn.de. Funktioniert soweit gut, jedoch gebe ich für Lets Encrypt u.a. Port 80 in OPNsense frei. Das habe ich gehört sei „nicht gut“. Also bin ich auf die glorreiche Idee gekommen NGINX zu nutzen. Dabei habe ich diese Anleitung verfolgt:

https://forum.opnsense.org/index.php?topic=24778.0

Über DSM ist kein Reverse Proxy aktiviert.

Mir scheint es jedoch so, dass ich wenn ich DSM extern aufrufe, weiterhin das Zertifikat von Synology selbst ausgespielt zu werden. NGINX und ACME von OPNsense greifen also nicht. Das konnt ich auch checken indem ich in DSM das Let’s Encrypt Zertifikat gegen das „Synology Zertifikat“ austauschte  DSM war extern nicht mehr erreichbar. Setze ich in DSM Let’s Encrypt wieder auf enabled komme ich wieder extern auf die DSM. Also scheint meine Config nicht richtig zu sein.

Habt ihr Tipps für mich?



Zudem möchte ich gerne über Proxmox Radicale extern verfügbar machen. Das klappt leider aber irgendwie nicht. Und zwar habe ich in OPNsense den Port geforwarded. Gebe ich aber die externe IP abs.das.com:port ein, tut sich nichts. Vermutlich muss ich auch hier mit Lets Encrypt signieren jedoch dachte ich, übernimmt das ACME bzw. NGINX via OPNsense.



So richtig verstehe ich das alles nicht, was ich hier tue. Ja, Hauptkritikpunkt und vermutlich wird der eine oder andere, der das liest hierbei die Augen rollen. Trotzdem versuche ich das Thema zu realisieren und bin über jede Hilfe dankbar.
 
Naja, ohne dass Port 80 und 443 (der zweite ist wichtig für HTTPS) offen ist kannst du da nicht zugreifen (außer du setzt meinen Vorschlag um).

Entweder zeigen die Ports auf deine FW oder dein Zielserver. Wenn sie auf deine FW zeigen musst du dort einen Reverse Proxy konfigurieren (nginx, haproxy, apache, traefik, irgendwas :D ) und dort dann einstellen dass eine Sub-Domain oder ein Pfad auf einem anderen Server (deine DSM) liegt.

I.d.R. kann man beim Reverse Proxy noch einstellen dass er ein Zertifikat nutzen soll.

So, wo in der Kette ist nun bei dir der Feher? Zeigt dein Port 80/443 auf deine FW und nicht mehr auf deine DSM? Hat dein Reverse Proxy ein Let's Encrypt Zertifikat erfolgreich angefordert?

Nun mein Vorschlag: gar kein Port öffnen und eine Zero Trust Tunnellösung nutzen. zB kostenlos von Cloudflare mit eigener Domain oder Tailscale (dann brauchen aber alle Clients den Tailscale Client)
 
  • Gefällt mir
Reaktionen: RolloMollo
Hallo.

Vielen Dank erstmal soweit. Ich hab dir mal Screenshots von meiner OPNsense eingestellt.
Deinen Vorschlag mit der Tunnellösung von Cloudfare hört sich ganz interessant an.
Ist mir Zero Trust das hier gemeint? https://hackacad.net/post/2022-05-04-creating-zero-trust-web-access/

Ich bin ein wenig skeptisch wenn ich meinen Traffic über einen Dritten treibe, der den Dienst konstelos anbietet. Daher nutze ich auch Wireguard via OPNsense.

Bildschirmfoto 2024-01-05 um 10.08.05.png
Bildschirmfoto 2024-01-05 um 10.08.15.png
Bildschirmfoto 2024-01-05 um 10.08.43.png
Bildschirmfoto 2024-01-05 um 10.09.05.png
 
Ich habe ein ähnliches Setup wie du und versuche es mal zu erklären, da dir das vielleicht als Inspiration hilft. Klappt für mich nämlich sehr gut.

(Internet) --> Modem --> OPNsense --> Switch --> Synology NAS

Meine OPNsense ist über das Internet gar nicht erreichbar. Da ich aber auf meinem NAS diverse Dienste nutze, die ich z. B. auch über das Internet erreichen will, habe ich einen (!) Port nach außen auf meiner OPNsense geöffnet.
Auf der Synology habe ich in den Einstellungen unter External Access (habe sie auf englisch gestellt) DDNS konfiguriert. Dabei bekommst du auch ein Zertifikat von Let's Encrypt, das die Synology regelmäßig von selbst erneuert. Wichtig hierbei ist jedoch dafür diese Anleitung, damit ich nur einen Port auf der Sense öffnen muss. Über den NGINX Reverse Proxy der Synology habe ich dann entsprechend wie z. B. hier bei Schritt 4 jeweils einen Eintrag pro Dienst gemacht.

Somit kann man nicht über das Internet auf meine OPNsense zugreifen, aber zumindest auf die Services auf meinem NAS. Wenn ich einen neuen Dienst freigeben will, muss ich nur noch einen entsprechenden Reverse Proxy Eintrag auf der Synology erstellen und der Dienst ist über das Internet erreichbar. Soll ein Dienst nicht erreichbar sein, erstelle ich entsprechend keinen Reverse Proxy Eintrag.

Vielleicht ist das so eine Lösung für CalDAV und CardDAV. Diese Dienste benötigen schließlich auch einen Port.
 
@RolloMollo ja bei einem Zero Trust Tunnel läuft das über den Anbieter (Cloudflare) aber bei Tailscale erfolgt nur die Vermittlung über den Anbieter (aber Nachteil: alle brauchen den Client).

Wenn du aber sowieso Wireguard nutzt, warum brauchst du dann Webzugriff via WAN? Du greifst einfach, nachdem du den Wireguard Tunnel aufgebaut hast, auf die interne IP zu.

Und auf deinen Screenshots sehe ich dass du den Port 80/443 immernoch auf dein NAS weiterleitest. Das ist falsch und nicht nötig, da der Reverse Proxy (nginx) ja auf deiner Firewall läuft. Ich habe hier pfSense am laufen und würde da dann als "Destination" die "WAN address" wählen.

Das sind keine Weiterleitungen (sind ja nicht nötig, da dein DDNS Anbieter ja sowieso auf deine FW zeigt) sonder nur geöffnete Ports. Im Grunde wie der offene Wireguard Port in deinem ersten Screenshot.
 
Hallo.

Vielen Dank. Ich nehme erstmal Bezug zu @LieberNetterFlo.
Wir (Frau, ich) nutzen auf den Smartphones, Tablets etc den DAV Server der Synology. Dafür dann immer einen Tunnel aufzumachen, möchte ich vermeiden, da wenig praktikabel mit meiner Frau :) Zudem hatte ich auch Nextcloud laufen als Dropbox-Alternative worauf auch Externe Zugriff hatten.
Die Ports habe ich aktuell wieder offen, weil sonst meine DSM nicht erreichbar wäre.
Kannst du mir vielleicht ein wenig kleinteiliger beschreiben wo die von dir genannten Einstellungen treffen kann?
 
Ich habe leider keine OPNsense laufen, nur eine pfSense ohne Reverse Proxy. (ich hatte mal eine haproxy mit Lets Encrypt auf der pfSense). Drum kann ich dir bei OPNsense nicht weiterhelfen, nur die Grundlagen erklären :)
 
Verstanden aber du schreibst:
Und auf deinen Screenshots sehe ich dass du den Port 80/443 immernoch auf dein NAS weiterleitest. Das ist falsch und nicht nötig, da der Reverse Proxy (nginx) ja auf deiner Firewall läuft. Ich habe hier pfSense am laufen und würde da dann als "Destination" die "WAN address" wählen.
Ergänzt du das "Firewall:port:NAT"? Weil wenn ich das dort rausnehme, ist DSM extern nicht mehr erreichbar.
 
Aber das ist doch das Ziel. Oder wofür sonst brauchst du den Proxy? Wenn du die DSM weiterhin extern erreichbar machst, kannst du dir den Proxy auch sparen. Und dann wird natürlich auch weiterhin das Synology Zertifikat benutzt.
 
  • Gefällt mir
Reaktionen: LieberNetterFlo und RolloMollo
Hallo.

Korrekt, das ist ja das Ziel wo ich hin will. Schließe ich aber die DSM Ports, ist DSM extern nicht mehr erreichbar. Ergo scheint die NGINX Config noch nicht richtig zu sein.
Ich habe mal Screenshots angefügt, seht ihr einen Fehler?
Wenn nicht, kann ich noch im OPNsense Forum nachfragen.

Vielen Dank vorab!

Bildschirmfoto 2024-01-05 um 10.08.05.png
Bildschirmfoto 2024-01-05 um 10.09.05.png
Bildschirmfoto 2024-01-05 um 10.09.05.png
Bildschirmfoto 2024-01-06 um 14.40.18.png
Bildschirmfoto 2024-01-06 um 14.41.35.png
Bildschirmfoto 2024-01-06 um 14.42.03.png
Bildschirmfoto 2024-01-06 um 14.42.40.png
Bildschirmfoto 2024-01-05 um 10.08.15.png
Bildschirmfoto 2024-01-05 um 10.08.43.png
 
Naja, du darfst die Ports nicht schließen. Soweit ich das sehe sind die zwei Regeln (also 80 und 443) automatisch erstellt worden aufgrund von NAT, also der Portweiterleitung von 80 und 443 auf deine NAS. Das musst du deaktivieren, das brauchst du nicht mehr.

Und dann musst du einfach die zwei Ports manuell öffnen und als Ziel nur die WAN Adresse (der Firewall) zulassen.

Danach sollte dein nginx erreichbar sein, sofern er auf der WAN Adressse lauscht.

Wie gesagt, ich kenne mich mit OPNsense nicht aus, und mit nginx als Reverse Proxy auch nicht :) (hab pfSense mit ha-proxy laufen gehabt). Vielleicht gibts hier einen der OPNsense am Laufen hat? Ansonsten kannst du mal im OPNsense Forum nachfragen.


Internet -> OPNsnese (WAN) - nginx reverse proxy (WAN listen) -> NAS Webinterface
 
Zurück
Oben