Olá outra vez! As clases do novo grupo do curso comezan mañá
No tutorial anterior dixémosche como usalo pam_cracklib
para facer que os contrasinais dos sistemas sexan máis complexos pam_pwquality
substituído cracklib
como pam
módulo predeterminado para comprobar contrasinais. Módulo pam_pwquality
tamén é compatible con Ubuntu e CentOS, así como moitos outros sistemas operativos. Este módulo facilita a creación de políticas de contrasinais para garantir que os usuarios acepten os estándares de seguridade dos teus contrasinais.
Durante moito tempo, o enfoque común dos contrasinais foi obrigar ao usuario a usar maiúsculas, minúsculas, números ou outros símbolos. Estas regras básicas para a complexidade dos contrasinais foron moi promovidas nos últimos dez anos. Houbo moita discusión sobre se esta é unha boa práctica ou non. O principal argumento en contra de establecer condicións tan complexas era que os usuarios anotaban os contrasinais en anacos de papel e os almacenaban de forma insegura.
Outra política que foi cuestionada recentemente obriga aos usuarios a cambiar os seus contrasinais cada x días. Houbo algúns estudos que demostraron que isto tamén é prexudicial para a seguridade.
Sobre o tema destas discusións escribíronse moitos artigos que fundamentan un ou outro punto de vista. Pero isto non é o que falaremos neste artigo. Neste artigo falarase de como configurar correctamente a complexidade do contrasinal en lugar de xestionar a política de seguranza.
Configuración da política de contrasinais
A continuación verás as opcións da política de contrasinais e unha breve descrición de cada unha. Moitos deles son similares aos parámetros do módulo cracklib
. Este enfoque facilita a portabilidade das túas políticas desde o sistema heredado.
- difok – O número de caracteres do teu novo contrasinal que NON debería estar presente no teu antigo contrasinal. (Predeterminado 5)
- minlen - Lonxitude mínima do contrasinal. (Predeterminado 9)
- ucredit – O número máximo de créditos para usar caracteres en maiúsculas (se o parámetro > 0) ou o número mínimo necesario de caracteres en maiúsculas (se o parámetro < 0). O valor predeterminado é 1.
- lcrédito — O número máximo de créditos para usar caracteres en minúscula (se o parámetro > 0) ou o número mínimo necesario de caracteres en minúscula (se o parámetro < 0). O valor predeterminado é 1.
- dcrédito — O número máximo de créditos para o uso de díxitos (se o parámetro > 0) ou o número mínimo necesario de díxitos (se o parámetro < 0). O valor predeterminado é 1.
- o crédito — O número máximo de créditos para utilizar outros símbolos (se o parámetro > 0) ou o número mínimo requirido doutros símbolos (se o parámetro < 0). O valor predeterminado é 1.
- minclass – Establece o número de clases necesarias. As clases inclúen os parámetros anteriores (caracteres en maiúsculas, caracteres en minúsculas, números, outros caracteres). O valor predeterminado é 0.
- repetición máxima – O número máximo de veces que se pode repetir un carácter nun contrasinal. O valor predeterminado é 0.
- maxclassrepeat — O número máximo de caracteres consecutivos nunha clase. O valor predeterminado é 0.
- gecoscheck – Comproba se o contrasinal contén palabras das cadeas GECOS do usuario. (Información do usuario, é dicir, nome real, localización, etc.) O valor predeterminado é 0 (desactivado).
- ruta dictada – Imos aos dicionarios cracklib.
- malas palabras – Palabras separadas por espazos que están prohibidas nos contrasinais (Nome da empresa, a palabra “contrasinal”, etc.).
Se o concepto de préstamos soa estraño, está ben, é normal. Falaremos máis sobre isto nas seguintes seccións.
Configuración da política de contrasinais
Antes de comezar a editar ficheiros de configuración, é unha boa práctica escribir unha política básica de contrasinais con antelación. Por exemplo, utilizaremos as seguintes regras de dificultade:
- O contrasinal debe ter unha lonxitude mínima de 15 caracteres.
- O mesmo carácter non debe repetirse máis de dúas veces no contrasinal.
- As clases de personaxes pódense repetir ata catro veces nun contrasinal.
- O contrasinal debe conter caracteres de cada clase.
- O novo contrasinal debe ter 5 novos caracteres en comparación co antigo.
- Activa a comprobación GECOS.
- Prohibir as palabras "contrasinal, pasar, palabra, putorius"
Agora que elaboramos a política, podemos editar o ficheiro /etc/security/pwquality.conf
para aumentar os requisitos de complexidade do contrasinal. A continuación móstrase un ficheiro de exemplo con comentarios para unha mellor 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 podes observar, algúns parámetros do noso ficheiro son redundantes. Por exemplo, o parámetro minclass
é redundante xa que xa usamos polo menos dous caracteres da clase usando campos [u,l,d,o]credit
. A nosa lista de palabras que non se poden usar tamén é redundante, xa que prohibimos repetir calquera clase 4 veces (todas as palabras da nosa lista están escritas en minúsculas). Incluín estas opcións só para demostrar como usalas para configurar a túa política de contrasinais.
Unha vez que creas a túa política, podes obrigar aos usuarios a cambiar os seus contrasinais a próxima vez que inicien sesión.
Outra cousa estraña que podes ter notado é que os campos [u,l,d,o]credit
contén un número negativo. Isto débese a que os números maiores ou iguais a 0 darán crédito por usar o carácter do teu contrasinal. Se o campo contén un número negativo, significa que se require unha determinada cantidade.
Que son os préstamos?
Chámolles préstamos porque iso transmite o seu propósito coa maior precisión posible. Se o valor do parámetro é maior que 0, engade un número de "créditos de carácter" igual a "x" á lonxitude do contrasinal. Por exemplo, se todos os parámetros (u,l,d,o)credit
definido en 1 e a lonxitude do contrasinal requirida era 6, entón necesitarás 6 caracteres para satisfacer o requisito de lonxitude porque cada maiúscula, minúscula, díxitos ou outro carácter darache un crédito.
Se instalas dcredit
en 2, teoricamente poderías usar un contrasinal de 9 caracteres e obter créditos de 2 caracteres para os números, e entón a lonxitude do contrasinal xa podería ser de 10.
Mira este exemplo. Establecín a lonxitude do contrasinal a 13, a dcredit a 2 e todo o demais a 0.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
A miña primeira comprobación fallou porque o contrasinal tiña menos de 13 caracteres. A próxima vez cambiei a letra "I" polo número "1" e recibín dous créditos polos números, o que fixo que o contrasinal fose igual a 13.
Proba de contrasinal
Paquete libpwquality
ofrece a funcionalidade descrita no artigo. Tamén vén cun programa pwscore
, que está deseñado para comprobar a complexidade do contrasinal. Usámolo arriba para comprobar os préstamos.
Utilidade pwscore
le de
A puntuación de calidade do contrasinal está relacionada co parámetro minlen
no ficheiro de configuración. En xeral, unha puntuación inferior a 50 considérase un "contrasinal normal" e unha puntuación superior considérase un "contrasinal seguro". Calquera contrasinal que supere as comprobacións de calidade (especialmente a verificación forzada cracklib
) debe soportar ataques de dicionario e un contrasinal cunha puntuación superior a 50 coa configuración minlen
mesmo por defecto brute force
ataques.
Conclusión
axuste pwquality
- é sinxelo e sinxelo en comparación co inconveniente de usar cracklib
con edición directa de ficheiros pam
. Nesta guía, cubrimos todo o que necesitarás para configurar as políticas de contrasinais en Red Hat 7, CentOS 7 e incluso en sistemas Ubuntu. Tamén falamos do concepto de préstamos, do que raramente se escribe en detalle, polo que este tema a miúdo non estaba claro para aqueles que non o coñeceran anteriormente.
Fontes:
Ligazóns útiles:
Fonte: www.habr.com