Crear una política de contraseñas en Linux

¡Hola de nuevo! Mañana comienzan las clases del nuevo grupo del curso "Administrador de Linux", en este sentido, publicamos un artículo útil sobre el tema.

Crear una política de contraseñas en Linux

En el tutorial anterior te contamos cómo utilizar pam_cracklibhacer que las contraseñas en los sistemas sean más complejas Red Hat 6 o CentOS. En sombrero rojo 7 pam_pwquality sustituido cracklib como pam Módulo predeterminado para verificar contraseñas. Módulo pam_pwquality También es compatible con Ubuntu y CentOS, así como con muchos otros sistemas operativos. Este módulo facilita la creación de políticas de contraseñas para garantizar que los usuarios acepten los estándares de seguridad de sus contraseñas.

Durante mucho tiempo, el enfoque común respecto de las contraseñas era obligar al usuario a utilizar mayúsculas, minúsculas, números u otros símbolos. Estas reglas básicas para la complejidad de las contraseñas se han promovido ampliamente durante los últimos diez años. Ha habido mucha discusión sobre si esto es una buena práctica o no. El principal argumento en contra de establecer condiciones tan complejas fue que los usuarios escriben las contraseñas en hojas de papel y las almacenan de forma insegura.

Otra política que recientemente ha sido cuestionada obliga a los usuarios a cambiar sus contraseñas cada x días. Ha habido algunos estudios que han demostrado que esto también es perjudicial para la seguridad.

Sobre el tema de estas discusiones se han escrito muchos artículos que fundamentan un punto de vista u otro. Pero esto no es lo que discutiremos en este artículo. Este artículo hablará sobre cómo configurar correctamente la complejidad de la contraseña en lugar de administrar la política de seguridad.

Configuración de la política de contraseñas

A continuación verá las opciones de la política de contraseñas y una breve descripción de cada una. Muchos de ellos son similares a los parámetros del módulo. cracklib. Este enfoque facilita la transferencia de sus políticas desde el sistema heredado.

  • difok – La cantidad de caracteres en su nueva contraseña que NO deberían estar presentes en su contraseña anterior. (Por defecto 5)
  • Minlen – Longitud mínima de la contraseña. (Por defecto 9)
  • crédito – El número máximo de créditos por usar caracteres en mayúsculas (si el parámetro > 0), o el número mínimo requerido de caracteres en mayúsculas (si el parámetro < 0). El valor predeterminado es 1.
  • crédito — La cantidad máxima de créditos por usar caracteres en minúscula (si el parámetro > 0), o la cantidad mínima requerida de caracteres en minúscula (si el parámetro < 0). El valor predeterminado es 1.
  • crédito — El número máximo de créditos por usar dígitos (si el parámetro > 0), o el número mínimo requerido de dígitos (si el parámetro < 0). El valor predeterminado es 1.
  • crédito — El número máximo de créditos por usar otros símbolos (si el parámetro > 0), o el número mínimo requerido de otros símbolos (si el parámetro < 0). El valor predeterminado es 1.
  • clase min – Establece el número de clases requeridas. Las clases incluyen los parámetros anteriores (caracteres en mayúsculas, caracteres en minúsculas, números, otros caracteres). El valor predeterminado es 0.
  • repetición máxima – El número máximo de veces que se puede repetir un carácter en una contraseña. El valor predeterminado es 0.
  • repetición de clase máxima — El número máximo de caracteres consecutivos en una clase. El valor predeterminado es 0.
  • chequeogecos – Comprueba si la contraseña contiene alguna palabra de las cadenas GECOS del usuario. (Información del usuario, es decir, nombre real, ubicación, etc.) El valor predeterminado es 0 (desactivado).
  • ruta de dictado – Vayamos a los diccionarios cracklib.
  • BADWORDS – Palabras separadas por espacios que están prohibidas en las contraseñas (nombre de la empresa, la palabra “contraseña”, etc.).

Si el concepto de préstamo te suena extraño, está bien, es normal. Hablaremos más sobre esto en las siguientes secciones.

Configuración de la política de contraseñas

Antes de comenzar a editar archivos de configuración, es una buena práctica escribir de antemano una política de contraseña básica. Por ejemplo, usaremos las siguientes reglas de dificultad:

  • La contraseña debe tener una longitud mínima de 15 caracteres.
  • El mismo carácter no debe repetirse más de dos veces en la contraseña.
  • Las clases de personajes se pueden repetir hasta cuatro veces en una contraseña.
  • La contraseña debe contener caracteres de cada clase.
  • La nueva contraseña debe tener 5 caracteres nuevos respecto a la anterior.
  • Habilite la verificación de GECOS.
  • Prohibir las palabras “contraseña, contraseña, palabra, putorius”

Ahora que hemos establecido la política, podemos editar el archivo. /etc/security/pwquality.confpara aumentar los requisitos de complejidad de la contraseña. A continuación se muestra un archivo de ejemplo con comentarios para una mejor comprensión.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Como habrás notado, algunos parámetros de nuestro archivo son redundantes. Por ejemplo, el parámetro minclass es redundante ya que ya usamos al menos dos caracteres de la clase usando campos [u,l,d,o]credit. Nuestra lista de palabras que no se pueden utilizar también es redundante, ya que hemos prohibido repetir cualquier clase 4 veces (todas las palabras de nuestra lista están escritas en minúsculas). He incluido estas opciones sólo para demostrar cómo usarlas para configurar su política de contraseñas.
Una vez que haya creado su política, puede obligar a los usuarios a cambiar sus contraseñas la próxima vez que inicien sesión. sistema.

Otra cosa extraña que quizás hayas notado es que los campos [u,l,d,o]credit contener un número negativo. Esto se debe a que los números mayores o iguales a 0 darán crédito por usar el carácter en su contraseña. Si el campo contiene un número negativo, significa que se requiere una determinada cantidad.

¿Qué son los préstamos?

Los llamo préstamos porque transmiten su propósito con la mayor precisión posible. Si el valor del parámetro es mayor que 0, agrega una cantidad de "créditos de caracteres" igual a "x" a la longitud de la contraseña. Por ejemplo, si todos los parámetros (u,l,d,o)credit establecida en 1 y la longitud requerida de la contraseña era 6, entonces necesitará 6 caracteres para satisfacer el requisito de longitud porque cada carácter mayúscula, minúscula, dígito u otro carácter le dará un crédito.

si instalas dcredit en 2, teóricamente podrías usar una contraseña de 9 caracteres y obtener créditos de 2 caracteres para los números, y luego la longitud de la contraseña ya podría ser 10.

Mira este ejemplo. Configuré la longitud de la contraseña en 13, configuré dcredit en 2 y todo lo demás en 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Mi primera verificación falló porque la contraseña tenía menos de 13 caracteres. La próxima vez cambié la letra “I” por el número “1” y recibí dos créditos por los números, lo que hizo que la contraseña fuera 13.

Prueba de contraseña

Paquete libpwquality proporciona la funcionalidad descrita en el artículo. También viene con un programa. pwscore, que está diseñado para comprobar la complejidad de la contraseña. Lo usamos arriba para verificar préstamos.
Utilidad pwscore lee de stdin. Simplemente ejecute la utilidad y escriba su contraseña, mostrará un error o un valor de 0 a 100.

La puntuación de calidad de la contraseña está relacionada con el parámetro. minlen en el archivo de configuración. En general, una puntuación inferior a 50 se considera una “contraseña normal” y una puntuación superior se considera una “contraseña segura”. Cualquier contraseña que pase los controles de calidad (especialmente la verificación forzada). cracklib) debe resistir ataques de diccionario y una contraseña con una puntuación superior a 50 con la configuración minlen incluso por defecto brute force ataques

Conclusión

Ajuste pwquality – es fácil y simple en comparación con las molestias de uso cracklib con edición directa de archivos pam. En esta guía, cubrimos todo lo que necesitará al configurar políticas de contraseña en sistemas Red Hat 7, CentOS 7 e incluso Ubuntu. También hablamos sobre el concepto de préstamo, sobre el cual rara vez se escribe en detalle, por lo que este tema a menudo no queda claro para quienes no lo habían conocido antes.

Fuentes:

página de manual de pwquality
página de manual pam_pwquality
página de manual de pwscore

Enlaces de interés:

Elegir contraseñas seguras – Bruce Schneier
Lorrie Faith Cranor habla sobre sus estudios de contraseñas en CMU
La infame caricatura xkcd sobre entropía

Fuente: habr.com

Añadir un comentario