Not under version control
This page was loaded from the repository but is not added under git version control. Make a commit on the Edit page to add it.CT 113 – Authelia
CT 113 hostet Authelia als zentrale vorgeschaltete Authentifizierungs- und 2FA-Schicht für ausgewählte Webdienste hinter Caddy.
Basisdaten
| Eigenschaft | Wert |
|---|---|
| CT-ID | 113 |
| Name | authelia |
| IP | 192.168.178.64 |
| OS | Debian 13 |
| Öffentliche URL | https://auth.ls-cloud.biz |
| Interner Port | 9091/tcp |
| Compose-Pfad | /opt/authelia/compose.yml |
| Konfig-Pfad | /opt/authelia/config/configuration.yml |
| User-Datei | /opt/authelia/config/users_database.yml |
| Notification-Datei | /opt/authelia/config/notification.txt |
Zweck
Authelia sitzt vor ausgewählten Webdiensten und erzwingt dort je nach Regel:
- kein Login (
bypass) - Passwort-Login (
one_factor) - Passwort + zweiter Faktor (
two_factor)
Aktuell ist Authelia bereits für folgende Dienste in Benutzung:
terminal.ls-cloud.biz→two_factorfiles.ls-cloud.biz→two_factor
Architektur
Browser -> Caddy auf dem Host -> forward_auth gegen Authelia (CT 113 :9091) -> bei Erfolg weiter zum eigentlichen Backend-Dienst
Portal selbst:
https://auth.ls-cloud.biz -> Caddy reverse_proxy -> CT 113 :9091
Wie ein neuer Dienst geschützt wird
Es braucht immer zwei Änderungen:
1. Authelia-Regel
In configuration.yml unter access_control.rules eine Domain-Regel ergänzen, z. B.:
- domain: 'files.ls-cloud.biz' policy: two_factor
2. Caddy davor schalten
Im jeweiligen Domain-Block:
caddy
forward_auth http://192.168.178.64:9091 {
uri /api/authz/forward-auth
copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
}
Danach erst das eigentliche reverse_proxy zum Backend.
Benutzerverwaltung
Aktuell wird der file-based authentication backend genutzt.
Benutzer stehen in:
/opt/authelia/config/users_database.yml
Dort liegen u. a.:
- Benutzername
- Anzeige-Name
- Mailadresse
- Argon2-Passworthash
- Gruppen
Aufbau eines Benutzers
Ein einzelner Benutzer sieht im aktuellen Setup z. B. so aus:
users: admin: disabled: false displayname: "Sergej" password: "$argon2id$..." email: "sergej@ls-cloud.biz" groups: - admins
Vorlage für einen neuen Benutzer
neueruser: disabled: false displayname: "Neuer User" password: "$argon2id$HIER_DEN_HASH_EINTRAGEN" email: "user@example.com" groups: - users
Passwort-Hash erzeugen
Ein Passwort wird nicht im Klartext gespeichert, sondern als Hash. Ein neuer Hash kann z. B. so erzeugt werden:
pct exec 113 -- docker run --rm authelia/authelia:latest \ authelia crypto hash generate argon2 --password 'NEUES_PASSWORT'
Den Digest:-Wert dann in users_database.yml als password: eintragen.
Benutzer hinzufügen – Schritt für Schritt
- Passwort-Hash erzeugen
- Benutzerblock unter
users:inusers_database.ymlergänzen - Datei speichern
- Authelia neu starten:
pct exec 113 -- bash -lc "cd /opt/authelia && docker compose -f compose.yml restart"
- Danach mit dem neuen Benutzer an
https://auth.ls-cloud.biztesten
Passwort eines bestehenden Benutzers ändern
- neuen Hash erzeugen
- beim Benutzer nur den Wert von
password:ersetzen - Authelia neu starten
Benutzer deaktivieren
neueruser: disabled: true
Nach Änderungen an users_database.yml ist ein Restart von Authelia der saubere Weg, damit die Änderung sicher übernommen wird.
TOTP / Google Authenticator / Aegis
Für den Benutzer kann in der Weboberfläche unter Sicherheitsoptionen ein Einmal-Passwort (TOTP) hinzugefügt werden. Das funktioniert mit:
- Google Authenticator
- Aegis
- Ente Auth
- Authy
- anderen TOTP-Apps
„E-Mails“ / One-Time-Codes
Aktuell ist kein echter SMTP-Versand eingerichtet. Stattdessen schreibt Authelia Benachrichtigungen in eine Datei auf dem Server:
/opt/authelia/config/notification.txt
Dort landen z. B.:
- Identity-Confirmation-Codes
- One-Time-Codes
- Links zum Widerruf
- andere notifier-basierte Meldungen
Beispiel ansehen
pct exec 113 -- tail -60 /opt/authelia/config/notification.txt
Wenn ein Benutzer behauptet, es komme „keine Mail“, ist im aktuellen Setup zuerst diese Datei zu prüfen.
Prüfung
pct status 113 pct exec 113 -- bash -lc "cd /opt/authelia && docker compose -f compose.yml ps" curl -k -I https://auth.ls-cloud.biz curl -k -I https://terminal.ls-cloud.biz curl -k -I https://files.ls-cloud.biz
Wichtige Dateien
| Pfad | Zweck |
|---|---|
/opt/authelia/compose.yml |
Docker-Compose-Definition |
/opt/authelia/config/configuration.yml |
Hauptkonfiguration |
/opt/authelia/config/users_database.yml |
Benutzer & Passwort-Hashes |
/opt/authelia/config/db.sqlite3 |
lokaler Storage |
/opt/authelia/config/notification.txt |
serverseitige „E-Mails“ / Codes |
/etc/caddy/Caddyfile (Host) |
Portal + ForwardAuth vor geschützten Diensten |
Hinweise
Für neue Dienste immer in zwei Schritten denken: Authelia-Regel und Caddy forward_auth.
Nur Webdienste hinter Caddy lassen sich so sauber schützen. Nicht-HTTP-Protokolle brauchen andere Wege.
