Linux Administration #2: Fortgeschrittene Benutzerverwaltung

Dieser Artikel behandelt fortgeschrittene Aspekte der Linux-Benutzerverwaltung, von PAM-Konfiguration über Benutzerquotas bis hin zu ACLs und der Überwachung von Benutzeraktivitäten.

Lesezeit: 45 min

Willkommen zum zweiten Teil unserer technischen Wiki-Serie über Linux-Administration!

Nachdem wir im ersten Artikel die Grundlagen der Benutzer- und Rechteverwaltung kennengelernt haben, tauchen wir nun tiefer in die fortgeschrittenen Aspekte ein. Die fortgeschrittene Benutzerverwaltung umfasst alle Werkzeuge und Konzepte, die über die grundlegende Erstellung und Löschung von Benutzerkonten hinausgehen.

Stell dir ein großes Unternehmen vor

Die einfache Benutzerverwaltung wäre wie ein Pförtner, der Ausweise ausstellt. Die fortgeschrittene Benutzerverwaltung hingegen ist wie ein komplettes Sicherheitssystem mit Zugangskontrolle, Überwachung und automatischer Verwaltung.

⚠️ Hinweis: In diesem Artikel verwenden wir Ubuntu/Debian als Beispiel-Distribution. Die grundlegenden Konzepte sind auf allen Linux-Systemen gleich, aber die Installation von Paketen und einige Konfigurationspfade können sich je nach Distribution unterscheiden. Wenn du eine andere Distribution verwendest, konsultiere bitte die entsprechende Dokumentation für die spezifischen Installationsbefehle und Pfade.

Benötigte Pakete installieren

Installation der PAM-Module für erweiterte Passwort-Policies

  • sudo apt install libpam-pwquality cracklib-runtime

Überprüfen der Installation


dpkg -l | grep libpam-pwquality
dpkg -l | grep cracklib

Was wird installiert?

libpam-pwquality: Modul für erweiterte Passwort-Qualitätsprüfungen cracklib-runtime: Wörterbuch-basierte Passwortprüfung

Wichtige Konfigurationsdateien:


┌─────────────────────────────────────────────────────────────┐
│  STRUKTUR DER PWQUALITY-KONFIGURATIONSDATEIEN               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  /etc/security/                                             │
│  ├── pwquality.conf     → Hauptkonfiguration der Qualität   │
│  └── pwquality.conf.d/  → Modulare Konfigurationsdateien    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Passwort-Policies verstehen

Eine Passwort-Policy ist wie ein Regelwerk für sichere Passwörter:

Passwort-Policy-Komponenten:


┌─────────── Komplexität ─────────────────────────────────────┐
│  • Minimale Länge                                           │
│  • Zeichenarten                                             │
│  • Wiederholungsregeln                                      │
├─────────── Lebenszyklus ────────────────────────────────────┤
│  • Gültigkeitsdauer                                         │
│  • Historie                                                 │
│  • Änderungsintervalle                                      │
└─────────────────────────────────────────────────────────────┘

Passwort-Policy-Konfiguration

In der fortgeschrittenen Benutzerverwaltung ist die Einrichtung sicherer Passwort-Richtlinien entscheidend. Stell dir die Passwort-Policy wie einen Sicherheitsstandard in einem Gebäude vor.

Grundlegende Passwort-Policy verstehen

Passwort-Komponenten:


┌─────────── Komplexität ─────────────────────────────────────┐
│  • Minimale Länge                                           │
│  • Zeichenarten (A-Z, a-z, 0-9, @#$)                        │
│  • Wörterbuch-Prüfung                                       │
├─────────── Gültigkeit ──────────────────────────────────────┤
│  • Maximales Alter                                          │
│  • Minimales Alter                                          │
│  • Warnzeit vor Ablauf                                      │
├─────────── Historie ────────────────────────────────────────┤
│  • Anzahl alter Passwörter                                  │
│  • Wiederverwendungssperre                                  │
└─────────────────────────────────────────────────────────────┘

PAM-Konfiguration für Passwort-Policies

PAM (Pluggable Authentication Modules) ist das Herzstück der Authentifizierung in Linux. Es ermöglicht die flexible Konfiguration von Sicherheitsrichtlinien.

PAM verstehen

PAM-Struktur:


┌─────────── Authentifizierung ───────────────────────────────┐
│  auth       Identitätsprüfung                               │
├─────────── Account ─────────────────────────────────────────┤
│  account    Kontozugang & -status                           │
├─────────── Password ────────────────────────────────────────┤
│  password   Passwortänderungen                              │
├─────────── Session ─────────────────────────────────────────┤
│  session    Sitzungsverwaltung                              │
└─────────────────────────────────────────────────────────────┘

Passwort-Qualitätsrichtlinien einrichten

Hauptkonfigurationsdatei:

Konfigurationsdatei öffnen

  • sudo nano /etc/security/pwquality.conf

Wichtige Parameter:


minlen = 12          

# Minimale Passwortlänge
minclass = 3         

# Mindestens 3 verschiedene Zeichenklassen
maxrepeat = 2        

# Maximal 2 gleiche Zeichen hintereinander
gecoscheck = 1       

# Prüft auf Benutzernamen im Passwort
dictcheck = 1        

# Aktiviert Wörterbuchprüfung

PAM-Module für Passwörter konfigurieren

PAM-Konfiguration für Passwörter

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

Beispielkonfiguration


password    required    pam_pwquality.so retry=3
password    required    pam_unix.so use_authtok sha512 shadow remember=5

Passwort-Historie und Ablaufverwaltung

Die Verwaltung der Passwort-Historie und Ablaufzeiten ist ein wichtiger Bestandteil der Sicherheit:

Passwort-Lebenszyklus:


┌─────────── Erstellung ──────────────────────────────────────┐
│  Tag 0: Neues Passwort gesetzt                              │
├─────────── Nutzung ─────────────────────────────────────────┤
│  Tag 1-75: Normale Nutzung                                  │
├─────────── Warnung ─────────────────────────────────────────┤
│  Tag 76-89: Ablaufwarnung                                   │
├─────────── Ablauf ──────────────────────────────────────────┤
│  Tag 90: Passwort muss geändert                             │
└─────────────────────────────────────────────────────────────┘

Passwort-Historie konfigurieren

In /etc/pam.d/common-password:


password required pam_pwhistory.so remember=5 enforce_for_root use_authtok

Parameter erklärt:


┌─────────────────────────────────────────────────────────────┐
│  WICHTIGE PAM-PWHISTORY-PARAMETER                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  remember=5        → Speichert die letzten 5 Passwörter     │
│  enforce_for_root  → Erzwingt Historie auch für Benutzer roo│
│  use_authtok       → Nutzt den Token vorheriger PAM-Module  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Passwort-Ablauf einrichten

in /etc/login.defs


PASS_MAX_DAYS   90      

# Maximales Alter
PASS_MIN_DAYS   1       

# Minimales Alter
PASS_WARN_AGE   14      

# Warnzeit vor Ablauf

Für einzelne Benutzer:

  • sudo chage -M 90 -m 1 -W 14 username

Detaillierte Ablaufkonfiguration

Benutzerdetails anzeigen:

  • sudo chage -l username

Ausgabe Beispiel:

  • Last password change : Jan 01, 2024
  • Password expires : Apr 01, 2024
  • Password inactive : never
  • Account expires : never
  • Minimum number of days between changes : 1
  • Maximum number of days between changes : 90
  • Number of days of warning before expire : 14

Häufige Probleme bei der Passwort-Policy

Problem: Passwortänderung schlägt fehl


# Fehlermeldung bei Passwortänderung:
passwd

# Ausgabe: "Password does not meet complexity requirements"
# Überprüfen der aktuellen Policy:
sudo cat /etc/security/pwquality.conf | grep -v '^#'

Häufige Ursachen:

  • Passwort zu kurz
  • Fehlende Zeichenklassen
  • Enthält Benutzername
  • Zu ähnlich zum alten Passwort
  • Passwort-Historie verletzt

Problem: Benutzer kann sich nicht anmelden


# Überprüfen des Passwort-Status
sudo chage -l username

# Häufige Ursachen und Lösungen:
# 1. Passwort abgelaufen
sudo chage -d 0 username  

# Erzwingt Änderung beim Login
# 2. Account gesperrt
sudo usermod -U username  

# Account entsperren
# 3. PAM-Konfiguration prüfen
sudo cat /etc/pam.d/common-auth

Praktische Beispiele

Szenario 1: Entwicklungsteam-Setup


# Passwort-Policy für Entwickler
sudo nano /etc/security/pwquality.conf

minlen = 14
minclass = 3
maxrepeat = 2
enforce_for_root

# Passwort-Alter für sensible Projekte
sudo chage -M 60 -m 1 -W 7 developer1

Szenario 2: Temporäre Mitarbeiter


# Ablaufdatum setzen
sudo useradd -e 2024-12-31 tempuser

# oder für existierenden Benutzer
sudo chage -E 2024-12-31 tempuser

# Status überprüfen
sudo chage -l tempuser

Szenario 3: Automatische Passwortänderung erzwingen

Neue Mitarbeiter sollen ihr initiales Passwort beim ersten Login ändern.


# Passwort-Änderung erzwingen
sudo chage -d 0 newuser

# Überprüfen der Einstellungen
sudo chage -l newuser

Szenario 4: Temporäre Zugänge

Praktikanten brauchen Zugang für 3 Monate.


# Benutzer mit Ablaufdatum erstellen
sudo useradd -e $(date -d "+3 months" +%Y-%m-%d) intern01

# Warnung 14 Tage vor Ablauf
sudo chage -W 14 intern01

# Status überprüfen
sudo chage -l intern01

Szenario 5: Passwort-Historie durchsetzen


# PAM-Konfiguration anpassen
sudo nano /etc/pam.d/common-password

# Folgende Zeile hinzufügen/anpassen:
password required pam_pwhistory.so remember=5 use_authtok

# Parameter erklärt:
remember=5      

# Speichert die letzten 5 Passwörter
use_authtok     

# Verwendet vorheriges PAM-Token

Benutzerquotas implementieren

Quotas sind wie Speicherlimits für Benutzer und Gruppen. Sie helfen, die Ressourcennutzung zu kontrollieren.

Quota-Typen:


┌─────────── Block Quotas ────────────────────────────────────┐
│  Begrenzt Speicherplatz                                     │
│  Beispiel: 5GB pro Benutzer                                 │
├─────────── Inode Quotas ────────────────────────────────────┤
│  Begrenzt Anzahl der Dateien                                │
│  Beispiel: Max. 50.000 Dateien                              │
└─────────────────────────────────────────────────────────────┘

Quota-System aktivieren

Quota-Unterstützung installieren

  • sudo apt install quota quotatool

/etc/fstab anpassen


# Füge usrquota,grpquota zu den Mount-Optionen hinzu
sudo nano /etc/fstab

# Beispiel:
# /dev/sda1  /home  ext4  defaults,usrquota,grpquota  0  2

Filesystem neu einbinden

  • sudo mount -o remount /home

Quotas einrichten

Quota-Datenbanken erstellen

  • sudo quotacheck -cugm /home

Quotas aktivieren

  • sudo quotaon -v /home

Quota für Benutzer setzen


sudo edquota -u username

# Soft limit: Warnung
# Hard limit: Strikte Grenze

Erweiterte Quota-Konfigurationen

Soft und Hard Limits verstehen:

Quota für einen Benutzer bearbeiten:

  • sudo edquota -u username

Beispiel-Ausgabe:


Filesystem  blocks  soft    hard   inodes  soft  hard
/dev/sda1   500000  524288  786432  1000   1500  2000
		  ├─Aktuell┤└─Warn─┘└─Limit┘└─Dateien──────┘

Bedeutung:

  • blocks: Aktueller Speicherverbrauch
  • soft: Warnung bei Überschreitung
  • hard: Absolutes Limit
  • inodes: Anzahl der Dateien

Gruppenquotas verwalten:


# Quota für eine Gruppe setzen
sudo edquota -g entwickler

# Quota-Status für Gruppe anzeigen
sudo quota -g entwickler

# Quota-Report für alle Gruppen
sudo repquota -g /home

Quota-Warnungen konfigurieren:

Grace Period einstellen:

  • sudo edquota -t

Beispiel:


Filesystem    Block grace period    Inode grace period
/dev/sda1     7days                 7days

# 7 Tage Zeit zwischen Soft und Hard Limit

Praktische Quota-Szenarien

Entwicklungsteam-Setup

Entwickler bekommen großzügige Limits:

  • sudo edquota -u entwickler1

Beispiel:


Filesystem  blocks   soft    hard   inodes   soft   hard
/dev/sda1   500000  5242880 6291456  10000   50000  75000

# Bedeutung:
# - 5GB soft limit (Warnung)
# - 6GB hard limit (Strict)
# - 50.000 Dateien soft limit
# - 75.000 Dateien hard limit

Praktikanten-Setup

Begrenzte Ressourcen für temporäre Mitarbeiter:

  • sudo edquota -u praktikant1

Beispiel:

  • Filesystem blocks soft hard inodes soft hard
  • /dev/sda1 100000 524288 786432 1000 2000 3000

Template für alle Praktikanten erstellen:

  • sudo edquota -p praktikant1 praktikant2 praktikant3

Projekt-Quotas

Projektverzeichnis mit Gruppenquota:

  • sudo edquota -g projektgruppe

Beispiel:

  • Filesystem blocks soft hard inodes soft hard
  • /dev/sda1 1000000 10485760 15728640 20000 50000 75000

Quota-Report für das Projekt:


sudo repquota -g /home | grep projektgruppe

Quota-Überwachung und -Verwaltung


# Quota-Status für einen Benutzer anzeigen
sudo quota -v username

# Quota-Report für alle Benutzer
sudo repquota -a /home

# Detaillierte Quota-Statistiken
sudo quota -vs username

Quota-Warnungen und Benachrichtigungen:


# Warnmeldungen konfigurieren
sudo edquota -t

# Grace Period einstellen (Karenzzeit nach Überschreitung)
# E-Mail-Benachrichtigungen einrichten
sudo nano /etc/quotamail.conf

Praktisches Monitoring-Beispiel:


#!/bin/bash
# Quota-Überwachungsskript
# Benutzer über 80% Auslastung finden
repquota -a | awk '$4 > 80 {print $1": "$4"%"}'

# Warnung an Benutzer senden
for user in $(repquota -a | awk '$4 > 80 {print $1}')
do
	echo "Warnung: Quota fast erschöpft" | mail -s "Quota-Warnung" $user
done

Access Control Lists (ACLs)

ACLs erweitern das traditionelle Linux-Berechtigungssystem um feingranulare Zugriffskontrollen.

Voraussetzungen:

  • sudo apt install acl

ACL-Konzepte verstehen

ACL-Typen:


┌─────────── Erweiterte ACLs ─────────────────────────────────┐
│  • Zusätzliche Benutzerrechte                               │
│  • Zusätzliche Gruppenrechte                                │
│  • Vererbbare Berechtigungen                                │
├─────────── Maske ───────────────────────────────────────────┤
│  • Maximale effektive Rechte                                │
│  • Überschreibt andere ACL-Einträge                         │
└─────────────────────────────────────────────────────────────┘

ACL-Verwaltung

ACLs für bestehende Verzeichnisstruktur

  • sudo setfacl -R -m g:entwickler:rwx /projekte/webapp/
  • sudo setfacl -R -m g:qa:rx /projekte/webapp/

Vererbung einrichten

  • sudo setfacl -d -m g:entwickler:rwx /projekte/webapp/

Praktische ACL-Anwendungsfälle

Entwicklungsprojekt-Setup


# Projektstruktur erstellen
sudo mkdir -p /projekte/webapp/{src,docs,config}

# Basis-ACLs für Entwicklerteam
sudo setfacl -m g:entwickler:rwx /projekte/webapp/src
sudo setfacl -m g:entwickler:rwx /projekte/webapp/docs

# Spezielle Rechte für QA-Team
sudo setfacl -m g:qa:rx /projekte/webapp/src
sudo setfacl -m g:qa:r /projekte/webapp/docs

# Konfigurationsverzeichnis mit beschränktem Zugriff
sudo setfacl -m g:admin:rwx,g:entwickler:r /projekte/webapp/config

ACLs verwalten


# ACL für eine Datei anzeigen
getfacl datei.txt

# ACL setzen
# Syntax: setfacl -m u:username:rwx datei
setfacl -m u:anna:rw- projekt.txt
setfacl -m g:entwickler:r-x scripts/

# Mehrere ACL-Einträge
setfacl -m u:anna:rw-,g:projekt:r-- datei.txt

# Rekursive ACLs für Verzeichnisse
setfacl -R -m g:entwickler:rwx /projekte/

Praktische ACL-Beispiele

Standard-ACLs für ein Projektverzeichnis


# Projektverzeichnis erstellen
sudo mkdir -p /projekte/webapp

# Basis-ACLs setzen
# Entwickler haben vollen Zugriff
# QA-Team hat Lese- und Ausführrechte
sudo setfacl -m g:entwickler:rwx,g:qa:rx /projekte/webapp

# Standard-ACLs für neue Dateien
sudo setfacl -d -m g:entwickler:rwx,g:qa:rx /projekte/webapp

# ACLs überprüfen
getfacl /projekte/webapp

Geteiltes Dokumentenverzeichnis


# Dokumentenstruktur
sudo mkdir -p /dokumente/{public,team,management}

# Public: Alle können lesen
sudo setfacl -m g:users:rx /dokumente/public
sudo setfacl -d -m g:users:rx /dokumente/public

# Team: Nur Teammitglieder
sudo setfacl -m g:team:rwx /dokumente/team
sudo setfacl -d -m g:team:rwx /dokumente/team

# Management: Nur bestimmte Personen
sudo setfacl -m u:chef:rwx,u:sekretariat:rx /dokumente/management

ACLs für verschiedene Anwendungsfälle

Gemeinsames Dokumentenverzeichnis:


# Verzeichnisstruktur:
/dokumente/
├── public/     

# Alle können lesen
├── team/       

# Nur Teammitglieder
└── private/    

# Nur spezifische Benutzer
# ACLs setzen
sudo setfacl -R -m g:users:rx /dokumente/public
sudo setfacl -R -m g:team:rwx /dokumente/team
sudo setfacl -m u:chef:rwx,u:sekretariat:rx /dokumente/private

Weitere praktische ACL-Beispiele

Komplexe Projektstruktur mit ACLs


# Projektstruktur erstellen
sudo mkdir -p /projekte/webapp/{src,docs,config,tests}

# Basis-Berechtigungen
sudo chown -R root:entwickler /projekte/webapp
sudo chmod 2775 /projekte/webapp

# Differenzierte ACLs setzen
# Entwickler haben vollen Zugriff auf src und tests
sudo setfacl -R -m g:entwickler:rwx /projekte/webapp/src
sudo setfacl -R -m g:entwickler:rwx /projekte/webapp/tests

# QA-Team hat Lese- und Ausführrechte für tests
sudo setfacl -R -m g:qa:rx /projekte/webapp/tests

# Dokumentation für alle lesbar
sudo setfacl -R -m g:users:rx /projekte/webapp/docs

# Config nur für Administratoren
sudo setfacl -R -m g:admin:rwx,g:entwickler:r /projekte/webapp/config

ACL-Vererbung für neue Dateien


# Standard-ACLs für neue Dateien setzen
sudo setfacl -d -m g:entwickler:rwx /projekte/webapp/src
sudo setfacl -d -m g:qa:rx /projekte/webapp/tests

# ACL-Vererbung überprüfen
getfacl /projekte/webapp/src

Benutzeraktivitäten überwachen

Die Überwachung von Benutzeraktivitäten ist ein wichtiger Aspekt der Systemsicherheit und -verwaltung.

Voraussetzungen:

  • sudo apt install auditd audispd-plugins

Benutzeraktivitäten verstehen

Monitoring-Bereiche:


┌─────────── Login/Logout ────────────────────────────────────┐
│  • Anmeldeversuche                                          │
│  • Erfolgreiche/fehlgeschlagene                             │
│  • SSH-Zugriffe                                             │
├─────────── Aktivitäten ─────────────────────────────────────┤
│  • Ausgeführte Befehle                                      │
│  • Dateizugriffe                                            │
│  • Ressourcennutzung                                        │
└─────────────────────────────────────────────────────────────┘

Login-Überwachung


# Aktuelle Login-Sessions
who
w

# Login-Historie
last
last -f /var/log/wtmp    

# Erfolgreiche Logins
lastb                    

# Fehlgeschlagene Logins
# SSH-Zugriffe überwachen
tail -f /var/log/auth.log | grep sshd

Benutzeraktivitäten aufzeichnen


# Audit-System aktivieren
sudo apt install auditd

# Audit-Regeln hinzufügen
sudo auditctl -w /etc/passwd -p wa -k user-modify
sudo auditctl -w /etc/group -p wa -k group-modify

# Audit-Logs anzeigen
sudo ausearch -k user-modify
sudo aureport --auth     

# Authentifizierungsbericht

Ressourcennutzung überwachen


# Prozesse eines Benutzers
ps -u username

# Ressourcenverbrauch
top -u username
iotop -u username        

# I/O-Aktivität
# Detaillierte Prozessanalyse
sudo ps auxf | grep username

Erweiterte Monitoring-Tools

Prozess-Monitoring mit auditd:


# Prozess-Überwachung einrichten
sudo auditctl -a exit,always -F arch=b64 -S execve -k cmd_exec

# Benutzeraktionen überwachen
sudo ausearch -k cmd_exec
sudo aureport -x --summary

# Detaillierte Prozessanalyse
sudo ausearch -k cmd_exec -i | grep username

Login-Monitoring mit fail2ban:


# Installation
sudo apt install fail2ban

# Konfiguration prüfen
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Geblockte IPs anzeigen
sudo fail2ban-client get sshd banip

Ressourcen-Monitoring:


# CPU und Memory pro Benutzer
top -U username

# Disk-Nutzung pro Benutzer
sudo du -sh /home/*

# Netzwerkaktivität
sudo nethogs
sudo iftop

Echtzeit-Überwachung

System Activity Reporter (SAR):


# Installation
sudo apt install sysstat

# Aktivitäten aufzeichnen
sudo sar -u 1 5    

# CPU-Nutzung alle 1 Sekunde, 5 Mal
sudo sar -r 1 5    

# Speichernutzung
sudo sar -b 1 5    

# I/O-Statistiken

Prozess-Tracking:


# Prozess-Baum eines Benutzers
pstree username

# Detaillierte Prozessinformationen
ps auxf | grep username

# Kontinuierliche Überwachung
watch -n 1 'ps aux | grep username'

Integration Monitoring-Tools

Zentrales Logging-System


# Rsyslog für zentrales Logging konfigurieren
sudo nano /etc/rsyslog.d/auth-logging.conf

# Beispielkonfiguration:
auth,authpriv.*                 /var/log/auth.log

# Benutzeraktivitäten protokollieren
*.*;auth,authpriv.none          -/var/log/syslog

Automatisiertes Monitoring-Skript:


#!/bin/bash
# user-monitor.sh
# Benutzeraktivitäten überwachen
echo "=== Täglicher Benutzeraktivitätsbericht ===" > /var/log/user-report.txt
date >> /var/log/user-report.txt

# Login-Versuche
echo "Fehlgeschlagene Logins:" >> /var/log/user-report.txt
grep "Failed password" /var/log/auth.log >> /var/log/user-report.txt

# Sudo-Nutzung
echo "Sudo-Verwendung:" >> /var/log/user-report.txt
grep "sudo:" /var/log/auth.log >> /var/log/user-report.txt

# Ressourcennutzung pro Benutzer
echo "Ressourcenverbrauch:" >> /var/log/user-report.txt
ps aux --sort=-%cpu | head -n 5 >> /var/log/user-report.txt

Automatische Benachrichtigungen:


# Warnung bei verdächtigen Aktivitäten
if grep -q "Failed password" /var/log/auth.log; then
	echo "Warnung: Fehlgeschlagene Login-Versuche" | \
	mail -s "Sicherheitswarnung" admin@localhost
fi

Troubleshooting

Häufige PAM-Probleme und Lösungen

PAM-Konfigurationsprobleme

Problem: PAM-Authentifizierung schlägt fehl


# Fehlermeldung:
# Authentication token manipulation error
# Schrittweise Diagnose:
# 1. PAM-Logs prüfen
sudo tail -f /var/log/auth.log

# 2. PAM-Module überprüfen
ldd /usr/lib/pam/pam_pwquality.so

# 3. PAM-Konfiguration testen
sudo pam-auth-update --verbose

Berechtigungsprobleme

Problem: Shadow-Passwort-Zugriff


# Fehlermeldung:
# Authentication service cannot retrieve authentication info
# Lösungen:
# 1. Shadow-Datei-Berechtigungen prüfen
ls -l /etc/shadow

# Sollte sein: -rw-r----- root:shadow
# 2. PAM-Shadow-Modul prüfen
sudo ls -l /lib/x86_64-linux-gnu/security/pam_unix.so

Praktische Lösungsbeispiele

Problem: Passwort-Historie umgehen (für Notfälle)


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

# remember=5 temporär auskommentieren

Problem: Gesperrtes Root-Konto

  • sudo passwd -u root

Problem: Vergessenes Passwort

  • sudo passwd username

Best Practices für das Troubleshooting

Systematische Fehlersuche

Checkliste für Passwort-Probleme:


┌─────────── Konfiguration ───────────────────────────────────┐
│  □ PAM-Module installiert?                                  │
│  □ Konfigurationsdateien lesbar?                            │
│  □ Berechtigungen korrekt?                                  │
├─────────── Logs ────────────────────────────────────────────┤
│  □ auth.log überprüft?                                      │
│  □ syslog kontrolliert?                                     │
│  □ systemd-journal geprüft?                                 │
├─────────── Benutzer ────────────────────────────────────────┤
│  □ Account nicht gesperrt?                                  │
│  □ Gruppen korrekt?                                         │
│  □ Shadow-Eintrag vorhanden?                                │
└─────────────────────────────────────────────────────────────┘

Logging und Monitoring


# Echtzeit-Log-Überwachung
sudo tail -f /var/log/auth.log

# Fehlgeschlagene Anmeldeversuche
sudo grep "Failed password" /var/log/auth.log

# PAM-Ereignisse überwachen
sudo journalctl -u systemd-logind

Notfall-Wiederherstellung


# Temporäre Policy-Deaktivierung (nur im Notfall!)
sudo mv /etc/pam.d/common-password /etc/pam.d/common-password.bak
sudo cp /etc/pam.d/common-password.orig /etc/pam.d/common-password

# Backup wiederherstellen
sudo mv /etc/pam.d/common-password.bak /etc/pam.d/common-password

Dokumentation und Reporting


# Aktuelle Konfiguration dokumentieren
sudo cp /etc/security/pwquality.conf /root/pwquality.conf.$(date +%F)

# Konfigurationsänderungen protokollieren
echo "$(date): PAM-Konfiguration angepasst" >> /var/log/security-changes.log

# Regelmäßige Überprüfungen
sudo aureport --auth    

# Authentifizierungsberichte
sudo aureport --failed  

# Fehlgeschlagene Anmeldungen

Übung

Sichere Benutzerumgebung einrichten

Szenario: Du sollst für ein Entwicklungsteam eine sichere Benutzerumgebung mit fortgeschrittenen Passwort-Policies und Zugriffskontrollen einrichten.

Anforderungen:


┌─────────── Passwort-Policy ─────────────────────────────────┐
│  • Mindestens 12 Zeichen                                    │
│  • Komplexitätsregeln                                       │
│  • 90 Tage Gültigkeit                                       │
│  • 5 Passwörter Historie                                    │
├─────────── Benutzergruppen ─────────────────────────────────┤
│  • Entwickler (voller Zugriff)                              │
│  • Praktikanten (eingeschränkt)                             │
│  • Externe (temporärer Zugriff)                             │
└─────────────────────────────────────────────────────────────┘

Mögliche Lösung:


#!/bin/bash
# 1. PAM-Konfiguration
sudo nano /etc/security/pwquality.conf

# Füge hinzu:
minlen = 12
minclass = 3
maxrepeat = 2
enforce_for_root

# 2. Passwort-Historie
sudo nano /etc/pam.d/common-password

# Füge hinzu:
password required pam_pwhistory.so remember=5 use_authtok

# 3. Passwort-Aging
sudo nano /etc/login.defs

# Setze:
PASS_MAX_DAYS   90
PASS_MIN_DAYS   1
PASS_WARN_AGE   14

# 4. Gruppen erstellen
sudo groupadd entwickler
sudo groupadd praktikanten
sudo groupadd externe

# 5. Benutzer anlegen
# Entwickler
sudo useradd -m -s /bin/bash -G entwickler dev1
sudo chage -M 90 -m 1 -W 14 dev1

# Praktikant
sudo useradd -m -s /bin/bash -G praktikanten praktikant1
sudo chage -M 30 -m 1 -W 7 praktikant1

# Externer
sudo useradd -m -s /bin/bash -G externe extern1
sudo chage -E $(date -d "+90 days" +%Y-%m-%d) extern1

Überprüfung:

Checkliste:


┌─────────── Passwort-Policy ─────────────────────────────────┐
│  □ PAM-Module installiert                                   │
│  □ Komplexitätsregeln aktiv                                 │
│  □ Historie konfiguriert                                    │
├─────────── Benutzer ────────────────────────────────────────┤
│  □ Entwickler-Accounts aktiv                                │
│  □ Praktikanten zeitlich begrenzt                           │
│  □ Externe mit Ablaufdatum                                  │
└─────────────────────────────────────────────────────────────┘

Befehlsreferenz (Cheatsheet)

Für den schnellen Zugriff bei der Benutzer-, Gruppen- und Rechtekontrolle fasst die folgende Referenztabelle die wichtigsten Kommandos der fortgeschrittenen Benutzerverwaltung zusammen:

Befehl / Syntax Kategorie Funktion & Beschreibung
sudo chage -l <user> Passwort-Aging Zeigt detaillierte Ablaufdaten, Fristen und Warnungen an.
sudo chage -M 90 -W 14 <u> Passwort-Aging Setzt maximale Gültigkeit (90 Tage) und Vorwarnzeit (14 Tage).
sudo chage -d 0 <user> Passwort-Aging Erzwingt eine sofortige Passwortänderung beim nächsten Login.
getfacl <datei> POSIX-ACL Zeigt erweiterte Zugriffssteuerungslisten einer Datei an.
setfacl -m u:anna:rw <datei> POSIX-ACL Weist Benutzer 'anna' spezifische Lese-/Schreibrechte zu.
setfacl -d -m g:grp:rwx <dir> POSIX-ACL Definiert vererbbare Default-ACLs auf einem Verzeichnis.
setfacl -b <datei> POSIX-ACL Entfernt alle erweiterten ACL-Einträge restlos.
sudo edquota -u <user> Quotas Editiert Speicherplatz- und Inode-Limits interaktiv.
sudo setquota -u <u> 500M 600M 0 0 / Quotas Setzt Quota-Limits direkt per Befehl oder Skript.
sudo repquota -avugs Quotas Generiert systemweiten Quota-Report für Benutzer und Gruppen.
sudo visudo Sudoers Öffnet Sudoers-Konfiguration mit automatischer Syntaxprüfung.
sudo visudo -c Sudoers Prüft Sudoers-Dateien auf Syntaxfehler ohne sie zu öffnen.
last -n 20 Audit / Monitoring Zeigt die letzten 20 erfolgreichen System-Logins an.
sudo lastb -n 20 Audit / Monitoring Zeigt fehlgeschlagene Login-Versuche (Bad Logins) an.
sudo auditctl -w <pfad> -p wa Audit / Monitoring Überwacht Datei-Schreibzugriffe via Linux Kernel-Audit.

Weiterführende Ressourcen

Die folgenden Leitfäden, Spezifikationen und internen Kursmodule vertiefen die fortgeschrittene Benutzerverwaltung und Zugriffskontrolle:

Ressource Beschreibung
Linux-PAM System Administrator's Guide Offizielles Handbuch zur modularen PAM-Architektur.
POSIX Access Control Lists auf Linux Offizielle Man-Page zu POSIX-ACLs und Berechtigungsmasken.
Linux Quota Mini-HOWTO Ausführliche Dokumentation zum Quota-Subsystem unter Linux.
Sudoers Manual & Syntax-Referenz Offizielle Dokumentation zur Sudoers-Konfiguration.
Linux Administration #1: Grundlagen Das Fundament: Systemarchitektur, FHS, Mounten & Dateirechte.
chmod & Dateiberechtigungen Leitfaden Fundamentale Vertiefung zu Berechtigungen und Oktalwerten.

Fazit

Mit der Beherrschung von PAM-Authentifizierungs-Stacks, strikten Passwort-Policies via pwquality, granularen POSIX-ACLs, Speicherplatz-Quotas und einer professionellen Sudoers-Architektur bist du in der Lage, Multi-User-Systeme nach höchsten Unternehmens- und Compliance-Standards abzusichern und zu verwalten.

💡 Praxis-Tipp: Nutze für Sudo-Berechtigungen immer modulare Dateien unter /etc/sudoers.d/ mit restriktiven Dateirechten (chmod 440), anstatt die Hauptdatei /etc/sudoers manuell aufzublähen. Das erleichtert das Konfigurationsmanagement via Ansible oder GitOps erheblich.

Im nächsten Modul unseres Administrationskurses widmen wir uns der Überwachung und Steuerung laufender Programme und Systemressourcen: 👉 Weiter geht es mit: Linux Administration #3: Prozesse und Ressourcenverwaltung

👉 Zur Kursübersicht: Alle Linux-Administrations-Artikel & Module

Teilen & Export

Als Markdown exportieren