¡Hola de nuevo! Mañana comienzan las clases del nuevo grupo del curso
En el tutorial anterior te contamos cómo utilizar pam_cracklib
hacer que las contraseñas en los sistemas sean más complejas 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.conf
para 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.
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
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:
Enlaces de interés:
Fuente: habr.com