¿Cómo hago cumplir una política de complejidad de contraseña?

14

Necesito configurar un servidor Ubuntu para seguir una estricta política de contraseña de la compañía que especifique lo siguiente:

  • al menos una mayúscula
  • al menos una minúscula
  • al menos un dígito
  • al menos un personaje especial

He echado un vistazo y todo lo que he encontrado son las instrucciones para especificar la longitud de la contraseña; pero todavía tengo que encontrar algo relacionado con la especificación del contenido de la contraseña con respecto a los puntos anteriores.

Cualquier ayuda sería apreciada.

Stephen RC
fuente

Respuestas:

19

El pam_cracklibmódulo impone la complejidad de la contraseña .

Para modificar la política de contraseña para su máquina local, deberá modificar su /etc/pam.d/common-passwordarchivo.

Desde una ventana de terminal ( Ctrl+ Alt+ T), ingrese el siguiente comando:

sudo -i gedit /etc/pam.d/common-password

Agregue la siguiente línea al archivo (antes pam_unix.soo el módulo PAM que se use principalmente para la autenticación, como se puede ver en los ejemplos de la página de manual) y guarde el archivo:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Esta declaración implementa los siguientes requisitos de contraseña:

  • dcredit == dígito
  • ucredit == carácter en mayúscula
  • lcredit == carácter en minúscula
  • ocredit== otro carácter (caracteres especiales, incluidos ! , @ # $ %)

Esto debería satisfacer sus requisitos.

También puede usar las variables minlengthy retriesrestringir aún más los requisitos de contraseña.

Aquí hay otro buen ejemplo de cómo modificar una política de contraseña de esta manera: colocar la siguiente línea en el /etc/pam.d/common-passwordarchivo:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Esta entrada establecerá un máximo de tres intentos para obtener una contraseña aceptable con una longitud mínima de 10 caracteres.

Esto establece el requisito para que los usuarios tengan un mínimo de tres caracteres diferentes de la última contraseña.

Esto también cumplirá el requisito de que la contraseña contenga al menos uno de cada dígito, caracteres en minúscula y mayúsculas.

Consulte también este artículo sobre la configuración de reglas de política de contraseña más fuertes en Linux .

Kevin Bowen
fuente
3
Excelente respuesta! Agregaría, con respecto a los reintentos, que es importante tener cuidado al considerar una política para evitar que los usuarios inicien sesión con demasiados intentos de inicio de sesión fallidos. Esto puede conducir a la viabilidad de uno de los ataques de denegación de servicio más simples y más fáciles de ejecutar en una cuenta (intente y no pueda iniciar sesión X varias veces hasta que la cuenta esté "bloqueada" y luego el usuario legítimo no pueda ingresar) .
Eliah Kagan
Respuesta fantástica, gracias :) Sin embargo, una pregunta parece ser que el rootusuario puede ignorar los requisitos de contraseña ... ¿Es posible aplicar esto también para el usuario root?
Stephen RC
@Valorin ¿Qué parte de los requisitos de contraseña no respeta el usuario root?
Kevin Bowen
@maggotbrain Cualquiera de ellos, arroja una advertencia pero aún lo guarda, esta fue la contraseña 'trampa': paste.ubuntu.com/1543154
Stephen RC
@Valorin Entonces, ha habilitado la cuenta llamada 'root' y puede usar esta cuenta con esta contraseña, ¿correcto? ¿Qué advertencias recibes? Desafortunadamente, no tengo una máquina con una cuenta raíz habilitada para probar esto yo mismo. Suena como un error, pero necesita más información.
Kevin Bowen
0

Hay un tenedor de pam_cracklib por Tomas Mraz: pam_pwquality con opciones ligeramente mejores.

Agregarlo con apt install libpam-pwquality o passwd se quejará:

Módulo desconocido

caduceo
fuente