Linux Sicherheit - Authentifizierung
Zur Navigation springen
Zur Suche springen
Linux Sicherheit - Authentifizierung
- Die Authentifizierung ist das Herzstück jeder Systemsicherheit. Sie stellt sicher, dass nur berechtigte Benutzer Zugriff auf das System erhalten. Fehlerhafte oder schwache Authentifizierung ist einer der häufigsten Gründe für unbefugte Zugriffe und erfolgreiche Angriffe.*
Grundlagen
- Ziel der Authentifizierung ist die zweifelsfreie Identifizierung eines Benutzers.
- Das klassische Linux-Modell nutzt Benutzername und Passwort, verwaltet über PAM (Pluggable Authentication Modules).
- Authentifizierungsdaten liegen in /etc/shadow, Hash-geschützt und nur für root lesbar.
- Erweiterte Verfahren wie Zwei-Faktor-Authentifizierung (2FA) oder Public-Key-Verfahren erhöhen die Sicherheit erheblich.
Benutzerkonten und Passwortverwaltung
- cat /etc/passwd
- sudo cat /etc/shadow
- passwd alice
- chage -l alice
- /etc/passwd enthält Basisinformationen zu Benutzern, jedoch keine Passwörter.
- /etc/shadow speichert Passwort-Hashes, Ablaufdaten und Sperrstatus.
- Passwörter sollten nie im Klartext gespeichert oder weitergegeben werden.
- Empfehlung: Mindestlänge 12 Zeichen, Kombination aus Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen.
Passwortregeln und Ablaufpolitik
- cat /etc/login.defs
- grep PASS_MAX_DAYS /etc/login.defs
- chage -M 90 alice
- Mit /etc/login.defs lassen sich globale Passwortanforderungen festlegen.
- PASS_MAX_DAYS: maximale Gültigkeit eines Passworts (z. B. 90 Tage).
- PASS_MIN_LEN: Mindestlänge.
- chage erlaubt individuelle Kontrolle pro Benutzer.
Passwort-Hashverfahren prüfen
- grep root /etc/shadow
- Linux verwendet standardmäßig SHA-512-Hashes ($6$), ältere Verfahren wie MD5 ($1$) oder DES sind unsicher.
- Nur Hashes mit $6$ oder höherer Sicherheitsstufe sind akzeptabel.
- Konfiguration erfolgt über PAM: /etc/pam.d/common-password oder /etc/login.defs.
Kontosperrung und Fehlversuche (PAM Tally / Faillock)
- faillock --user alice
- faillock --reset
- Das PAM-Modul „pam_faillock“ sperrt Konten nach mehrfachen Fehlversuchen.
- Eintrag in /etc/security/faillock.conf z. B.:
deny = 5 unlock_time = 900 fail_interval = 600
- Nach 5 falschen Logins wird das Konto für 15 Minuten gesperrt.
Zwei-Faktor-Authentifizierung (2FA)
- apt install libpam-google-authenticator -y
- google-authenticator
- Der Benutzer generiert einen QR-Code und speichert den geheimen Schlüssel in einer Authenticator-App.
- Anpassung der PAM-Konfiguration:
auth required pam_google_authenticator.so nullok
- Beim Login ist nun zusätzlich zum Passwort ein Einmalcode nötig.
- 2FA sollte für alle privilegierten Konten (root, sudo, SSH) verpflichtend sein.
SSH-Authentifizierung
- ls -l ~/.ssh/
- ssh-keygen -t ed25519 -C "alice@host"
- cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
- Public-Key-Authentifizierung ist sicherer als Passwort-Login.
- SSH-Server konfigurieren:
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
- Nach Änderungen:
- systemctl restart ssh
- Verwendete Schlüssel regelmäßig prüfen und alte Schlüssel entfernen.
Zentralisierte Authentifizierung (LDAP, Kerberos)
- In größeren Umgebungen werden Benutzer über zentrale Verzeichnisdienste verwaltet.
- LDAP oder Kerberos bieten einheitliche Anmeldung über mehrere Systeme hinweg.
- Beispielpakete:
- apt install libnss-ldap libpam-ldap nscd
- Konfiguration über /etc/ldap.conf und /etc/nsswitch.conf.
- Sicherheitshinweis: Kommunikation immer per StartTLS oder LDAPS verschlüsseln.
Kontosicherheit und Sperrung
- passwd -l benutzer
- usermod --expiredate 1 gastkonto
- Inaktive oder temporäre Konten sofort sperren.
- Systemkonten (z. B. daemon, nobody) dürfen sich niemals interaktiv anmelden.
- SSH-Shell für solche Konten auf /usr/sbin/nologin setzen.
Authentifizierungs-Logs auswerten
- journalctl -u ssh
- ausearch -m USER_LOGIN
- grep "authentication failure" /var/log/auth.log
- Alle Authentifizierungsversuche werden über PAM oder journald protokolliert.
- Ungewöhnliche Loginzeiten, IP-Wechsel oder häufige Fehlversuche sind Warnzeichen.
Quick Checklist
- Root-Login über SSH verbieten.
- Passwortauthentifizierung deaktivieren, stattdessen SSH-Keys verwenden.
- Passwortrichtlinien konsequent durchsetzen.
- 2FA aktivieren, mindestens für Administratoren.
- Login-Versuche begrenzen und fehlgeschlagene Anmeldungen überwachen.
- Inaktive Benutzerkonten sperren oder löschen.
- Authentifizierungslogs regelmäßig prüfen und archivieren.
Zusammenfassung
- Eine starke Authentifizierungsstrategie verhindert die meisten unautorisierten Zugriffe.
- Schwache Passwörter, inaktive Konten und offener SSH-Zugang sind Hauptangriffsziele.
- Best Practice: Public-Key-Login, 2FA, restriktive PAM-Regeln und lückenlose Überwachung.