Bei Authelia handelt es sich um einen open Source Autorisierung- und Authentifizierungsserver. Mittels Authelia könnt ihr alle eure Webseiten / Dienste zusätzlich absichern. Dies kann notwendig sein, falls euer Dienst selbst nicht über eine Authentifizierung verfügt.
Datum | Änderungen |
---|---|
09.07.2022 | Erstellung dieser Anleitung |
26.07.2022 | Kapitel 10.2 hinzugefügt |
31.05.2023 | Anpassung an neue Traefik Anleitung |
15.11.2024 | Anpassung an Traefik v3, Passwort Verfahren angepasst (Danke an @ckiie) |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/authelia/config
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Diese dient dazu unseren späteren Container zu erstellen.
nano /opt/containers/authelia/docker-compose.yml
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.
11. Ergebnis anschauen
Wenn alles geklappt hat, dann solltet ihr auf der Webseite “oeffentlich.euredomain.de” folgendes sehen:
Bei “sicher.euredomain.de” kommt folgende Meldung:
Nachdem ihr euch eingeloggt habt, seht ihr folgendes:
Zum Schluss gehen wir noch auf “supersicher.euredomain.de”. Dort solltet ihr folgendes sehen:
Nach der Eingabe des Codes kommt dann die Webseite. Ich werde hier direkt zum 2FA Code geführt, da ich mich bereits bei “sicher.euredomain.de” mittels Nutzername / Passwort authentifiziert habe und mein Browser noch offen war.
Hallo zusammen, hat schon jemand Authelia in Verbindung mit der neuen Traefik3 Anleitung (Traefik V3 Installation, Konfiguration und CrowdSec-Security) ans Laufen bekommen? Da ich einige Dienste ohne eigene Authentifizierung und ohne Möglichkeit zur Pocket-ID Anbindung am Laufen habe, hält mich das derzeit noch von der Migration ab.
Gibts hier irgendwelche Probleme eurer Erfahrung nach? Oder notwendige Anpassungen?
Die Einrichtung hat mit der Anleitung soweit gut funktioniert, jedoch hat sich etwas bei Schritt 7. geändert;
Anstatt:
Muss nun folgender Befehl verwendet werden:
Siehe: https://www.authelia.com/reference/cli/authelia/authelia_crypto_hash_generate_argon2/
Bei Bedarf kann natürlich auch eine anderes Hashing-Verfahren eingesetzt werden (SHA2 Crypt, bcrypt…):
https://www.authelia.com/reference/cli/authelia/authelia_crypto_hash_generate/
Hallo Christian,
im Kapitel 10.1 -> docker-compose.yml Beispiel,fehlt ein Zeilenumbruch in der Zeile 52, vor “networks:”
Super Anleitung, danke. So ein Dienst ist echt goldwert!!
Hat alles geklappt. Will man externe Dienste einbinden, beispielsweise Synology DSM, muss man die dynamic_conf.yml wie folgt den Dienst einbinden:
Moin und Danke für diese Anleitung.
Ich habe meine Privatebin-Installation erfolgreich mit Authelia abgesichert.
Jetzt habe ich aber bei einem zweiten Container ein merkwürdiges Verhalten:
Ich habe einen HTML-Export meiner DVD/Bluray Sammlung erstellt und in einem nginx-Container bereit gestellt:
In der Konfigurations-Datei von authelia habe ich diese Domain als weiteren Eintrag analog zu meinem privatebin-Eintrag unter policy: one_factor aufgenommen.
Wenn ich jetzt media.foo.bar öffne, kommt auch der Login und anschließend die Weiterleitung. Soweit alles bestens.
Aber ich sehe keine Bilder, kann keine Links klicken etc. Ich bekomme immer ein 403 Forbidden (In der Browserconsole: Failed to laod resource: the server responded with a status of 403).
In der index.html sind die ganzen Links zu den Bildern und Unterseiten relative Links.
Ich sehe leider gerade den Fehler vor lauter Bäumen im Wald nicht 🙁
Hat von Euch jemand eine Idee, warum ich hier für jede einzelne Datei den Auth brauche?
Vielen Dank für die top Anleitung, seit heute Abend sind die meisten meiner Dienste über Authelia abgesichert 🙂
Hat es schon jemand hinbekommen, die Authentifizierung von Anwendungen (in meinem Fall Traefik-Dashboard) auf Server A über Authelia auf Server B durchzuführen?
Im worst case muss ich auf beiden Servern Authelia aufsetzen, aber ich meine, es müsste doch auch so klappen.
Ich bin vom Verständnis her soweit, dass Server B mit Authelia den Auth-Port 9091 verfügbar machen müsste nach außen. Leider scheitere ich bisher daran…
Gibt es einen Weg die WordPress-login-Seite mit Authelia zu schützen?
Habe probiert nur die domian.de/wp-admin …/wp-login in der Autherlia/configuration.yml
unter policy: two_factor einzutragen. Ohne Auswirkung.
Ich denke, das würden viele Leute gern machen.
Hat jemand eine Idee oder Lösung dafür?
VG Hardy
Kann es sein, dass die Anleitung nicht vollständig ist?
Wie schaut das denn aus, wenn ich authelia als SSO Dienst für z.B. die Nextcloud nutzen will?
WOW, nun läuft Authelia. Super klasse Anleitung! Muss nur noch einmal ein Passwort für mich anlegen und nicht für authelia 🙂
docker run authelia/authelia:latest authelia hash-password Wunschpasswort
Hier ist aber ein Fehler, oder? Du legst hier ein Kennwort für den User authelia an und nicht für christian.
Sorry, ich habe den Fehler gefunden.
Man muss genau auf die Abstände in der /opt/containers/authelia-demo/docker-compose.yml achten!!
Genau nach Anleitung.
Sobald ist aber:
docker-compose -f /opt/containers/traefik/docker-compose.yml down
docker-compose -f /opt/containers/traefik/docker-compose.yml up -d
mache:
Ist mein Traefik zwar noch da, aber ich bekomme eine 404 Fehlermeldung bei Traefik.
docker-compose -f /opt/containers/traefik/docker-compose.yml up
zeigt mir das an:
root@mail:/home/jens# docker-compose -f /opt/containers/traefik/docker-compose.yml up
[+] Running 1/0
⠿ Container traefik Created 0.0s
Attaching to traefik
traefik | time=”2022-07-10T14:03:11+02:00″ level=info msg=”Configuration loaded from file: /traefik.yml”
traefik | time=”2022-07-10T14:03:11+02:00″ level=error msg=”Cannot start the provider *file.Provider: field not found, node: middlewares-authelia”
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” entryPointName=https routerName=nginx-php-secure@docker
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” routerName=nextcloud-app-secure@docker entryPointName=https
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” routerName=nginx-app-secure@docker entryPointName=https
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” routerName=traefik-secure@docker entryPointName=https
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” entryPointName=https routerName=grafana-secure@docker
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” entryPointName=https routerName=bitwarden-secure@docker
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” routerName=paperless-secure@docker entryPointName=https
traefik | time=”2022-07-10T14:03:12+02:00″ level=error msg=”middleware \”secHeaders@file\” does not exist” entryPointName=https routerName=metube-secure@docker
– “traefik.http.routers.authelia-secure.middlewares= secHeaders@file, middlewares-authelia@file”
Ich glaube das hier ist nicht richtig, oder?