Zabezpečenie SSH: Pokusy o prihlásenie sa nepodarilo uzamknúť pomocou pam_faillock


Modul pam_tally2, ktorý sa kedysi používal na uzamknutie používateľských účtov po určitom počte neúspešných pokusov o prihlásenie cez SSH, bol v distribúciách založených na RHEL a iných moderných Linuxoch zastaraný a nahradený modulom pam_faillock distribúcie, vďaka väčšej flexibilite a možnostiam zabezpečenia.

Predtým bol modul pam_tally2 zodpovedný za počítanie neúspešných pokusov o prihlásenie a zamykanie účtov. V rámci vylepšení zabezpečenia sa však pam_faillock stal štandardom na správu neúspešných pokusov o prihlásenie v novších verziách Linuxu tým, že poskytuje lepšiu integráciu a viac možností konfigurácie.

Prechod z pam_tally2 na pam_faillock

Zatiaľ čo príkaz pam_tally2 pozostával z dvoch častí – pam_tally2.so a príkazu pam_tally2, bol postupne zrušený v prospech pam_faillock, ktorý je navrhnutý tak, aby spracovával pokusy o prihlásenie bezpečnejším a flexibilnejším spôsobom.

pam_faillock ponúka podobnú funkciu, ale s vylepšeniami, ako sú:

  • Vylepšené protokolovanie a hlásenie neúspešných pokusov.
  • Lepšie spracovanie pravidiel blokovania účtu.
  • Podpora konfigurovateľných limitov neúspešných pokusov o prihlásenie a automatické odomknutie účtu po uplynutí časového limitu.

Tento článok ukazuje, ako nakonfigurovať uzamknutie účtu SSH pomocou modulu pam_faillock po určitom počte neúspešných pokusov o prihlásenie.

Ako uzamknúť a odomknúť používateľské účty pomocou pam_faillock

Otvorte oba konfiguračné súbory PAM /etc/pam.d/password-auth a /etc/pam.d/sshd v závislosti od vášho systému a služby, ktorú používate konfigurácia.

sudo vi /etc/pam.d/password-auth
sudo vi /etc/pam.d/sshd

Pridajte nasledujúce riadky na začiatok sekcie auth na konfiguráciu pravidiel neúspešných pokusov o prihlásenie:

auth        required      pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200
auth        [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=1200

Ak chcete povoliť správu účtu v prípade zlyhania prihlásenia, pridajte nasledujúci riadok do sekcie account:

account     required      pam_faillock.so

Vysvetlenie parametrov:

  • deny=3: Zamietne prístup po 3 neúspešných pokusoch.
  • even_deny_root: Aplikujte politiku aj na používateľa root.
  • unlock_time=1200: Automaticky odomkne účet po 20 minútach (1200 sekundách). Odstráňte túto možnosť, ak chcete, aby účet zostal uzamknutý až do manuálneho resetovania.
  • audit: Zaznamenáva neúspešné pokusy o prihlásenie do denníka auditu systému.

Teraz otvorte súbor /etc/security/faillock.conf a zadajte, koľko neúspešných pokusov spustí uzamknutie a trvanie doby blokovania.

Number of allowed failures before lockout
deny = 5

Lockout duration in minutes
unlock_time = 15

Path to the faillock database
Optional: You can specify where to store faillock information
faillock_path = /var/lib/faillock

Potom otvorte súbor /etc/ssh/sshd_config a povoľte nasledujúce nastavenie na používanie PAM na overenie SSH.

UsePAM yes

Ak chcete použiť zmeny, reštartujte službu SSH:

sudo systemctl restart sshd

Ako otestovať funkčnosť uzamknutia účtu SSH

Po uložení vyššie uvedenej konfigurácie môžete otestovať mechanizmus blokovania prihlásenia vykonaním 3 neúspešných pokusov o prihlásenie na server SSH.

ssh [email 

[email 's password:
Permission denied, please try again.
[email 's password:
Permission denied, please try again.
[email 's password:
Account locked due to 3 failed logins

Ako skontrolovať zlyhania prihlásenia používateľa SSH

Ak chcete skontrolovať neúspešné pokusy o prihlásenie pre konkrétneho používateľa, použite nasledujúci príkaz:

sudo faillock --user username

Príklad výstupu:

Login           Failures  Latest failure     From
user                3     10/17/2024 14:15   192.168.0.5

Ako obnoviť alebo odomknúť používateľský účet

Ak chcete obnoviť neúspešné pokusy a odomknúť používateľský účet, použite nasledujúci príkaz:

sudo faillock --user username --reset

Tento príkaz vymaže počet neúspešných pokusov a odomkne používateľa.

Overenie používateľského účtu je odomknuté

Odomknutie účtu môžete potvrdiť opätovným spustením príkazu faillock:

sudo faillock --user username

Ak nedôjde k žiadnym neúspešným pokusom o prihlásenie, výstup bude prázdny, čo znamená, že používateľský účet je odomknutý.

Záver

Na záver, modul pam_faillock poskytuje vylepšený a bezpečnejší spôsob správy neúspešných pokusov o prihlásenie, ktorý nahrádza už zastaraný pam_tally2. Nezabudnite aktualizovať svoje konfiguračné súbory PAM tak, aby používali pam_faillock, aby ste zostali aktuálne s osvedčenými postupmi a bezpečnostnými štandardmi.

Pre viac informácií môžete použiť man pam_faillock z príkazového riadku.

man pam_faillock