Traefik Dashboard mit Basic Auth absichern
Traefik Dashboard mit Basic Auth absichern
Um das Traefik-Dashboard mit einem einfachen Passwortschutz zu versehen, wird eine Middleware mit Basic Auth verwendet.
Passwort erzeugen
Ein Benutzername und ein Passwort werden mit dem Befehl htpasswd erzeugt:
- htpasswd -nb admin MeinSicheresPasswort
Die Ausgabe sieht zum Beispiel so aus:
admin:$apr1$Ff34...$PL8Wnz7g1n...
Diese Zeile wird später in die Konfigurationsdatei eingetragen.
Middleware-Datei anlegen
Im Verzeichnis conf/ wird eine Datei mit dem Namen auth.yaml erstellt. Sie enthält folgende Konfiguration:
http:
middlewares:
dashboard-auth:
basicAuth:
users:
- "admin:$apr1$Ff34...$PL8Wnz7g1n..."
Statt dem Beispiel-Hash muss der selbst erzeugte Passwort-Hash eingetragen werden.
Middleware dem Router zuweisen
In der Datei docker-compose.yml im Bereich des Traefik-Dienstes wird folgende Zeile zu den Labels hinzugefügt:
- traefik.http.routers.mytraefik.middlewares=dashboard-auth@file
Dies weist dem Router die Middleware dashboard-auth zu, die in der dynamischen Konfiguration unter @file definiert wurde.
Alten Auth-Service entfernen
Falls zuvor ein externer Auth-Service wie traefik-forward-auth verwendet wurde, sollte dieser entfernt werden:
- Den kompletten Block traefik-forward-auth: im docker-compose löschen oder auskommentieren
- Alle zugehörigen Labels wie forwardAuth aus anderen Services entfernen
Traefik neu starten
Die Änderungen werden mit einem Neustart aktiviert:
- docker-compose down
- docker-compose up -d
Ergebnis
Beim Aufruf von https://traefik.samogo.de wird nun nach Benutzername und Passwort gefragt. Erst nach erfolgreicher Anmeldung wird das Dashboard angezeigt.