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:
- TMOUT: tanca la sessió automàtica de Linux Shell quan no hi ha cap activitat
- Mode d'usuari únic: restabliment/recuperació de la contrasenya oblidada del compte d'usuari arrel
- 5 millors pràctiques per protegir i protegir el servidor SSH
- 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.