CONFIGURACIÓN DE CONTRASEÑAS SEGURAS


Introducción.

En la mayoría de los sistemas Linux , se puede utilizar PAM (el módulo de autenticación de conexión ) para hacer cumplir la complejidad de contraseñas . Tendremos un archivo llamado /etc./pam.d/system- auth en RedHat (/etc./pam.d/common-password en sistemas Debian ), Buscamos las líneas que se parecen a los que se muestran a continuación.

 


Esto sería en un sistema nuevo.

Por defecto, las contraseñas deben tener al menos seis caracteres (podemos consultarlo en /etc./login.defs para posibles cambios). Hoy en día como medida de seguridad no es suficiente.

Para solventar este problema podemos instalar el módulo
libpam-cracklib

Así tendremos una política de contraseñas más fuerte. Para el ejemplo, una vez instalado, editaremos el archivo common-password.

Veamos algunas capturas.

 

 

 

Una instalado, editamos el archivo common-password

 

 

password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=1 ucredit=1 dcredit=1 ocredit=1 difok=4

Esto es lo que cada uno de los parámetros disponibles hace:

  • try_first_pass = establece el número de veces que los usuarios pueden intentar establecer una buena   contraseña antes de que el comando passwd aborte
  • minlen = establece una medida de la complejidad relacionada con la longitud de la contraseña
    Veremos una explicación más adelante.
  • lcredit = define el número mínimo de letras minúsculas necesarias
  • ucredit = establece el número mínimo de letras mayúsculas requeridas
  • dcredit = establece el número mínimo de dígitos necesarios
  • ocredit = establece el número mínimo de caracteres necesarios otros
  • difok = establece el número de caracteres que deben ser diferentes de los de la
       contraseña anterior

Minlen es realmente una medida de la complejidad, no simplemente de longitud. Especifica una puntuación de complejidad que debe alcanzarse por una contraseña para ser considerado como aceptable. Si cada carácter en una contraseña agrega uno a la cuenta de la complejidad, a continuación minlen simplemente representaría la longitud de la contraseña pero, si algunos personajes cuentan más de una vez, el cálculo es más complejo.

 

El funcionamiento sería más o menos así:

La medida de complejidad minlen se calcula en un número de pasos:
• todos los caracteres de una contraseña tienen un punto, sin importar el tipo de carácter
• cada letra minúscula suma un punto , pero sólo hasta el valor de lcredit
• cada letra mayúscula añade un punto, pero sólo hasta el valor de ucredit
• cada dígito añade un punto, pero sólo hasta el valor de dcredit
• cada carácter especial añade un punto, pero sólo hasta el valor de ocredit

Si lcredit , ucredit , dcredit y ocredit se ajustan a 0 , sólo la longitud de la contraseña se utiliza para determinar si es aceptable .


Cuando se configura alguno de los parámetros lcredit , ucredit , dcredit o ocredit a un número negativo, entonces usted debe tener por lo menos ese número de caracteres para cada clase de caracteres para la contraseña para pasar la prueba de la complejidad.

Ajuste minlen a 12 y difok a 4 son generalmente buenos ajustes. Sin embargo, si desea que los 12 contraseñas de carácter y complejidad también, se necesita un ajuste de minlen más grande. Con minlen establece en 12 y un punto determinado para la inclusión de cada una de minúsculas, mayúsculas, dígitos y caracteres especiales (los valores por defecto), se puede llegar a funcionar con contraseñas que sólo tienen ocho caracteres – incluso con minlen establecidos a 12! Una política más fuerte podría requerir lo siguiente:


password requisite pam_cracklib.so try_first_pass retry=3 minlength=16 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4
Estos ajustes se asegurarían de que sus contraseñas tengan 12 caracteres, incluyendo al menos un carácter de cada una de las cuatro clases.

Podemos así mismo mirar /etc./login.defs para los parámetros de caducidad de la contraseña – Otro componente de la buena seguridad de la contraseña .

Hemos de tener en consideración que cracklib asegura que los usuarios no sólo pueden invertir sus contraseñas anteriores o rotar las letras para evitar hacer cambios de contraseña significativos. Así, p4ssw0rd no puede ser reemplazado con dr0wss4p o 4ssw0rdp .

 

Veamos ahora los mensajes que recibimos al querer cambiar la contraseña.

Primero lo hice sobre una distro de kali linux y luego sobre una de Ubuntu. Veamos cómo quedó.

 

 

Podemos ver como recibimos mensajes de diversa índole (corta, sencilla, sistemática, incluye al usuario, basada en diccionario, etc.)

Más capturas:

Veamos ahora el registro:

Con el comando cat

Cat /var/log/auth.log

Comando tail

tail /var/log/auth.log

 

 

 

 

 

 

 

 

 

 

 

Con tail sudo tail -15 -f /var/log/auth.log (aquí nos mostrará las últimas 15, el parámetro –f indica al sistema que mantenga abierto el fichero conforme se van añadiendo líneas al mismo. Con esto veremos de forma dinámica cómo se van añadiendo líneas al fichero en tiempo real).

 

Uso con grep

Con grep podemos buscar que nos muestre, por ejemplo, aquellas líneas que afecten a un usuario dado o aquellos intentos de cambio de contraseña, por ejemplo:

grep «password» /var/log/auth.log

 

En definitiva,

 

Si quitamos el módulo de seguridad todo volverá como al principio eliminado las medidas de seguridad previamente confeccionadas.

apt-get purge libpam_cracklib

 

 

Acerca de Rafael Quintana

Con ganas de compartir y de aprender
Esta entrada fue publicada en Informática e Internet, Linux, Seguridad y etiquetada , , . Guarda el enlace permanente.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.