Docker Traefik Middleware Passwort Schutz: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 44: Zeile 44:
  
 
== Auf Traefik-Host ==
 
== Auf Traefik-Host ==
 +
* Die Datei mit Benutzernamen und Passwort-Hashes muss nun für dem Traefik-Dienst zugänglich sein
 +
* '''htpasswd -Bc ''/pfad/zur/datei'' ''user1'' '''
 +
* '''htpasswd -c ''/pfad/zur/datei'' ''user2'' '''
  
 
=Links=
 
=Links=
 
https://doc.traefik.io/traefik/middlewares/overview/
 
https://doc.traefik.io/traefik/middlewares/overview/

Version vom 14. November 2024, 19:08 Uhr

Funktion

  • Bevor die Anfrage vom Client an den Server geleitet wird, muss dieser sich anmelden
  • Die Zugangsdaten können entweder in docker-compose.yml geschrieben oder in eine andere Datei ausgelagert werden
  • Die Passwörter müssen mit MD5, SHA1, or BCrypt gehasht werden.

Passwort-Hashes

  • Der einfachste Weg für die Generation der Passwort-Hashes ist htpasswd, welches im Paket apache2-utils enthalten ist
  • apt install apache2-utils
  • Falls $-Zeichen im Hash auftauchen, müssen diese durch ein weiteres $ in YAML entwertet werden
  • echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g

Benutzer und Passwort in docker-compose.yml

  • Damit Traefik weiß, dass die Basic-Auth-Middleware benutzt werden soll, muss der Container/Service das Label tragen
  • Die Middleware muss dann einem Router zugewiesen werden
  • cd /pfad/zum/dienst
  • vim docker-compose.yml
version: "3"
services:
  whoami:
    image: traefik/whoami
	labels:
	  - "traefik.http.routers.whoami.rule=Path(`/whoami`)"
	  - "traefik.http.middleware.my-auth.basicauth.users=user1:passwort-hash,user2:passwort-hash"
	  - "traefik.http.routers.whoami.middlewares=my-auth"

Benutzer und Passwort separat

Auf Docker-Host

  • cd /pfad/zum/dienst
  • vim docker-compose.yml
version: "3"
services:
  whoami:
    image: traefik/whoami
	labels:
	  - "traefik.http.routers.whoami.rule=Path(`/whoami`)"
	  - "traefik.http.middleware.my-auth.basicauth.usersfile=/pfad/zur/datei"
	  - "traefik.http.routers.whoami.middlewares=my-auth"

Auf Traefik-Host

  • Die Datei mit Benutzernamen und Passwort-Hashes muss nun für dem Traefik-Dienst zugänglich sein
  • htpasswd -Bc /pfad/zur/datei user1
  • htpasswd -c /pfad/zur/datei user2

Links

https://doc.traefik.io/traefik/middlewares/overview/