# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Securizar la gestión de claves en Linux mediante PAM


Linux-PAM es un módulo del kernel Linux que permite configurar y personalizar el modo en el que se generan y mantienen las claves de usuarios dentro del sistema. En esta entrada vamos a centrarnos en como conseguir que los usuarios de un sistema Linux tengan claves seguras.

Básicamente, lo que vamos a hacer es forzar al usuario a que cumpla ciertos requisitos a la hora de crear o cambiar una clave, por ejemplo que la clave tenga un mínimo de caracteres, que contenga símbolos, números o letras mayúsculas, evitar que repitan las mismas claves, etc.

En sistemas CentOS, RHEL y derivados, esta gestión la hacemos dentro del fichero de configuración de PAM /etc/pam.d/system-auth, en Debian creo recordar que era en el fichero /etc/pam.d/common-password.

En CentOS, encontraremos una línea que contendrá lo siguiente (entre otros parámetros):

password    requisite     pam_cracklib.so .......

En dicha línea podemos añadir los parámetros correspondientes para securizar el sistema de claves, en el siguiente ejemplo hemos añadido que el mínimo de caracteres sea 6 (minlen), que sea obligatorio un símbolo (ocredit) y una letra mayúscula (ucredit):

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=6 ocredit=-1 ucredit=-1

Otros parámetros son por ejemplo remember=N que indica el histórico de claves a revisar para evitar que repitan la misma clave. Recomiendo revisar la documentación de este módulo en www.kernel.org para exprimir y encontrar todas sus posibilidades.

Como requisito hay que tener el siguiente paquete instalado en el sistema:

cracklib.i386 : biblioteca para el control de las contraseñas.

NOTA: Hay que tener en cuenta que todos estos parámetros no tienen efecto cuando cambiamos las claves con el usuario root, solo se aplican cuando se cambian desde el resto de usuarios.

Generador de passwords aleatorios


Ahora que en todos los medios se habla sobre el reciente ataque de phising a servidores de correo como Hotmail, en los que se han crackeado unas 10.000 contraseñas de cuentas de correo con una pésima seguridad en sus claves de acceso, os dejo un generador de claves aleatorias de números y letras (mayúsculas y minúsculas) escrito en bash:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'; echo 

Si queréis más de 10 caracteres en la clave, simplemente cambiad el número que le pasamos a “head”:

# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 15 | tr -d '\n'; echo
admk1iEtH7umbo8

Por supuesto, hay muchas formas de hacerlo, esta es simplemente una de ellas.

Ah! Viene bien recordar esta cita:

Treat your password like your toothbrush. Don’t let anybody else use it, and get a new one every six months

Clifford Stoll