19.04.2023

Linux System

Linux Tastenkombinationen
Konfigurations-Dateien und Verzeichnisse unter Linux
System Anpassung
Systemreparatur
Bootmanager - Grub2/Grub/LiLo
Hardwareerkennung
Paket-Verwaltung
Init-System SysV-Init, Systemd, Upstart, Busybox u.a.
System Protokollierung - syslog
PAM Zugriffssteuerung
Admin-Rechte-Steuerung
Kernel 2.4 | 2.6
Linux Intrusion Detection System (LIDS)
User Mode Linux UML
Dateisysteme
Drucken unter Linux
Sound konfigurieren
Partition kopieren
IPX Protokoll
SoftwareRAID
Netzwerk
Bluetooth
X-Server und Desktops
64Bit und 32Bit auf einem System
ACPI System einrichten
Shared Libraries
Linux Console
Jobs mit cron automatisieren
PCMCIA
ISDN und Capi
VNC-Server einrichten
Verschlüsselter Zugriff auf Ressourcen übers Netzwerk
Festplatten Überwachen mit S.M.A.R.T
Linux Systemhilfe richtig verwenden
sudo konfigurieren
Installation aus den Sourcen
SCSI Emulation für ATAPI Geräte einrichten
cloop (Komprimiertes Loopback Device) einrichten
Übersicht ext2 / ext3 Zusatzflags
Versionsverwaltung von Dateien
SSHFS einrichten
Linux unter VMware
sonstiges

Seitenanfang

PAM Zugriffssteuerung

PAM - Pluggable Authentication Modules

/etc/security/ Einstellung für die Sicherheit des Systems

Jeder Eintrag einer solchen Konfigurationsdatei besteht aus mindestens drei Elementen. Es beginnt mit einem Modultyp gefolgt von einem Kontroll-Flag. An dritter Stelle steht der Name des Moduls und optional dahinter weitere Argumente.

Modultyp - Kontroll-Flag - Modul

Modultyp Beschreibung unterstützte Funktion Beschreibung
auth Authentisierungsmanagement pam_authenticate() pam_setcred() Benutzerauthentisierung Setzen, Erneuern oder Löschen von Berechtigungen
account Zugangsmanagement pam_acct_mgmt() Entscheidung, ob Zugang gestattet oder verweigert wird (z.B. zeitliches Zugangslimit)
session Sitzungsmanagement pam_open_session() pam_close_session() z.B. Dauer einer Sitzung kontrollieren /protokollieren
password Passwort-Management pam_chauthtok() Kontrolle der Passwortänderung
password required pam_cracklib.so retry=3 minlen=8 difok=3
password required pam_unix.so nullok use_authtok md5 shadow

wenn ein neues Passwort erstellt wir, prüft "pam_cracklib.so" das Passwort auf Schwachstellen (z.B. Wörterbuchtest).
retry=3 bei Fehlschlag des Testes hat der User noch zwei weitere Möglichkeiten hat ein besseres Passwort zu erstellen.
minlen=8 mindestlänge von 8 Zeichen
difok=3 mind. 3 Zeichen müssen im neuen Passwort geändert sein
nullok Benutzer darf ein Passwort von einem leeren Passwort ändern, anderenfalls wird ein Null-Passwort als Account-Sperre betrachtet.
use_authtok Dieses Argument weist das Modul an, den Benutzer nicht zur Eingabe eines neuen Passworts aufzufordern. Stattdessen wird jedes Passwort akzeptiert, das von vorherigen Passwort-Modulen verwendet wurde. Auf diese Weise müssen allen neuen Passwörter den pam_cracklib.so Test für sichere Passwörter durchlaufen, bevor sie akzepiert werden.
md5
shadow Update des Passwortes erfolgt in der shadow-Passwortdatei

Wie und in welcher Weise die aufgeführten Funktionen eines Moduls relevant sind, kontrollieren die sogenannten Kontroll-Flags:

control-flag Beschreibung
required Modul muss zwingend durchlaufen werden, auch bei nicht erfolgreichem Durchlaufen werden alle folgenden Module bearbeitet (damit ist nicht ersichtlich, welches Modul den Zugriff verweigert).
requisite Bei einem Fehler (nicht erfolgreiches Durchlaufen) wird sofort zum Anwendungsprogramm (z.B. login) zurückgekehrt, ohne die folgenden Module abzuarbeiten. Ansonsten wird in der Abarbeitung der Kette fortgefahren.
optional Bei Erfolg werden trotzdem alle nachfolgenden Module abgearbeitet.
sufficient Bei Erfolg des Moduls wird sofort zur Anwendung zurückgekehrt, die Abarbeitung der anderen Module ist nicht notwendig.
wichtige PAM-Module
pam_access eingeschränkte Zugangsberechtigungen (Benutzer <--> Terminal) Konfigurationsdatei: /etc/security/access.conf
pam_group Zuweisung zu Benutzergruppen entsprechend bestimmter Kriterien (Benutzer, Zeit, Terminal). Konfigurationsdatei: /etc/security/group.conf
pam_rhosts_auth.so Unterbindung des Remote Zugriffs durch .rhosts Dateien
pam_console.so Räumt normalen Benutzern zusätzliche Rechte ein.(ACHTUNG: Dieses Modul sollte in abzusichernden Systemen NIE benutzt werden)
pam_tally.so Sperrung des Zugangs nach x fehlgeschlagenen Login-Versuchen
pam_shield.so Intrusion Prevention System (IPS)
pam_siegho.so Intrusion Prevention System (IPS)
libxad.so Einschränkungen der User definieren
pam_wheel.so Begrenzung des su Kommandos auf kleine Benutzergruppe
xpam_time.so zeitgesteuerte Zugangskontrolle
pam_env.so nicht veränderliche Umgebungsvariablen
pam_pwdb.so Authentifikation
mod_auth_pam PAM Modul für apache Webserver
pam_ftp.so Anonymous Zugriff (testet Passwort auf "@"-Zeichen)
pam_php.so PAM Unterstützung für PHP
pam_ssh.so Single Sign-on mit SSH, Passphrase des private Key wird abgefragt
Server-basierte Authentifizierung
pam_krb5.so MIT Kerberos 5
pam_ldap.so LDAP Server (Lightweight Directory Access Protocol)
pam_radius.so Radius (Remote Authentication Dial-In User Service)
pam_tacplus.so TACACS+ Server
pam_smb.so | pam_smbmount.so Windows oder SambaServer
pam_pop.so | pam_imap.so eMail Server
Datenbank-basierte Authentifizierung
pam_pgsql.so Postgres SQL
pam_mysql.so MySQL
pam_informix.so Informix SQL
pam_ibmdb2.so IBM DB2 SQL
pam_oci8.so Oracle 8i | 9i
Authentifizierung mit Kryptografische Token | biometrische Geräte
pam_x509.so X509 Zertifikat
poldi.so OpenPGP Smartcard
pam_pkcs11.so Krypto Token auf Smartcard oder USB KryptoStick
pam_p11.so Krypto Token auf Smartcard oder USB KryptoStick
UPEK SDK Fingerabdruckleser von UPEK
pam_blue.so Authentifizierung mit der MAC Adresse einen Bluetooth Gerätes
pam_mobtok.so Schlüsselgenerator auf Java-fähigen Mobilgerät
BioAPI Linux BioAPI
pam_thinkfinger.so Fingerabdruckleser
One Time Passwort (OTP) nach RFC1760
pam_skey.so S/KEY Einwegpasswort
pam_sotp S/KEY Einwegpasswort

PAMTester

Beispiele

Anmeldung per Fingerprintreader

#/etc/pam.d/login
auth	sufficient	pam_thinkfinger.so
auth	requisite	pam_unix.so try_first_pass

Anmeldung mit Fingerprint und Passwort

#/etc/pam.d/login
auth	requisite	pam_thinkfinger.so
auth	requisite	pam_unix.so

SSH Loginversuche begrenzen, zwischen den Loginversuchen läuft ein Counter von 30 sek.

#/etc/pam.d/sshd
auth required pam_tally.so onerr=fail lock_time=30 deny=5 unlock_time=600

lock_time=30 - 30 Sekunden zwischen den Loginversuchen
deny=5 - nach 5 Fehlversuchen wird der Account gesperrt für
unlock_time=600 - 10 Minuten

Wenn ein Benutzer Fehllogins hat, kann der Status mit pam_tally abfragen werden.