Il rafforzamento del server Linux è una delle attività importanti per gli amministratori di sistema quando si tratta di server di produzione. Si consiglia di abilitare la politica dei tentativi di accesso o ssh, significa che l'account dell'utente dovrebbe essere bloccato automaticamente dopo n numeri di tentativi di accesso o ssh falliti (o errati).
Nelle distribuzioni Linux come CentOS, RHEL e Fedora ciò si ottiene utilizzando il modulo pam "pam_faillock ” e per distribuzioni simili a Debian, questo può essere ottenuto usando “pam_tally2 ” modulo pam.
In questo tutorial impareremo come bloccare gli account utente dopo n tentativi di accesso falliti in CentOS, RHEL, Fedora, Debian e Ubuntu
Per CentOS/RHEL/Fedora
Aggiungi le seguenti righe in due file /etc/pam.d/password-auth &/etc/pam.d/system-auth,
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 account required pam_faillock.so
Dove,
- Audit –> abiliterà i log di controllo per il tentativo di accesso dell'utente in un file di log sicuro
- Nega=3 –> bloccherà l'utente dopo 3 tentativi di accesso non riusciti, puoi modificare questo numero secondo le tue esigenze
- unlock_time=600 –> significa che l'account dell'utente rimarrà bloccato per 10 minuti (600 secondi), se vuoi che l'account utente sia bloccato per sempre, imposta questo parametro come "unlock_time=never"
Nota :per bloccare anche l'account root dopo n accessi errati, aggiungi "even_deny_root ” parametro nelle righe della sezione auth, l'esempio è mostrato di seguito
auth required pam_faillock.so preauth silent audit even_deny_root deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600
Come possiamo vedere sopra, abbiamo due righe per la sezione auth e una riga per la sezione account, l'ordine è molto importante durante l'aggiunta di queste righe ai file. Di seguito viene mostrato un esempio in cui è necessario aggiungere queste righe,
[[email protected] ~]# vi /etc/pam.d/password-auth
[[email protected] ~]# vi /etc/pam.d/system-auth
Dopo aver apportato modifiche a entrambi i file, riavvia il servizio ssh utilizzando il comando systemctl di seguito,
[[email protected] ~]# systemctl restart sshd
Eseguiamo il test se l'account utente verrà bloccato dopo tre tentativi di accesso non riusciti o meno.
Supponiamo di avere un account locale con il nome "pkumar", proveremo a ssh il nostro sistema Linux con questo account con password errate,
$ ssh [email protected] [email protected]'s password: [email protected]'s password: [email protected]'s password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Ora visualizza i registri protetti usando il comando tail,
[[email protected] ~]# tail /var/log/secure
I registri sopra confermano che l'account è stato bloccato dopo tre tentativi di accesso errati, verifichiamo anche dal comando faillock,
[[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid 2019-12-15 01:50:39 RHOST 192.168.29.157 V 2019-12-15 01:50:43 RHOST 192.168.29.157 V 2019-12-15 01:50:47 RHOST 192.168.29.157 V [[email protected] ~]#
Per svuotare o cancellare questi tentativi di accesso non riusciti, esegui il seguente comando faillock,
[[email protected] ~]# faillock --user pkumar --reset [[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid [[email protected] ~]#
Passiamo alla distribuzione simile a Debian (Ubuntu, Linux Mint e Debian)
Per Debian, Ubuntu e Linux Mint
Aggiungi la seguente riga nel file "/etc/pam.d/common-auth",
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit
se desideri bloccare anche l'account root dopo tre accessi errati, aggiungi la seguente riga ,
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
Dove:
- Onerr=fail –> In caso di errore emette un errore
- deny=3 –> Dopo tre tentativi di accesso non riusciti l'account verrà bloccato
- unlock_time=600 –> Significa che l'account rimarrà bloccato per 10 minuti o 600 secondi
- audit –> Significa controllare i log nel file audit.log
- even_deny_root –> Blocca l'account root dopo tre accessi errati
- root_unlock_time=600 –> L'account root rimarrà bloccato per 10 minuti o 600 secondi dopo 3 tentativi di accesso non riusciti
Aggiungiamo sopra la riga di discussione nel file "/etc/pam.d/common-auth ” usando l'editor vi,
[email protected]:~$ sudo vi /etc/pam.d/common-auth
Dopo aver apportato le modifiche precedenti, salva ed esci dal file e riavvia il servizio ssh usando il seguente comando,
[email protected]:~$ sudo systemctl restart sshd
Verifichiamo se gli account sono bloccati dopo 3 accessi ssh errati,
Supponiamo di avere un utente "devops" locale, proveremo a ssh il sistema Ubuntu con password errate
$ ssh [email protected] [email protected]'s password: [email protected]'s password: d [email protected]'s password: Permission denied (publickey,password).
Ora visualizza il file di registro di autenticazione per vedere se vengono acquisiti o meno tentativi di accesso errati,
[email protected]:~$ tail /var/log/auth.log
I registri sopra confermano che l'account è stato bloccato, verifichiamo dal comando pam_tally2,
[email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$
Per cancellare questi tentativi di accesso non riusciti, usa il seguente comando pam_tally2,
[email protected]:~$ sudo pam_tally2 -u devops --reset Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$ [email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 0 [email protected]:~$
Questa è la conclusione dell'articolo, non esitare a condividere feedback e commenti.