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.
Tener una buena contraseña es algo básico. Sea cual sea la herramienta o sistema que vamos a configurar. Nos despreocupamos y apostamos por claves repetidas, claves básicas y claves que vamos a recordar fácilmente y es un gran error que puede llevar a problemas graves de seguridad en nuestros equipos. Si somos conscientes de esto, puede que lo tengamos en cuenta y utilicemos contraseñas robustas en las que haya suficientes caracteres variados, números, mayúsculas, minúsculas, símbolos. Pero no siempre todo el mundo va a cumplir con esto y puede suponer un riesgo a la hora de configurar un equipo. Por eso podemos configurar una política de contraseñas para evitar que nadie utilice qwerty o 123456 a la hora de crear una cuenta. Podemos aconsejarlo pero puede que nos ignoren. Sin embargo, crear una política de contraseñas impedirá esta falta de seguridad y protegerá a todos los usuarios que utilicen el equipo.
Y, como veremos más adelante, no solo podemos obligar a que las contraseñas utilizadas sean lo suficientemente seguras sino que hay otras reglas muy útiles que van a hacer que este proceso te parece realmente útil. Por ejemplo, podemos obligar a que los usuarios cambien su contraseña de forma frecuente y que no puedan mantenerla más de u tiempo determinado o se quedarían fuera del sistema. Seguro, práctico y fácil de hacer.
¿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.
Políticas de contraseñas en el sector empresarial
Las políticas de contraseñas son medidas de seguridad totalmente indispensables para los sistemas de las corporaciones. Esto ayuda a proteger toda la información confidencial, y a mantener la integridad de los sistemas. Todas estas políticas, incluyen reglas para crear, cambiar y almacenar contraseñas, y evitar que estas se puedan reutilizar. Lo que haría al sistema un poco más vulnerable. Algunas de las políticas que se pueden aplicar son:
- Longitud y complejidad
Todas las contraseñas deben seguir una directriz en la longitud mínima de caracteres, y la combinación de estos que pueden seguir. Letras, números y símbolos combinados, formarán una contraseña bastante segura. Es aconsejable siempre que utilicemos suficientes caracteres y que sean variados. No solo uses letras sino que es interesante intercalar minúsculas y mayúsculas, por ejemplo, y que añadas todo tipo de signos a la clave para que no sea fácil de romper o predecible.
- Cambios frecuentes
A pesar de que la contraseña pueda estar inquebrantable, es bueno aplicar políticas que pidan cambios de contraseña cada cierto tiempo. Esto es algo que se hace de forma común en casi todas las empresas. Aplicar cambios cada 90 días, por ejemplo, minimiza el riesgo de suplantación de identidad de forma considerable.
- Evitar palabras comunes
Esto es algo muy importante, ya que nos librará en parte de muchos ataques. Evitar palabras en las contraseñas que puedan ser comunes, o secuencias muy habituales o sencillas como «123456» o «abc123.», con medidas de seguridad muy recomendables. También debemos evitar cosas personales que puedan ser reconocibles como nuestro nombre y apellidos, el nombre de tu perro o la fecha de nacimiento. Esto hará que sean fáciles de adivinar y además normalmente no cumplirán con los requisitos anteriores de intercalar todo tipo de caracteres para hacerlas mucho más seguras.
- Almacenamiento seguro
Todos los sistemas deben tener este tipo de aplicación. Almacenar las contraseñas de forma segura con una fuerte encriptación, es vital para que estas no se filtren por algún error en el sistema.
- Limitar intentos
Un número muy elevado de intentos fallidos, puede significar que se está tratando de realizar un acceso no autorizado. Por lo cual es recomendable, establecer un límite de intentos, tras los cuales, la contraseña se bloquee si no se ha conseguido acceder.
- Formación
Mantener a los usuarios correctamente formados en todo los necesario, es la primera medida de seguridad que vamos a necesitar. La sensibilización de los empleados para que se vea la importancia de todo el proceso es muy importante.
Cómo se pone una buena contraseña
Una vez que queda aclarado la importancia de la política de contraseñas, es necesario conocer qué es lo que hay que hacer para que tengamos realmente una buena política de contraseñas. Por esto mismo, para que se pueda conseguir sin perder el tiempo en el intento, la clave está en fijarnos en una serie de aspectos relacionados con las medidas a seguir para crear una buena contraseña:
- El primer punto es tener claro que hay que crear una clave que cuente con mayúsculas, minúsculas, números y caracteres especiales. Además de la fortaleza, hay que estar al tanto de la longitud, ya que es otro de los aspectos que marcan la diferencia. En este caso, lo mínimo es fijar una contraseña de 12 caracteres.
- La caducidad de la clave es otro de los factores que son clave. En este sentido, fijar una fecha de vencimiento va a conseguir que se modifique de manera regular y así se conseguirá una mayor seguridad en todo momento.
- No reutilizar viejas contraseñas: lo más fácil en este caso es crear un historial de contraseñas en el que se vayan guardando las claves ya utilizadas. De esta manera será imposible que se repitan con el paso del tiempo, sobre todo si se fija una fecha de caducidad corta.
- Aplicar otras medidas de seguridad: por más que sea clave tener una contraseña fuerte y seguir las medidas anteriores, hay otros puntos que marcan la diferencia, como es el caso de tener activado la autenticación de dos factores. Con esto se consigue mejorar la seguridad.
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. Por lo tanto, es el momento de conocer los diferentes puntos que se deben tener en cuenta a la hora de configurar una política de contraseñas en Debian:
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.
Tratamiento de contraseñas en Debian
En Debian, las contraseñas se tratan de forma segura y se implementan una serie de medidas para proteger la integridad y confidencialidad de las mismas. Pero en líneas generales, todo se basa en una serie de factores.
- Almacenamiento seguro: Debian utiliza una técnica llamada «hashing» para almacenar las contraseñas de forma segura. En lugar de almacenar las contraseñas en texto plano, se aplica una función hash a la contraseña antes de almacenarla en el sistema. Esto garantiza que las contraseñas no sean legibles incluso si se accede a la base de datos de contraseñas.
- Uso de algoritmos de hash robustos: Debian utiliza algoritmos de hash seguros y ampliamente reconocidos, como SHA-512, para proteger las contraseñas. Estos algoritmos se consideran resistentes a los intentos de descifrado o descifrado inverso, lo que aumenta la seguridad de las contraseñas almacenadas.
- Salted Hashing: Además del hash, Debian utiliza un mecanismo llamado «salt» para aumentar la seguridad de las contraseñas almacenadas. El salt es un valor aleatorio único que se concatena con la contraseña antes de aplicar la función hash. Esto garantiza que incluso si dos usuarios tienen contraseñas idénticas, sus hashes serán diferentes debido a los salts únicos.
- Políticas de contraseñas seguras: Debian promueve la implementación de políticas de contraseñas seguras para los usuarios del sistema. Esto incluye establecer requisitos de complejidad, como la longitud mínima de la contraseña, el uso de caracteres alfanuméricos y especiales, y la exigencia de cambios de contraseña periódicos.
- Gestión de contraseñas encriptadas en archivos: Las contraseñas almacenadas en archivos de configuración y otros archivos sensibles se encriptan utilizando herramientas como GnuPG (GNU Privacy Guard) o se almacenan en archivos protegidos por permisos de acceso restringidos.
- Acceso limitado a las contraseñas: Debian se asegura de que solo los usuarios autorizados y los procesos privilegiados tengan acceso a las contraseñas almacenadas. Esto se logra mediante el uso de permisos adecuados en los archivos de contraseñas y la implementación de medidas de control de acceso.
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.