Spesso un requisito in un ambiente sicuro è bloccare gli utenti dopo che hanno inserito una password errata per un determinato numero di volte. Ciò rende il sistema protetto da attacchi come gli attacchi del dizionario di password. Il post descrive come bloccare un account dopo N tentativi di accesso errati utilizzando file pam.d .
Blocca utente dopo N accessi errati
1. Innanzitutto, fai un backup del file /etc/pam.d/password-auth e /etc/pam.d/system-auth . Quindi aggiungi le seguenti righe al file.
auth required pam_tally2.so file=/var/log/tallylog deny=N even_deny_root unlock_time=1200 account required pam_tally2.so
Qui,
file=/var/log/tallylog – I tentativi di accesso non riusciti vengono registrati qui.
nega – ci consente di impostare il valore N (n. di tentativi) dopo il quale l'account utente deve essere bloccato.
even_deny_root – si assicura che la stessa regola si applichi anche all'utente root. Per escludere l'utente root da questo criterio, è sufficiente rimuovere il parametro dalla riga. [Facoltativo]
unlock_time – è il tempo per il quale l'account deve rimanere bloccato [Facoltativo]
L'esempio /etc/pam.d/system-auth avrà il seguente aspetto:
# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_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_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
2. Modifica il file /etc/ssh/sshd_config per aumentare i MaxAuthTries valore a un valore superiore al numero sopra.
# vi /etc/ssh/sshd_config MaxAuthTries 10
3. Salva il file dopo aver controllato il ChallengeResponseAuthentication no è già impostato nel file.
# vi /etc/ssh/sshd_config ChallengeResponseAuthentication no
4. Riavvia il servizio sshd.
# service sshd restart
Reimposta il blocco
1. Faillog comando riporta il numero di tentativi di accesso non riusciti per un utente specifico:
# faillog -u [username]
2. Se viene utilizzato pam_tally2.so, il comando pam_tally2 può essere utilizzato per controllare il numero di tentativi di accesso non riusciti per un utente specifico:
# pam_tally2 -u [username]
3. Per ripristinare il blocco per un utente, pam_tally2 comando può essere utilizzato:
# pam_tally2 --user=[username] --reset