Como desabilito ou modifico os requisitos de senha do pam?

9

Estou usando o Fedora 19. Por padrão, é configurado com o pam para desativar senhas ruins, como "senha". Isso é bom. Tentar alterar esse padrão é irritante. Esta é uma caixa para testar coisas internas, não conectadas à Internet, nem qualquer máquina que seja. Senhas ruins facilitam o processo de teste. Como alternativa, como diabos você altera os requisitos de senha?

autenticação do sistema

man pam_cracklibtem alguns ótimos exemplos de configuração de requisitos de senha diferentes. Então eu abro /etc/pam.d/system-auth, que é onde você vê linhas como:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* Headdesk *. Na minha experiência, avisos como esse significam que suas alterações são apagadas toda vez que o gerenciador de pacotes é executado e / ou aleatoriamente.

authconfig

Então ... authconfigé o próximo passo. Eu procuro todos os arquivos chamados "authconfig". /etc/sysconfig/authconfigparece promissor. E nenhum aviso no topo sobre destruir minhas edições por capricho. Eu encontro essa linha USEPWQUALITY=yese mudo. Agora eu corro:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf. Então, vamos ler man authconfigum pouco mais de perto. Oh! Parece que esse arquivo não foi lido pelo authconfig, foi alterado . Então .... como você configura o authconfig? O manual sugere system-config-authentication, que eu instalo e não fornece nada parecido com uma caixa de seleção para desativar o pam_pwquality. A próxima sugestão do manual são as opções de linha de comando. Ótimo! Eu amo ferramentas de linha de comando. Somente nenhuma das opções de linha de comando documentadas desabilita pam_pwquality.

pwquality.conf

Graças à resposta de Aaron, aprendi que há alguns anos o fedora decidiu criar /etc/security/pwquality.conf o local para configurar os requisitos de qualidade de senha. Infelizmente, conforme documentado no arquivo e em man 5 pwquality.conf, (1) não há uma maneira de desativar a verificação do dicionário e (2) não é possível definir o tamanho permitido da senha abaixo de seis.

djeikyb
fonte
Se for interno, por que o Pam está instalado ou ativado?
Ramhound 19/09/13
11
@ Ramhound porque o fedora está infestado de pam. yum remove pamremove, tanto quanto eu posso dizer pelo tempo que leva para rolar todos os seus pacotes dependentes, tudo . Incluindo yum e systemd. Além disso, desabilitar o pam parece uma marreta, quando acho que só quero usar papel de areia.
djeikyb

Respostas:

4

Depois de uma rápida análise do código fonte em /usr/sbin/authconfige /usr/share/authconfig/authinfo.py:

  • A página de manual está incompleta, a lista completa de opções aceitas pelo script está em authconfig --help
  • Tudo pode ser substituído na linha de comando (até mesmo /etc/security/pwquality.confconfigurações como tamanho mínimo da senha), exceto a própria qualidade. IMHO, isso é um bug e deve ser relatado.
  • Das authinfo.pylinhas 2489 e 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Primeiro readSysconfig/etc/sysconfig/authconfig; então o que você coloca lá é substituído pelo readPAMque está em /etc/pam.d/*(especialmente password_auth*e system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : para as opções que não são substituídas (ou não podem ser), as configurações são obtidas da configuração atual, incluindo arquivos marcados com geração automática . Para fazê-lo funcionar, edite /etc/sysconfig/authconfig e remova as linhas mostradas porgrep -E pwq\|crack /etc/pam.d/*


Edit : Existe um segundo bug, que faz com que o conselho acima ainda não funcione: linha 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Você deve escolher uma das duas implementações do controle de qualidade, ou uma será escolhida para você! Combinado com o primeiro bug, isso impossibilita a desativação.

eddygeek
fonte
2 anos mais tarde, fedora 26 alfa a situação permanece a mesma
eddygeek
2

Você pode assumir o controle manual sobre seu system-autharquivo. Crie um novo arquivo (você pode começar copiando system-auth-ac) e altere o system-authlink simbólico para apontar para o novo arquivo.

Isso torna sua responsabilidade atualizar esta parte da configuração do PAM, pois o authconfig não tocará mais no link simbólico ou no arquivo para o qual aponta. No entanto, o authconfig ainda atualizará o system-auth-acarquivo, para que você possa continuar a usá-lo como referência, se necessário. Com alguma inteligência, você pode até conseguir includeisso na sua cópia local, mas como fazer isso está além do escopo desta pergunta.

Você também deve procurar outros links simbólicos, como password-auth. Você pode precisar dar o mesmo tratamento.


Na página de authconfig(8)manual, em Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Portanto, se system-authfor um arquivo, o authconfig o altera para vincular system-auth-ac. Mas se system-authfor um link simbólico, então o authconfig o deixa em paz.

Jander
fonte
1

Parece ser configurável através /etc/security/pwquality.conf

Fonte: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Aaron Okano
fonte
Obrigado, eu não tinha visto isso ainda. Infelizmente, pwquality.confnão suporta desabilitar as verificações de dicionário ou desabilitar as verificações de comprimento de senha.
djeikyb
Talvez a sugestão neste post funcione? serverfault.com/questions/444258/…
Aaron Okano 21/09
ou seja, remova o módulo de system-auth e também defina USEPWQUALITY = no e, em seguida, execute authconfig --update.
Aaron Okano 21/09
Infelizmente (como mencionado na pergunta), a execução authconfig --updateallredefine os arquivos. Estou completamente perplexo com essa resposta, pois contradiz diretamente o comportamento que estou observando.
djeikyb
Também devo observar que apenas definir USEPWQUALITY=noe / ou USECRACKLIB=nonão resolve o meu problema, mesmo antes de executar o authconfig.
djeikyb
1

Você ainda pode mudar na linha de comando. Você recebe um aviso, mas permite definir uma senha muito curta e uma que não atenda às regras de complexidade.

user280281
fonte
Isto não é absolutamente o que eu experiência comportamento com o Fedora 19.
djeikyb
@djeikyb executar o passwd <username>comando como root (ou com sudo passwd <username>ou depois su -do terminal de raiz.
Nick
@ Nick Isso não desativa ou modifica os requisitos de senha do pam.
djeikyb
@djeikyb Não altera o requisito, mas ignora-o. Quando você executa passwdcomo root, ele ignora as políticas de senha. Se você precisar configurá-lo apenas uma vez e esquecê-lo, isso funcionará. Se você estiver tentando configurá-lo para que cada usuário possa alterar livremente suas senhas, precisará de outra solução.
19413 Nick
@ Nick entendo. Sim, o root pode usar passwdsem ser modificado pelo pam. Pouco tem a ver com a questão real, mas torna verdadeira a afirmação nesta "resposta".
djeikyb
0

Acabei de encontrar esta pergunta com base em uma pesquisa relacionada e acho que tenho uma resposta para você.

O Fedora cria links simbólicos para os arquivos gerados pelo authconfig. ie system-authlinks para system-auth-ac. Se você criar system-authseu próprio arquivo, teoricamente, quaisquer alterações futuras feitas por auth-configainda serão atualizadas, system-auth-acmas manterão os arquivos modificados inalterados.

Na verdade, é bastante elegante, mas só o descobri quando me perguntei o que os *-acarquivos fizeram.

Ciclone
fonte
Isso não funciona. A próxima execução de authconfig(por exemplo authconfig --updateall) excluirá seu arquivo e o vinculará novamente ao -acarquivo.
docwhat
@TheDoctorO que é isso? Agora, não faz muito sentido para mim por que eles fariam dessa maneira se não fosse para permitir a persistência de alterações locais com um fallback fácil para a configuração gerenciada. Ah bem.
Cyclone
Sim, isso também me confunde ... a documentação não fala sobre isso e o código fonte ainda tem um longo comentário explicando como eles estão tentando ser tudo para todos ... muito irritante.
docwhat