Cuando gestionamos equipos y usuario sin lugar a dudas una de las configuraciones que debemos tener muy en cuenta es la relacionada con la seguridad y esto abarca factores como:
- Protección de los datos
- Accesos seguros
- Políticas de contraseñas complejas
- Autorizar usuarios responsables, entre otras
Uno de los temas que hoy en día es más sensible y que muchas personas no toman en cuenta es el relacionado a las contraseñas ya que muchos implementan contraseñas muy fáciles de descifrar y de esta manera usuarios con malas intenciones pueden acceder al sistema y realizar cambios no autorizados.
En esta oportunidad veremos cómo podemos forzar a que los usuarios creen contraseñas seguras y robustas en el sistema y de esta manera incrementar notoriamente la seguridad del sistema usando la utilidad PAM.
Usando PAM podemos implementar las siguientes mejoras a nivel de contraseñas:
- Forzar a que la contraseña incluya un número específico de letras minúsculas.
- Forzar a que la contraseña incluya un número específico de letras mayúsculas.
- Forzar a que la contraseña incluya una cantidad determinada de dígitos.
- Permitir que la contraseña incluya ciertos caracteres especiales.
- Permitir una cantidad determinada de intentos fallidos antes de desplegar un mensaje acerca de la longitud mínima permitida, etc.
1. Instalación de PAM en Linux
Para este análisis usaremos PAM en un entorno Ubuntu 16.04. El comando que debemos ingresar para la instalación de PAM es el siguiente:
sudo apt-get install libpam-cracklib
2. Configuración del paquete libpam
Una vez hayamos instalado o verifiquemos que ya existe PAM en nuestro equipo Linux en la siguiente ruta veremos todos los archivos asociados a PAM:
etc/pam.dPodemos usar el siguiente comando para visualizar las opciones que están dentro de esta ruta.
cd /etc/pam.d y posteriormente usar ls para ver el contenido.
Los archivos que debemos configurar están ubicados en la ruta:
/etc/pam.d/common-passwordY por ello antes de realizar cualquier modificación copiaremos dicho archivo usando lo siguiente:
sudo cp /etc/pam.d/common-password /root/Se terminarán copiando y pasaremos a su edición.
3. Edición del archive common-password
Podemos usar el editor que deseemos (vi o nano) para editar el archivo common-password, para ello podemos ingresar lo siguiente:
sudo nano /etc/pam.d/common-passwordVeremos la siguiente ventana:
Una vez sea desplegada esta ventana ubicaremos la siguiente línea:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3Allí podemos usar los siguientes criterios para crear un contraseña segura y robusta:
Para configurar estos parámetros debemos añadir estos valores de forma manual bajo la línea:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3Por ejemplo podemos establecer los siguientes valores:
password requisite pam_cracklib.so try_first_pass retry=3 minlength=10lcredit=-2 ucredit=-1 dcredit=-1 ocredit=-1 difok=3
De esta manera configuramos lo siguiente:
- Tamaño mínimo de la contraseña 10 caracteres
- Mínimo una letra minúscula
- Por lo menos una letra mayúscula
- Un dígito debe estar dentro de la contraseña
- La contraseña debe incluir un número
- Por lo menos deben estar presentes 3 caracteres especiales
Guardamos los cambios usando la combinación de teclas Ctrl + O y salimos del editor usando las teclas Ctrl + X.
4. Validando el uso de PAM en Ubuntu
Una vez hayamos configurado los parámetros respectivos vamos a realizar la validación de cambio de contraseña ingresando el comando passwd. Si intentamos introducir una contraseña que no cumple con la longitud o alguno de los parámetros indicados veremos lo siguiente:
Si agregamos caracteres diferentes e intentamos en más de tres ocasiones realizar el cambio (hemos establecido que la cantidad de intentos máximos es de 3) veremos lo siguiente:
5. Parámetros de PAM a tener en cuenta
PAM ofrece diversos módulos de funcionalidad que nos ayudan a mejorar las políticas de seguridad a nivel de contraseñas y éstos son:
Hemos visto como PAM nos ayuda a mejorar los niveles de seguridad de nuestros equipos estableciendo diversas condiciones para establecer las mismas.