GNU/Linux >> Linux Esercitazione >  >> Linux

Blocca account utente dopo n tentativi di accesso falliti in Linux

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.


Linux
  1. CentOS / RHEL 7:Blocca l'account utente dopo N numero di tentativi di accesso errati

  2. Come controllare i tentativi di accesso falliti o errati in Linux

  3. login Esempi di comandi in Linux

  4. Impossibile sbloccare l'account utente Linux

  5. Kali Linux non è riuscito dopo l'aggiornamento

Come forzare l'utente a modificare la password al prossimo accesso in Linux

comando userdel - Elimina l'account utente dal sistema Linux

Come disabilitare l'accesso SSH a un utente specifico in Linux

comando pam_tally2 – blocca e sblocca gli accessi ssh non riusciti in Linux

CentOS / RHEL 6:Blocca l'account utente dopo N numero di tentativi di accesso errati

Controlla i tentativi di accesso utente riusciti e non riusciti in Linux