V zabezpečeném prostředí je často požadavkem zamknout uživatele poté, co zadali nesprávné heslo na určitý počet opakování. Díky tomu je systém znovu chráněn Příspěvek popisuje, jak zamknout účet po N nesprávných pokusech o přihlášení pomocí souborů pam.d . pam_faillock modul podporuje dočasné uzamčení uživatelských účtů v případě více neúspěšných pokusů o autentizaci. Tento nový modul vylepšuje funkčnost oproti stávajícímu modulu pam_tally2, protože také umožňuje dočasné zamykání při pokusech o ověření přes spořič obrazovky.
Zamknout uživatele po N nesprávných přihlášeních
1. Nejprve vytvořte zálohu souboru /etc/pam.d/password-auth a /etc/pam.d/system-auth . Poté přidejte řádky zvýrazněné červeně do obou souborů.
auth required pam_env.so auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 auth sufficient pam_faillock.so authsucc audit deny=3 auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_faillock.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so The above configuration file would lock out users after 3 unsuccessful login attempts and unlock them after 10 minutes.
Zde,
odmítnout - umožňuje nám nastavit hodnotu N (počet pokusů), po jejímž překročení má být uživatelský účet uzamčen.
unlock_time - je doba, po kterou by měl účet zůstat uzamčen [Volitelné]
even_deny_root – zajišťuje, že stejné pravidlo platí i pro uživatele root. Chcete-li z této zásady vyloučit uživatele root, jednoduše odstraňte parametr z řádku [Volitelné].
Poznámka :Pořadí řádků v souborech je důležité a jakákoli změna pořadí by skončila uzamčením všech uživatelů včetně uživatele root, pokud používáte volbu even_deny_root.
2. Chcete-li uzamknout uživatele root, požadované ověření pam_faillock.so řádek by měl být přidán do obou /etc/pam.d/system-auth a /etc/pam.d/password-auth takto:
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 root_unlock_time=600
3. Chcete-li uživateli zakázat uzamčení i po několika neúspěšných přihlášeních, přidejte řádek níže těsně nad pam_faillock v obou /etc/pam.d/system-auth a /etc/pam.d/password-auth a nahraďte uživatele1, uživatel2 skutečnými uživatelskými jmény.
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
4. Restartujte službu sshd.
# systemctl restart sshd
Resetujte heslo uzamčeného uživatele
1. Zobrazení záznamů o selhání ověření:
# faillock --user [username]
2. Pro resetování záznamů o selhání ověření:
# faillock --user [username] --reset