fbpx
Lección 1, Tema 1
En progreso

Gestionando contraseñas y políticas de contraseñas Copy

Noel Urbina 22 mayo, 2024

Una cosa que he olvidado mencionar con respecto al comando passwd es el hecho de que puede usarlo para bloquear y desbloquear la cuenta de un usuario. Hay muchas razones por las que es posible que desee hacer esto. Por ejemplo, si un usuario se va de vacaciones o tiene un permiso extendido, tal vez desee bloquear su cuenta para que no pueda usarse mientras está fuera. Después de todo, cuantas menos cuentas activas, menor será la superficie de ataque. Para bloquear una cuenta, use la opción -l:

sudo passwd -l nombre_usuario

Y para desbloquear la cuenta:

sudo passwd -u nombre_usuario

Sin embargo, la administración de contraseñas tiene más que el comando passwd, ya que también podemos implementar nuestras propias políticas. Anteriormente, mencioné que puede establecer una fecha de vencimiento en la contraseña de un usuario (durante nuestra discusión sobre el archivo /etc/shadow). En esta sección, veremos cómo hacerlo realmente. Específicamente, el comando chage nos da esta habilidad. Podemos usar chage no solo para alterar el período de vencimiento de la contraseña de un usuario, sino que también es una forma más conveniente de ver la información de vencimiento actual que ver el archivo /etc/shadow. Con la opción -l de chage, junto con proporcionar un nombre de usuario, podemos ver la información relevante:

sudo chage -l nombre_usuario

En el resultado, podemos ver valores para la fecha de vencimiento, el número máximo de días entre cambios de contraseña, etc. Básicamente, es la misma información almacenada en / etc / shadow pero es mucho más fácil de leer.

Si desea cambiar esta información, chage nuevamente será la herramienta de elección. El primer ejemplo que proporcionaré es muy común. Al crear cuentas de usuario, seguramente querrá que cambien su contraseña cuando inicien sesión por primera vez. Desafortunadamente, no todos estarán interesados ​​en hacerlo. El comando chage le permite forzar un cambio de contraseña para un usuario cuando inicia sesión por primera vez. Básicamente, puede establecer su número de días para que expiren a 0 con el siguiente ejemplo:

sudo chage -d 0 <username> 

Para establece que una cuenta de usuario cambie la contraseña después de un cierto periodo de días, el siguiente comando hará el truco:

sudo chage -M 90 nombre_usuario

Como mencioné anteriormente, los usuarios a menudo harán todo lo posible para engañar los requisitos de contraseña y pueden intentar cambiar su contraseña a la que era originalmente después de cumplir con el cambio de contraseña inicial requerido. Puede establecer el número mínimo de días con el indicador -m, como puede ver en el siguiente ejemplo:

sudo chage -m 5 nombre_usuario

El truco para establecer una edad mínima de contraseña es establecerla de modo que sea inconveniente para el usuario cambiar su contraseña a la original, pero aún así desea que un usuario pueda cambiar su contraseña cuando sienta la necesidad de ( así que tampoco lo configures demasiado). Si un usuario desea cambiar su contraseña antes de que transcurra el número mínimo de días (por ejemplo, si su usuario siente que su cuenta puede haber sido comprometida), siempre puede pedirle que la cambie por ellos. Sin embargo, si hace que los requisitos de su contraseña sean demasiado inconvenientes, también puede funcionar en su contra.

A continuación, deberíamos discutir establecer una política de contraseña. Después de todo, obligar a sus usuarios a cambiar sus contraseñas no sirve de nada si lo cambian a algo simple, como abc123. Una política de contraseña le permite imponer requisitos a sus usuarios para cosas como longitud, complejidad, etc.

Para configurar las opciones para los requisitos de contraseña, primero instalemos el Módulo de autenticación conectable (PAM) requerido:

sudo apt install libpam-cracklib

A continuación, echemos un vistazo al siguiente archivo. Siéntase libre de abrirlo con un editor de texto, como nano, ya que tendremos que editarlo:

sudo vim /etc/pam.d/common-password

Para habilitar un requisito de historial para sus contraseñas (es decir, el sistema recuerda las últimas contraseñas que ha utilizado un usuario, evitando que las reutilice), podemos agregar la siguiente línea al archivo:

password        required                        pam_pwhistory.soremember=99 use_authok 

En la línea de config de ejemplo, estoy usando remember = 99, lo que (como probablemente puedas adivinar) hará que nuestro sistema recuerde las últimas 99 contraseñas para cada usuario y evite que usen esas contraseñas nuevamente. Si configuró una edad mínima de contraseña antes, por ejemplo 5 días, le tomaría al usuario 495 días volver a su contraseña original si tiene en cuenta que el usuario cambia su contraseña una vez cada 5 días, 99 veces. Eso prácticamente hace que sea imposible para el usuario utilizar sus viejas contraseñas.

Otro campo que vale la pena mencionar dentro del archivo /etc/pam.d/common-password es la sección que lee difok = 3. Esta configuración detalla que al menos tres caracteres deben ser diferentes antes de que la contraseña se considere aceptable. De lo contrario, la contraseña se consideraría demasiado similar a la anterior y se rechazaría. Puede cambiar este valor a lo que quiera; el valor predeterminado es normalmente 5, pero Ubuntu lo establece por defecto en 3 en su implementación de este archivo de configuración. Además, también verá oscuras mencionadas en el archivo, lo que evita que se usen contraseñas simples (como palabras comunes del diccionario, etc.).