Las contraseñas fuertes son imprescindibles. Pero si sus servidores y escritorios no requieren contraseñas seguras, no puede aplicar dicha política. Aquí está un paso a paso para habilitar contraseñas fuertes en sus máquinas Ubuntu con la ayuda de PAM.

    Lo más probable es que esté utilizando Linux en su centro de datos o en algún lugar de la red de la empresa. Si es así, querrá asegurarse de que los usuarios creen contraseñas complicadas para proteger los datos de la empresa. ¿Cómo se hace eso? Suena complicado, ¿verdad?

    Equivocado.

    Hacer cumplir contraseñas complejas es bastante fácil en Linux. Requiere que instale una sola pieza de software y que trabaje con la línea de comandos, pero lo más probable es que ya se sienta cómodo haciendo esto.

    Más información sobre el código abierto

    Dicho esto, voy a mostrarte cómo aplicar contraseñas seguras en Ubuntu/Debian con la ayuda de los Módulos de Autenticación Pluggable (PAM. Estaré manifestándome en Ubuntu 16.04. Gracias a esta adición a su sistema puede asegurarse de que las contraseñas de los usuarios:

    • Se permite X cantidad de intentos fallidos de inicio de sesión antes de volver con error
    • Cumplir con una longitud mínima
    • Debe cumplir con un número mínimo de diferencias entre los cambios de contraseña
    • Contiene al menos X caracteres en mayúsculas
    • Contiene al menos X caracteres en minúsculas
    • Contiene X dígitos
    • Contiene símbolos X

    Instalación

    Aunque PAM ya está instalado, tendrá que añadir un módulo adicional. Para ello, abra una ventana de terminal y ejecute el siguiente comando:

    sudo apt-get install libpam_cracklib

    Eso es todo lo que hay que instalar.

    Configurando libpam_cracklib

    El archivo de configuración para esta configuración es /etc/pam.d/common-password. Antes de hacer cualquier cambio, copiemos ese archivo. Emita el comando:

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

    Con una copia de trabajo del archivo guardado, abra el archivo en el editor de su elección (prefiero nano) y busque la siguiente línea:

    requisito de contraseña pam_cracklib.so retry=3 minlen=8 difok=3

    Vamos a configurar esto usando las siguientes opciones:

    • minlen = establece una medida de complejidad relacionada con la longitud de la contraseña
    • lcredit = establece el número mínimo de letras minúsculas requeridas
    • ucredit = establece el número mínimo de letras mayúsculas requeridas
    • dcredit = establece el número mínimo de dígitos requeridos
    • ocredit = establece el número mínimo de otros caracteres requeridos
    • difok = establece el número de caracteres que deben ser diferentes de los de la contraseña anterior

    Aquí es donde la configuración se vuelve un poco complicada. Usted podría pensar que minlen es la longitud mínima que debe tener una contraseña. Equivocado. El minlen es la puntuación mínima de complejidad que debe alcanzarse antes de que una contraseña se considere correcta. Cómo funciona esto es que algunos caracteres de una contraseña cuentan más de una vez para la complejidad de una contraseña. Para crear esta puntuación, la complejidad se mide a través de unos pocos pasos:

    • Cada carácter de una contraseña añade un punto (independientemente del tipo)
    • Cada letra minúscula añade un punto (hasta el valor de lcredit)
    • Cada letra mayúscula añade un punto (hasta el valor de ucredit)
    • Cada dígito suma un punto (hasta el valor de dcredit)
    • Cada carácter especial añade un punto (hasta el valor de ocredit)

    También puede fijar estos valores en un número negativo. Un número negativo denota el valor mínimo de una clase (una clase es lcredit, ucredit, dcredit, etc.), mientras que un valor positivo es el valor máximo de una clase.

    Echemos un vistazo a este ejemplo:

    requisito de contraseña pam_cracklib.so try_first_pass retry=3 minlength=16lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4 reject_username

    La configuración anterior aseguraría que las contraseñas tienen una puntuación de complejidad de 16 e incluyen al menos un carácter de cada clase. También incluyo el nombre de usuario reject_username para evitar que los usuarios establezcan su nombre de usuario como contraseña.

    Si un usuario intenta cambiar una contraseña y no cumple los requisitos, se dará cuenta rápidamente (.

    Un intento fallido de cambiar una contraseña.

    Sigue aprendiendo

    Debe asegurarse a sí mismo y a su empresa de que las contraseñas de usuario cumplan un determinado requisito. En sus servidores Linux, querrá aprovechar el sistema que he descrito. También querrás aprender todo lo que puedas sobre esta PAM cracklib. Para más información, abra una ventana de terminal y ejecute el comando man pam_cracklib. Dentro de esa página de manual puede aprender todo lo que hay que saber sobre la configuración de PAM para hacer cumplir contraseñas complejas.

    Boletín Semanal de Código Abierto

    No se pierda nuestros consejos, tutoriales y comentarios sobre el sistema operativo Linux y las aplicaciones de código abierto. Entregado los martes