Zugriff auf Dienst teilweise mit Passwortschutz einschränken

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

oodoloo

Benutzer
Registriert
18. Jan. 2013
Beiträge
14
Reaktionspunkte
0
Punkte
1
Hallo zusammen,

vorab möchte ich schon mal um Nachsicht bitten, da mein Eintrag hier vermutlich nur teilweise reinpasst, aber in andere Foren vermutlich ebenso, weshalb ich mich dann dafür entschieden hatte den Eintrag hier zu veröffentlichen.

ich habe auf meinem Synology NAS einen Docker Container der einen Dienst bereitstellt. Dieser Dienst läuft unter einem Port, als Beispiel 8088.
Über einen Reverse Proxy Eintrag leite ich den Aufruf auf den Port 8088 um, wenn "von aussen" die url https://meindienst.domain.de aufgerufen wird.
Über den Dienst kann man Texte erstellen und beispielsweise einschränken, wie oft dieser aufgerufen werden kann.
Dafür wird dann eine Url erstellt, wie beispielsweise

https://meindienst.domain.de/en/p/1ylbeufti8lcvg

Ich möchte nun gerne den Zugriff auf https://meindienst.domain.de über eine htaccess mit htpasswd Datei schützen und den Zugriff auf https://meindienst.domain.de/en/p/1ylbeufti8lcvg öffentlich lassen.

Ist das überhaupt möglich?
Ist das über die Webstation mit einer Rewrite Condition möglich?

Oder hat jemand vielleicht einen ganz anderen Ansatz?

Würde mich freuen, wenn mir da jemand weiterhelfen könnte...

Viele Grüße
oodoloo
 
Ich bin kein .htaccess Experte, aber mit so einer Bedingung sollte es funktionieren:

# Bedingung, um eine Ausnahme für bestimmte URLs festzulegen
<FilesMatch ".*">
Require valid-user
</FilesMatch>

<FilesMatch "^/en/p/1ylbeufti8lcvg$">
Require all granted
</FilesMatch>
 
Danke die Rückmeldung - das sieht ja schon mal recht vielversprechend aus.
Ich bin mir nur unsicher, wie das mit der Webstation in Kombination mit dem Reverse Proxy funktioniert.
Hat da jemand einen Ansatz?
Komme ich mit dem ersten Aufruf am Reverse Proxy an, der leitet an einen Port in der Web Station, dort dann die Condition und dann direkt an den Port des Docker Container oder muss ich dann nochmal über den Reverse Proxy?
 
Nein, das muss nur einmal über den Reverse Proxy.
 
Und wie komme ich dann von der Web Station zum Docker Container an den Port 8088?
 
Indem du es direkt an localhost mit Port 8088 weiterleitest und nicht an den FQDN
 
Also ich komme beim Reverse Proxy an, leite es dann an die WebStation an einen bestimmten Port weiter, dort hinterlege ich eine .htaccess datei mit

# Bedingung, um eine Ausnahme für bestimmte URLs festzulegen
<FilesMatch ".*">
Require valid-user
</FilesMatch>

<FilesMatch "^/en/p/1ylbeufti8lcvg$">
Require all granted
</FilesMatch>

Aber das reicht doch dann nicht endgültig, oder?
Muss ich dann noch die Weiterleitung in die .htaccess Datei schreiben?
 
Das kann ich leider nicht beantworten, wie man das genau konfigurieren muss. Habe die Webstation nicht im Einsatz. Technisch müsste es aber so ablaufen
-du kommst rein mit dem FQDN (oder eben den Port, auf den der RP lauscht)
-die Webstation gibt es weiter an den gemappten Port des Docker Containers

Warum brauchst du die Webstation überhaupt? Ich erreiche alle meine Docker Container über den Reverse Proxy ohne die Webstation
 
Das geht bei mir auch. Habe es aktuell auch so eingerichtet und der Dienst ist von außen über den FQDN erreichbar.
Ich wollte es nur gerne etwas einschränken, sodass der Dienst bzw. die Website passwortgeschützt ist.
Aber die Links, die über den Dienst erstellt werden, sollen trotzdem öffentlich erreichbar sein.
Da hatte ich bisher nur den Ansatz gefunden, das über eine .htaccess Datei zu regeln, aber die kann ich ja nicht im Reverse Proxy hinterlegen und im Docker Container wüsste ich auch nicht wie. Deshalb blieb für mich da nur die Web Station über, mit der man das regeln könnte - so war zumindest meine Hoffnung.
 
Der Reverse Proxy von DSM kann das nicht per GUI. Das müsstest du in der Config vom Reverse Proxy Eintrag hinzufügen oder einen anderen RP verwenden.
 
Die .htaccess kommt in das root-verzeichnis des Webservers, in deinem fall ist der in deinem Docker-Container. Um welchen Dienst handelt es sich eigentlich, oder habe ich da was überlesen?
 
Ne ne, ich hatte es nicht geschrieben, weil ich dachte es sei nicht relevant um welchen Dienst es sich handelt.
Im konkreten ist es ein Docker Container für diesen Dienst.

https://github.com/pglombardo/PasswordPusher

Ach, die kann man doch direkt in den Docker Container legen.
Wobei ich nun leider trotzdem nicht genau weiß, wo ich sie hinpacken muss.
Müsste doch dann eigentlich der Ordner unter "docker/{containerName}" sein, oder? Oder muss die da evtl. nochmal in einen Subfolder, was somit wiederum dann doch jeweils spezifisch für den jeweiligen Service wäre.
 
Hmm, die app scheint mit Ruby geschrieben zu sein - da kenne ich die Ordnerstruktur nicht. Beim Symfony-Framework wäre es der Public-Ordner. Leider kann ich dir da nicht wirklich weiter helfen, sicher ist, einfach nur in den Ordner "docker/{containerName}" zu kopieren, ist nicht die Lösung!
 
.htaccess funktioniert doch eh nur beim Apache. Sollte Nginx benutzt werden geht es nicht mehr. Und selbst beim Apache könnte das deaktiviert sein...
Die beste Lösung ist einen anderen RP zu nutzen
 
  • Like
Reaktionen: its
Was würde es denn da für Alternativen geben? Gibt es da Zusatzpakete (evtl. Drittanbieter) für die Diskstation selbst? Oder dann evtl. ein Zusatzprogramm als Docker Container?
 
Da gibt es den Nginx Proxy Manager, SWAG, Caddy, traefik... Alles Docker.
Der Einzige mit UI ist der erste.
 
Ok - Danke. Ich werde mir die mal anschauen, ob ich damit weiterkomme und meine ursprüngliche gewünschte Konfiguration damit umgesetzt bekomme.
 

Additional post fields

 

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