2-Faktor-Authentifizierung ohne offene Ports mit Synology Reverse Proxy

Hallo Zusammen,
Ich habe mir den neuen Kurs 2-Faktor-Authentifizierung für paperless-ngx einrichten gekauft und bin ihn durchgegangen.

Ich habe auf meinem NAS bereits für diverse Dienste (u.a. auch paperless-ngx) einen Reverse Proxy via Settings > Login Portal > Advanced eingerichtet. Dies aus dem Grund, dass ich nicht so viel offene Ports auf dem Router haben muss.

Mein Zertifikat habe ich so eingerichtet, dass es auch Subdomains beinhaltet.

Nun kann ich diverse Dienste via Sub Domain meiner DynDNS Domain von Synology aufrufen. Die Anfragen werden dann von der Subdomain mit HTTPS und Port 443 entgegen genommen und leiten intern auf localhost und den jeweiligen Port weiter. Dieses Setup ersetzt die Port Weiterleitungen, welche ich vorhher auf dem Router hatte. Die Zuordnung der einzelnen Dienste geschieht dabei anhand der unterschiedlichen Subdomain.

Sagen wir als Beispiel, dass meine Sub Domain für Paperless https://paperless.your-synology.synology.me lautet und diese bisher intern via Reverse Proxy auf localhost:8000 weiterleitet.

Da ich ungern die Ports am Router wieder öffnen möchte, würde ich gerne die bestehenden Reverse Proxys, welche ich im Synology eingerichtet habe, behalten.

In meiner Vorstellung würde dass dann so gehen:

  1. Anfrage auf https://paperless.your-synology.synology.me
  2. Weiterleitung auf http://localhost:30443 (Revers Proxy von Synology)
  3. Weiterleitung von http://localhost:39443 nach http://localhost:9443 (Docker nginx reverse proxy)
  4. Weiterleitung zu Authelia wenn noch nicht eingeloggt (Docker nginx reverse proxy)
  5. Weiterleitung zu Paperless auf http://localhost:8000 nach dem Login (Docker nginx reverse proxy)

Funktioniert dies überhaupt so oder kommt sich der Revers Proxy von Synology und jener im Docker Container in die Haare?

Falls es jemand interessiert, es funktioniert ohne Ports auf dem Router zu öffnen:

Es müssen dafür im Synology beim Reverse Proxy zwei Einträge gemacht werden:

Weiter müssen folgende config files angepasst werden:

2 „Gefällt mir“

@Stefan mir ist noch aufgefallen, dass man nach dem Logout auf https://auth.your-synology.synology.me landet und nicht wieder auf https://paperless.your-synology.synology.me.

Somit fehlt in der URL dann der „rd“ GET Param. Somit wird man beim erneuten einloggen nicht automatisch auf Paperless umgeleitet.

Dies kann behoben werden indem

PAPERLESS_LOGOUT_REDIRECT_URL=https://auth.your-synology.synology.me/logout?rd=https://paperless.your-synology.synology.me

gesetzt wird.

Siehe docs: add documentation about the logout endpoint (#2860) · authelia/authelia@100d598 · GitHub

2 „Gefällt mir“

Hi Jan,

das ist eine super Lösung, danke für den Hinweis! Ich werde beides in den Kurs einbauen, nachdem ich es selbst umgesetzt habe.

Genau solche Diskussionen sind den Aufwand eines Forums wert :smile:

Hallo @Stefan , Bitte gerne, danke für den Video Kurs :slight_smile:

1 „Gefällt mir“

Hi @janwidmer

sehe ich das richtig, dass du dann in der Firewall nur noch einen Port (in deinem Fall 443) für Pngx durchgeleitet hast?

Hi @robin ,

Genau, so ist es:

Wichtig ist, wie schon erwähnt, dass dein Zertifikat für sub Domains der dyndns domain ausgestellt ist:

Bei Subject Alternative Name kannst du „*.your-synology.synology.me“ eingeben.

Die Einrichtung des Revers Proxies inkl. Zertifikat für Wildcard subdomains findest au auch in diversen Anleitungen, z.b. auch ein Video von Stefan: https://youtu.be/84Fy5Qw10vs?si=BqqYxEOjvRxK2l0G&t=408

Gruess Jan

Hi @janwidmer,

Zertifikat für Subdomains hatte ich schon konfiguriert, da vor der 2FA schon externer Zugriff via HTTPS bestand.

Hab alles umgebaut, funktioniert super.

Danke dir!

1 „Gefällt mir“

Im Grunde setzt Jan den Reverse Proxy so ein, dass er anhand der Subdomains auf die anderen Ports umleitet. Zur Synology ist dann nur Port 443 nötig, der Synology Reverse Proxy leitet dann um auf den nginx-Reverse-Proxy aus dem Kurs. Schöne Lösung, gefällt mir :smile:

Dieses Thema wurde automatisch 2 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.