Configura la política de contraseñas en Debian y protege tu servidor

Configurar en nuestros ordenadores y servidores una buena contraseña de acceso es algo fundamental. Hoy en día seguimos entrando en muchas ocasiones a nuestros equipos con un usuario y contraseña, aunque ya existe la posibilidad de configurar una autenticación en dos pasos para añadir una capa más de seguridad a la autenticación. Configurar en nuestros equipos una contraseña robusta es algo básico, pero es posible que muchos usuarios no cumplan las directrices de una contraseña segura, por este motivo es muy importante configurar una buena política de claves para obligar a todos los usuarios que la cumplan. Hoy en RedesZone os vamos a enseñar cómo configurarlo en cualquier sistema operativo Linux, nosotros usaremos Debian pero en sistemas como Ubuntu el proceso es el mismo.

¿Para qué sirve configurar una política de contraseñas?

Cuando instalamos el sistema operativo, el asistente de instalación nos ha pedido introducir un nombre de usuario y también una contraseña de acceso para autenticarnos en el sistema operativo. Si hemos decidido crear una contraseña a root, entonces hemos tenido que introducir dos contraseñas diferentes (aunque podrían ser iguales, pero por seguridad es recomendable que sean diferentes). Sin embargo, en el asistente de instalación no tenemos preconfigurada ningún tipo de política de contraseñas, por lo que podremos poner una contraseña tan sencilla como «clave» o «123456» entre otras contraseñas que no son seguras. Los usuarios de root y los que pertenezcan al grupo de administradores deben tener contraseñas robustas, así como los usuarios normales sin privilegios, con el fin de proteger la seguridad del sistema operativo.

Si queremos obligar a que todos los usuarios del PC o del servidor utilicen contraseñas robustas, es totalmente necesario que el administrador del sistema cree una política de contraseñas robusta, con el objetivo de impedir que los usuarios utilicen contraseñas tan fáciles de crackear o adivinar. También podríamos obligar a los diferentes usuarios a crear una contraseña nueva que cumpla con los nuevos requisitos de claves del sistema operativo, además, también podríamos forzar a todos los usuarios o solamente a algunos, que su contraseña caduque cada cierto tiempo y tenga que introducir una nueva clave si no quieren quedarse sin acceso al sistema operativo.

Para tener una buena política de contraseñas, es muy importante tener en cuenta:

  • Crear contraseñas robustas que no estén en diccionarios y tengan una cierta complejidad.
  • Obligar a los usuarios a cambiar sus claves para cumplir con la nueva política de contraseñas de acceso.
  • Configurar la caducidad de contraseñas, para forzar a los usuarios a que cambien sus contraseñas cada cierto tiempo.

A continuación, vamos a ver cómo configurar una buena política de contraseñas en nuestro servidor o PC con Debian o Ubuntu.

Configurar una política de contraseñas robusta

Lo primero que debemos tener en cuenta para configurar una política de contraseñas robusta es ser administradores, debemos tener privilegios de root para poder realizar todos los cambios, ya que afectan a todos los usuarios del sistema operativo. Una vez que tengamos permisos de administrador, entonces podremos empezar a realizar los diferentes pasos para configurar correctamente la política de contraseñas.

Instalar la herramienta libpam_cracklib

Lo primero que vamos a hacer es instalar la librería libpam_cracklib, esta librería se encarga de comprobar que la contraseña que vas a introducir no forma parte de un diccionario, es decir, que no sea una palabra sencilla. También comprobará que la contraseña no sea igual a otra que hayas utilizado anteriormente, es decir, no nos dejará reutilizar las contraseñas que ya hayamos utilizado anteriormente. Tampoco nos dejará reutilizar las contraseñas que solamente hayamos cambiado un carácter, imaginemos que la contraseña nueva es «Pepe123.», pues la clave nueva no puede ser «Pepe123-» porque solamente hemos cambiado un carácter. Otras características de esta librería es que comprueba si la nueva contraseña es demasiado corta, si es poco compleja, e incluso nos permite saber si no tiene un único carácter introducido varias veces de forma consecutiva, con el objetivo de hacer más compleja la contraseña.

Debemos tener en cuenta que configurar una contraseña robusta es muy importante, y es que es la primera línea de defensa en la seguridad de nuestro sistema operativo. Para instalar esta librería, simplemente tenemos que ejecutar la siguiente orden:

sudo apt install libpam-cracklib

Si utilizas «sudo» en tu sistema operativo, tendrás que poner este comando antes de la orden de instalación, de lo contrario, si estás en modo root no necesitarás utilizarlo. Antes de continuar, debemos indicar que la instalación de esta librería es muy importante, porque gracias a ella podremos configurar la política de contraseñas como nosotros queramos.

Editar el fichero de configuración

Una vez que tenemos instalada la librería, ahora es cuando vamos a editar el archivo que está ubicado en /etc/pam.d/common-password. Pero antes de editarlo directamente, os recomendamos realizar una copia de seguridad de este fichero de configuración, por si ponemos alguna configuración errónea, poder volver a los valores de fábrica de forma fácil y rápida.

Para realizar una copia de seguridad de este archivo, basta con ejecutar el siguiente comando y poner la ruta que nosotros queramos:

sudo cp /etc/pam.d/common-password /root/

Una vez hecho, abrimos el fichero con permisos de superusuario para poder editarlo, podremos utilizar vi, vim, nano u otro editor de archivos de texto por consola, nosotros utilizaremos nano. También podrías utilizar algún editor de texto gráfico, pero siempre con permisos de root porque sino no te dejará editarlo.

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

Ahora veremos el fichero de configuración completo del sistema operativo:

Una vez que estamos dentro del editor, debemos localizar una línea similar a la siguiente:

password requisite pam_cracklib.so retry=3 minlen=8 difok=3

En la siguiente imagen podéis ver dónde aparece:

Aquí es donde debemos editarlo, y tendremos las siguientes opciones para configurarlo como nosotros deseemos.

  • retry: número de intentos antes de que el sistema devuelva un error en la autenticación y nos expulse.
  • minlen: es la longitud mínima de la contraseña, por defecto está en 8 caracteres.
  • difok: número de caracteres diferentes que debe tener la nueva clave en comparación con la antigua.
  • ucredit: caracteres en mayúscula que debe tener como mínimo o máximo.
  • lcredit: caracteres en minúscula que debe tener como mínimo o máximo.
  • dcredit: el número de dígitos que debe tener como mínimo o máximo.
  • ocredit: el número de otros caracteres (símbolos) que debe tener la clave como mínimo o máximo.

Las opciones ucredit, lcredit,dcredit y ocredit pueden tener números negativos o positivos, para definir si queremos que tenga un rango de mínimo o máximo, por ejemplo:

  • lcredit=-2 : significa que como mínimo debe tener 2 caracteres en minúscula.
  • lcredit=+2 : significa que como máximo debe tener 2 caracteres en minúscula.

Y es igual con el resto de las opciones lcredit, dcredit y ocredit.

Configurar la política de claves a aplicar

Una vez que ya sabemos todas las opciones de configuración que tenemos a nuestra disposición, vamos a elegir la política de claves a configurar. Un ejemplo de política de claves podría ser la siguiente:

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

Con la política anterior tendremos:

  • Longitud mínima de la contraseña 12 caracteres.
  • Si cambiamos la clave, como mínimo debe haber tres diferencias.
  • 3 caracteres en mayúscula, 3 en minúscula, 3 dígitos y 3 símbolos como mínimo

No hemos puesto ningún carácter como máximo, pero también podríamos incorporarlo, para limitar el número de caracteres del mismo tipo que se permite, no obstante, con esta política de claves creemos que la clave es lo suficientemente compleja como para evitar problemas.

Comprobar la nueva política de claves

Una vez que ya lo tenemos configurado, vamos a cambiar la contraseña de nuestro propio usuario para que se ajuste perfectamente a la nueva política de contraseñas que hemos configurado. Para cambiar la contraseña debemos ejecutar al siguiente orden:

sudo passwd

Tendremos un asistente donde tendremos que indicar la nueva contraseña, para que se ajuste perfectamente a la política anterior. Dependiendo de la contraseña que introduzcamos, podríamos ver un error diferente, por ejemplo, nos podría decir que la clave es demasiado sencilla, es una palabra de diccionario, es demasiado corta etc. Una vez que la contraseña nueva que hemos introducido cumpla con la política nos permitirá cambiarla sin ningún tipo de problema.

Forzar a los demás usuarios al cambio de contraseña

Debian nos da la posibilidad de forzar el cambio de contraseña para el próximo inicio de sesión de los usuarios, de esta forma, no podrán evitar la nueva política de contraseñas que deben cumplir obligatoriamente. Para poder forzar a los usuarios que introduzcan una nueva contraseña de acceso, es necesario que el usuario administrador ejecute la siguiente orden:

passwd -e USUARIO

El argumento «-e» obliga a una expiración de la contraseña del usuario, y en el siguiente inicio de sesión necesitará introducir una nueva contraseña que se ajuste a los nuevos requisitos de contraseñas del sistema operativo.

Configurar caducidad de las contraseñas a los usuarios

Si queremos configurar la caducidad de las contraseñas a los usuarios, también podremos utilizar el comando passwd para realizar esta configuración a todos y cada uno de los usuarios del sistema, o de manera individual. Para definir una caducidad de contraseña y obligar a los usuarios a cambiarla antes de que expire el plazo, debemos ejecutar la siguiente orden:

passwd -w 5 -x 30 USUARIO

El argumento «-x» significa que como máximo los usuarios deben cambiar su clave cada 30 días. El argumento «-w» significa que nos avise desde 5 días antes de que expire la contraseña, para cambiarla, de esta forma recordamos al usuario que debe cambiar la contraseña de acceso.

También sería muy recomendable configurar la inactividad de la cuenta, si el usuario no cambia la contraseña después de la expiración de la clave, que se ponga como inactiva y sea el administrador del sistema quien tenga que activarla nuevamente. Imaginemos que queremos marcar como inactiva una cuenta si pasa un día desde la expiración de la clave, en este caso la configuración sería:

passwd -w 5 -x 30 -i 1 USUARIO

El comando passwd nos permite poner en la misma orden diferentes argumentos, os recomendamos leer las páginas man de esta herramienta donde encontraréis todas las opciones de configuración disponibles.

Tal y como habéis visto, configurar en nuestro servidor con Debian o Ubuntu una buena política de contraseñas es realmente sencillo, simplemente tendremos que instalar la librería y realizar algunos ajustes, además, sería muy recomendable forzar a los usuarios actuales (si existen) que creen una nueva contraseña de acceso.

¡Sé el primero en comentar!