Zugriffsbeschränkung mit pam_abl

  Lioh Möller   Lesezeit: 3 Minuten  🗪 2 Kommentare

pam_abl bietet einen Schutz vor unerlaubten Anmeldeversuchen.

zugriffsbeschränkung mit pam_abl

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

Joe
Geschrieben von Joe am 27. April 2023 um 09:29

Hallo Lioh,

vielenDank fürdie Kurzvorstellung von pam_abl. Von diesem Tool habe ich bisher noch nichts gehört. Allerdings frage ich mich, was hier der Unterschied zu fail2ban ist, ob es Vor- bzw. Nachteile gibt? Die Tools erscheinen mir ziemlich von den Aufgaben sehr deckungsgleich.

Beste Grüße

Joe

Lioh
Geschrieben von Lioh am 27. April 2023 um 10:27

Beide Anwendungen ergänzen sich gut und kommen beispielsweise in Kombination auf der Freedombox zum Einsatz. pam_abl klinkt sich wie beschrieben direkt in PAM ein, wohingegen fail2ban ein vorhandenes Paketfiltersystem wie nftables beeinflusst.