Zugriffsbeschränkung mit pam_abl

Mi, 26. April 2023, Lioh Möller

Wer sein System zusätzlich gegen Angriffe schützen möchte, kann auf das pam_abl Modul zurückgreifen. Die Lösung arbeitet mit sogenannter Black- und Whitelists. Dabei kann eine maximale Anzahl erfolgloser Anmeldeversuche innerhalb eines bestimmten Zeitraums festgelegt werden, nach der ein Host und/oder Benutzer gesperrt wird. Erst wenn von diesem Host und/oder Benutzer in einer bestimmten Zeit keine weiteren Anmeldeversuche ausgehen, erfolgt eine erneute Freigabe.



pam_abl installiert man unter einem Debian GNU/Linux basierten System wie folgt:

sudo apt install libpam-abl

Zur Einbindung wird das Modul in der gewünschten PAM Konfiguration eingebunden. Möchte man beispielsweise, dass alle Loginversuche geschützt werden, unabhängig davon, ob diese lokal oder beispielsweise über SSH erfolgen, kann dazu in der /etc/pam.d/common-auth zu Beginn folgende Konfiguration hinzugefügt werden:

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

# here are the per-package modules (the "Primary" block)
auth    required                        pam_abl.so config=/etc/security/pam_abl.conf

Die eigentliche Konfiguration von pam_alb erfolgt in der angegebenen Konfigurationsdatei /etc/security/pam_abl.conf

Ein Beispiel kann dabei wie folgt aussehen:

db_home=/var/lib/abl
host_db=/var/lib/abl/hosts.db
host_purge=1d
host_rule=*:30/1h
user_db=/var/lib/abl/users.db
user_purge=1d
user_rule=*/sshd:5/1h
host_clear_cmd=[logger] [clear] [host] [%h]
host_block_cmd=[logger] [block] [host] [%h]
user_clear_cmd=[logger] [clear] [user] [%u]
user_block_cmd=[logger] [block] [user] [%u]
limits=1000-1200
host_whitelist=localhost;192.168.1.0/24
user_whitelist=admin

Über Whitelist-Einträge lassen sich Hosts oder Netzwerke sowie Benutzerkonten dauerhaft freischalten.

Alle blockierten Benutzer kann man sich über folgenden Befehl ausgeben lassen:

sudo pam_abl

Um einen Eintrag von der Blacklist zu entfernen, kann wie folgt vorgegangen werden:

# Benutzereintrag entfernen:
sudo pam_abl -w -U <Benutzername>
# Hosteintrag entfernen:
sudo pam_abl -w -H <Hostname>

Analog dazu können mithilfe von pam_abl -f -U (für Benutzer) und pam_abl -f -H (für Hosts) Einträge zur Blacklist hinzugefügt werden.

Weitere Informationen finden sich in der Man-Page zu pam_abl.

Tags

Sicherheit, SSH, Login, Bruteforce, Schutz