AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 966731
Accepted
NoNoNo
NoNoNo
Asked: 2019-05-11 06:59:17 +0800 CST2019-05-11 06:59:17 +0800 CST 2019-05-11 06:59:17 +0800 CST

PAM: vários pam_pwquality exigem repetir a mesma senha várias vezes

  • 772

Em um servidor RHEL7, tenho que implementar duas políticas de senha que podem ser descritas como parâmetros do módulo PAM pam_pwquality:

  1. requisito de senha pam_pwquality.so try_first_pass local_users_only minlen=14
  2. requisito de senha pam_pwquality.so try_first_pass local_users_only dcredit=0 ucredit=0 ocredit=0 lcredit=0 minclass=3 maxsequence=1

Além disso, a configuração padrão do RHEL 7 PAM já contém a seguinte entrada de pam_pwquality:

  1. requisito de senha pam_pwquality.so try_first_pass local_users_only retry=3

Eu tenho os requisitos para aplicar a política de senha da entrada 3 a todos os usuários e a política de senha a dois grupos diferentes de usuários locais denominados group1 e group2.

Para aplicar esses requisitos, adicionei o seguinte código em /etc/pam.d/password-auth-ac e /etc/pam.d/system-auth-ac após a entrada pam_pwquality padrão (chamada 3. nesta pergunta) :

password requisite pam_pwquality.so try_first_pass local_users_only minlen=14 # Default RHEL7 pam_pwquality.so entry
#BEGIN PWPOLICY 1
password [success=1 default=ignore] pam_succeed_if.so user notingroup group1
password    requisite     pam_pwquality.so try_first_pass local_users_only minlen=14 use_authtok
#END PWPOLICY 1


#BEGIN PWPOLICY 2
password [success=1 default=ignore] pam_succeed_if.so user notingroup group2
password    requisite     pam_pwquality.so try_first_pass local_users_only dcredit=0 ucredit=0 ocredit=0 lcredit=0 minclass=3 maxsequence=1 use_authtok
#END PWPOLICY 2

Essa configuração funciona conforme o esperado, mas tem a desvantagem de que quando um usuário (incluído no grupo1 e grupo2) altera a senha ele precisa repeti-la várias vezes, conforme mostrado no exemplo a seguir:

[test@rhel7 ~]$ passwd 
Changing password for user test.
Changing password for test.
(current) UNIX password: 
New password: 
Retype new password: 
Retype new password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

A opção "use_authtok" incluída nas minhas duas últimas entradas pam_pwquality parece ser ignorada.

Você sabe o que há de errado com essa configuração ou outros métodos para implementar esses requisitos?

pam
  • 1 1 respostas
  • 969 Views

1 respostas

  • Voted
  1. Best Answer
    Erik Ogan
    2019-10-10T07:15:10+08:002019-10-10T07:15:10+08:00

    O problema aqui é duplo:

    1. pam_pwqualityfoi projetado para solicitar explicitamente uma verificação de senha com pam_get_authtok_verify, e use_authtokse aplica apenas a pam_get_authtok_noverify.
    2. O PAM desce na pilha em ordem, então todos os seus usuários estão atingindo a política padrão na primeira linha, e acredito que seus pam_succeed_ifsaltos não estão funcionando do jeito que você pensa.

    Acho que você pode querer inverter a ordem e adicionar e usar a sintaxe de colchetes para obter o que deseja:

    ### Policy Group 1
    # If the user is in group 1, do nothing (and run the next module), 
    # otherwise skip to Group 2
    password [success=ignore default=1] pam_succeed_if.so user ingroup group1
    
    # If this module succeeds skip 3 modules: the two for Group 2 
    # and 1 for the default entry, otherwise fail the stack immediately. 
    # "die" matches the "requisite" in your original policy. If "required" is 
    # intended, change this to "bad"
    password [success=3      default=die]   pam_pwquality.so try_first_pass local_users_only minlen=14
    
    ### Policy Group 2
    # If the user is in group 2, do nothing (and run the next module), 
    # otherwise skip to the default entry
    password [success=ignore default=1] pam_succeed_if.so user ingroup group2
    
    # Similar to Group 1, except we only need to skip the default module entry on success
    password [success=1  default=die]   pam_pwquality.so try_first_pass local_users_only dcredit=0 ucredit=0 ocredit=0 lcredit=0 minclass=3 maxsequence=1 
    
    ### Default RHEL7 pam_pwquality.so entry
    password requisite          pam_pwquality.so try_first_pass local_users_only minlen=14
    
    ### This should be replaced with the stack responsible for managing passwords, if not the RHEL7 default
    password sufficient         pam_unix.so try_first_pass use_authtok nullok sha512 shadow
    

    Não parece haver nenhuma diferença para mim entre a política do Grupo #1 e o padrão. Supondo que isso não seja intencional, acredito que o acima deve funcionar se você precisar que todos os 3 sejam diferentes.

    Além disso: Esta solução assume que a associação group1 & group2 é mutuamente exclusiva. Se alguém estiver em ambos os grupos, o grupo1 terá precedência.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve