Com bloquejar els comptes d'usuari després d'intents fallits d'inici de sessió


Aquesta guia mostrarà com bloquejar el compte d'un usuari del sistema després d'un nombre especificat d'intents d'inici de sessió fallits a les distribucions CentOS, RHEL i Fedora. Aquí, l'objectiu és fer complir la seguretat del servidor simple bloquejant el compte d'un usuari després d'un nombre consecutiu d'autenticacions sense èxit.

Això es pot aconseguir utilitzant el mòdul pam_faillock que ajuda a bloquejar temporalment els comptes d'usuari en cas de múltiples intents d'autenticació fallits i manté un registre d'aquest esdeveniment. Els intents fallits d'inici de sessió s'emmagatzemen en fitxers per usuari al directori de compte que és /var/run/faillock/ per defecte.

pam_faillock forma part de Linux PAM (Pluggable Authentication Modules), un mecanisme dinàmic per implementar serveis d'autenticació en aplicacions i diversos serveis del sistema que vam explicar breument a la configuració de PAM per auditar l'activitat de l'intèrpret d'ordres d'inici de sessió de l'usuari.

Com bloquejar els comptes d'usuari després d'autenticacions fallides consecutives

Podeu configurar la funcionalitat anterior als fitxers /etc/pam.d/system-auth i /etc/pam.d/password-auth, afegint les entrades següents a la secció 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

On:

  • auditoria: permet l'auditoria dels usuaris.
  • deny: s'utilitza per definir el nombre d'intents (3 en aquest cas), després dels quals s'ha de bloquejar el compte d'usuari.
  • unlock_time: estableix el temps (300 segons = 5 minuts) durant el qual el compte ha de romandre bloquejat.

Tingueu en compte que l'ordre d'aquestes línies és molt important, les configuracions incorrectes poden fer que tots els comptes d'usuari es bloquegin.

La secció auth dels dos fitxers hauria de tenir el contingut següent organitzat en aquest ordre:

auth        required      pam_env.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_unix.so  nullok  try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

Ara obriu aquests dos fitxers amb l'editor que trieu.

# vi /etc/pam.d/system-auth
# vi /etc/pam.d/password-auth 

Les entrades per defecte a la secció auth ambdós fitxers tenen aquest aspecte.

#%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
auth        required      pam_deny.so

Després d'afegir la configuració anterior, hauria d'aparèixer de la següent manera.

#%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        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet
auth        required      pam_deny.so

A continuació, afegiu la següent entrada destacada a la secció del compte dels dos fitxers anteriors.

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so
account     required      pam_faillock.so

Com bloquejar el compte arrel després d'intents fallits d'inici de sessió

Per bloquejar el compte root després d'intents d'autenticació fallits, afegiu l'opció even_deny_root a les línies dels dos fitxers a la secció auth com aquesta.

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

Un cop ho hàgiu configurat tot. Podeu reiniciar serveis d'accés remot com sshd, perquè la política anterior tingui efecte, és a dir, si els usuaris utilitzaran ssh per connectar-se al servidor.

# systemctl restart sshd  [On SystemD]
# service sshd restart    [On SysVInit]

Com provar els intents d'inici de sessió fallits de l'usuari SSH

A partir de la configuració anterior, vam configurar el sistema per bloquejar el compte d'un usuari després de 3 intents fallits d'autenticació.

En aquest cas, l'usuari tecmint està intentant canviar a l'usuari aaronkilik, però després de 3 inicis de sessió incorrectes a causa d'una contrasenya incorrecta, indicada pel missatge \Permís denegat, el compte de l'usuari aaronkilik està bloquejat tal com mostra el missatge \error d'autenticació” del quart intent.

L'usuari root també rep una notificació dels intents fallits d'inici de sessió al sistema, tal com es mostra a la captura de pantalla següent.

Com veure els intents d'autenticació fallits

Podeu veure tots els registres d'autenticació fallides mitjançant la utilitat de bloqueig d'errors, que s'utilitza per mostrar i modificar el registre d'errors d'autenticació.

Podeu veure els intents fallits d'inici de sessió per a un usuari concret com aquest.

# faillock --user aaronkilik

Per veure tots els intents d'inici de sessió infructuosos, executeu faillock sense cap argument com aquest:

# faillock 

Per esborrar els registres d'errors d'autenticació d'un usuari, executeu aquesta ordre.

# faillock --user aaronkilik --reset 
OR
# fail --reset	#clears all authentication failure records

Finalment, per dir-li al sistema que no bloquegi els comptes d'un usuari o d'un usuari després de diversos intents d'inici de sessió infructuosos, afegiu l'entrada marcada en color vermell, just a sobre d'on es crida primer pam_faillock a la secció d'autenticació dels dos fitxers (/etc/pam.d/). system-auth i /etc/pam.d/password-auth) de la següent manera.

Simplement afegiu noms d'usuari complets separats per dos punts a l'opció usuari a.

auth  required      pam_env.so
auth   [success=1 default=ignore] pam_succeed_if.so user in tecmint:aaronkilik 
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  unlock_time=600
auth   requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth   required      pam_deny.so

Per obtenir més informació, consulteu les pàgines man de pam_faillock i faillock.

# man pam_faillock
# man faillock 

També us agradaria llegir aquests articles útils següents:

  1. TMOUT: tanca la sessió automàtica de Linux Shell quan no hi ha cap activitat
  2. Mode d'usuari únic: restabliment/recuperació de la contrasenya oblidada del compte d'usuari arrel
  3. 5 millors pràctiques per protegir i protegir el servidor SSH
  4. Com obtenir alertes per correu electrònic d'inici de sessió SSH d'usuari i arrel

Això és tot! En aquest article, vam mostrar com fer complir la seguretat del servidor simple bloquejant el compte d'un usuari després d'un nombre x d'inicis de sessió incorrectes o intents d'autenticació fallits. Utilitzeu el formulari de comentaris a continuació per compartir les vostres consultes o pensaments amb nosaltres.