Skip to Content

Passwörter und 2FA

Starke Passwortrichtlinien und Zwei-Faktor-Authentifizierung (2FA) sind zwei wichtige Verteidigungslinien zum Schutz von Benutzerkonten. In diesem Artikel wird erläutert, wie Sie Kennwortrichtlinien konfigurieren und die Zwei-Faktor-Authentifizierung unter Ubuntu 26.04 aktivieren.

Richtlinien für starke Passwörter

Installieren von Tools zur Passwortqualitätsprüfung

sudo apt install libpam-pwquality

Konfigurieren von Passwortrichtlinien

Bearbeiten Sie die Konfigurationsdatei für die Passwortqualität:

sudo nano /etc/security/pwquality.conf

Allgemeine Konfigurationsoptionen:

# Minimum password length minlen = 12 # Minimum number of character classes (uppercase, lowercase, digits, special characters) minclass = 3 # Minimum number of uppercase letters ucredit = -1 # Minimum number of lowercase letters lcredit = -1 # Minimum number of digits dcredit = -1 # Minimum number of special characters ocredit = -1 # Number of characters that must differ from the old password difok = 5 # Prevent using the username as part of the password usercheck = 1 # Limit consecutive identical characters maxrepeat = 3 # Limit consecutive characters of the same class maxclassrepeat = 4 # Reject palindrome passwords palindrome = 1 # Reject common dictionary words dictcheck = 1

Konfigurieren von Kennwortablaufrichtlinien

# Edit global settings sudo nano /etc/login.defs
# Maximum password age (days) PASS_MAX_DAYS 90 # Minimum password age (days) PASS_MIN_DAYS 7 # Password expiration warning days PASS_WARN_AGE 14 # Minimum password length PASS_MIN_LEN 12

Festlegen von Passwortrichtlinien für bestimmte Benutzer

# Set maximum password age to 90 days sudo chage -M 90 username # Set minimum password age to 7 days sudo chage -m 7 username # Set 14-day expiration warning sudo chage -W 14 username # Immediately require password change sudo chage -d 0 username # View user password policy sudo chage -l username

Passwortverlauf (Verhinderung der Wiederverwendung alter Passwörter)

Bearbeiten Sie die PAM-Konfiguration:

sudo nano /etc/pam.d/common-password

Suchen Sie die Zeile mit pam_unix.so und fügen Sie den Parameter remember hinzu:

password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass yescrypt remember=12

Dadurch wird verhindert, dass Benutzer eines ihrer letzten 12 Passwörter wiederverwenden.

Passwortverwaltungstools

Befehlszeilen-Passwort-Manager: bestanden

# Install sudo apt install pass # Initialize (requires a GPG key) gpg --gen-key pass init "your-gpg-id" # Add a password pass insert email/gmail pass insert -m server/production # multi-line mode # View a password pass email/gmail # Generate a random password pass generate web/newsite 20 # List all passwords pass ls # Search pass find gmail

Verwendung von KeePassXC

# Install sudo apt install keepassxc # Or use snap sudo snap install keepassxc

KeePassXC ist ein funktionsreicher grafischer Passwort-Manager, der Folgendes unterstützt:

  • Verschlüsselter Passwort-Datenbankspeicher
  • Passwörter automatisch ausfüllen
  • TOTP-Zwei-Faktor-Authentifizierung
  • Browser-Integration
  • SSH Agentenintegration

Google Authenticator (TOTP 2FA)

Installation und Initialisierung

# Install the PAM module sudo apt install libpam-google-authenticator # Run initialization as a regular user google-authenticator

Empfohlene Auswahl während der Initialisierung:

Do you want authentication tokens to be time-based (y/n) y # Choose y for time-based tokens (TOTP) # A QR code will be displayed -- scan it with an authenticator app # Recommended apps: Google Authenticator, Authy, Microsoft Authenticator, FreeOTP Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y Do you want to disallow multiple uses of the same authentication token? (y/n) y # Choose y to prevent token replay By default, a new token is generated every 30 seconds. Do you want to change the size of the time skew window? (y/n) n Do you want to enable rate-limiting? (y/n) y # Choose y to limit attempt frequency

Speichern Sie unbedingt die angezeigten Notfall-Backup-Codes.

Aktivieren von 2FA für die lokale Anmeldung

sudo nano /etc/pam.d/common-auth

Am Ende der Datei hinzufügen:

auth required pam_google_authenticator.so nullok

Der Parameter nullok ermöglicht Benutzern, die 2FA nicht konfiguriert haben, die normale Anmeldung. Entfernen Sie es, sobald alle Benutzer eingerichtet sind.

Aktivieren von 2FA für die SSH-Anmeldung

# Edit PAM SSH configuration sudo nano /etc/pam.d/sshd

Hinzufügen:

auth required pam_google_authenticator.so

Bearbeiten Sie die Serverkonfiguration SSH:

sudo nano /etc/ssh/sshd_config
# Enable keyboard-interactive authentication KbdInteractiveAuthentication yes # Require key + TOTP dual authentication AuthenticationMethods publickey,keyboard-interactive

Starten Sie SSH neu:

sudo systemctl restart ssh

2FA für Sudo aktivieren

sudo nano /etc/pam.d/sudo

Nach @include common-auth hinzufügen:

auth required pam_google_authenticator.so

Dies erfordert bei jeder Verwendung von sudo einen Bestätigungscode.

Hardware-Sicherheitsschlüssel (FIDO2/U2F)

Unterstützte Geräte

Ubuntu 26.04 unterstützt FIDO2/U2F-Sicherheitsschlüssel, wie zum Beispiel:

  • YubiKey 5-Serie
  • Google Titan-Sicherheitsschlüssel
  • Feitian ePass FIDO
  • SoloKeys

Installation und Konfiguration

# Install the PAM U2F module sudo apt install libpam-u2f # Install management tools sudo apt install pamu2fcfg

Registrieren eines Sicherheitsschlüssels

# Create configuration directory mkdir -p ~/.config/Yubico # Register the first key (insert the security key and touch it) pamu2fcfg > ~/.config/Yubico/u2f_keys # Register a backup key (append mode) pamu2fcfg -n >> ~/.config/Yubico/u2f_keys

Sicherheitsschlüssel für sudo aktivieren

sudo nano /etc/pam.d/sudo

Vor @include common-auth hinzufügen:

auth sufficient pam_u2f.so

Aktivieren des Sicherheitsschlüssels für die Anmeldung

sudo nano /etc/pam.d/gdm-password

Hinzufügen:

auth required pam_u2f.so

Aktivieren des Sicherheitsschlüssels für SSH

OpenSSH 8.2+ unterstützt nativ FIDO2-Schlüssel:

# Generate a FIDO2 SSH key ssh-keygen -t ed25519-sk -C "your_email@example.com" # Or use a resident key (does not require the corresponding hardware key for the public key in .ssh/authorized_keys on the server) ssh-keygen -t ed25519-sk -O resident -C "your_email@example.com" # Deploy the public key to the server ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub user@server

Konfiguration des PAM-Authentifizierungsflusses

PAM-Kontrollflags verstehen

FlaggeBeschreibung
requiredMuss gelingen; prüft weiterhin andere Module auf Fehler
requisiteMuss gelingen; kehrt bei einem Fehler sofort zurück
sufficientGibt den Erfolg sofort weiter; prüft weiterhin auf Fehler
optionalErfolg oder Misserfolg haben keinen Einfluss auf das Endergebnis

Beispiele für Multi-Faktor-Authentifizierungskombinationen

Passwort + TOTP:

# /etc/pam.d/common-auth auth required pam_unix.so auth required pam_google_authenticator.so

Passwort + Sicherheitsschlüssel (Sicherheitsschlüssel optional):

auth required pam_unix.so auth sufficient pam_u2f.so auth required pam_google_authenticator.so

Richtlinie zur Kontosperrung

Konfigurieren der Sperre bei fehlgeschlagener Anmeldung

sudo nano /etc/pam.d/common-auth

Am Anfang der Datei hinzufügen:

auth required pam_faillock.so preauth silent deny=5 unlock_time=900 auth [default=die] pam_faillock.so authfail deny=5 unlock_time=900
sudo nano /etc/pam.d/common-account

Hinzufügen:

account required pam_faillock.so

Parameterbeschreibungen:

  • deny=5: Sperre nach 5 Fehlern
  • unlock_time=900: Für 900 Sekunden (15 Minuten) sperren

Verwalten des Sperrstatus

# View a user's failed attempts sudo faillock --user username # Unlock a user sudo faillock --user username --reset # View all locked users sudo faillock

Best Practices

  1. Verwenden Sie Passwörter mit mindestens 12 Zeichen, einschließlich Großbuchstaben, Kleinbuchstaben, Ziffern und Sonderzeichen.
  2. Verwenden Sie für jeden Dienst ein anderes Passwort und verwenden Sie einen Passwort-Manager.
  3. Aktivieren Sie 2FA für alle Dienste, die es unterstützen.
  4. Backup-Codes und Wiederherstellungsschlüssel sicher speichern.
  5. Registrieren Sie mehrere Sicherheitsschlüssel als Backups.
  6. Ändern Sie Passwörter regelmäßig, aber nicht zu häufig (alle 90 Tage ist ausreichend).
  7. Überwachen Sie fehlgeschlagene Anmeldedatensätze, um Brute-Force-Angriffe frühzeitig zu erkennen.