Como impor uma política de complexidade de senha?

13

Preciso configurar um servidor Ubuntu para seguir uma política estrita de senha da empresa que especifique o seguinte:

  • pelo menos uma letra maiúscula
  • pelo menos uma minúscula
  • pelo menos um dígito
  • pelo menos um caractere especial

Eu dei uma olhada e encontrei as instruções para especificar o tamanho da senha; mas ainda não encontrei algo relacionado à especificação do conteúdo da senha referente aos pontos acima.

Qualquer ajuda seria apreciada.

Stephen RC
fonte

Respostas:

19

A complexidade da senha é imposta pelo pam_cracklibmódulo.

Para modificar a política de senha da sua máquina local, você precisará modificar seu /etc/pam.d/common-passwordarquivo.

Em uma janela do terminal ( Ctrl+ Alt+ T), digite o seguinte comando:

sudo -i gedit /etc/pam.d/common-password

Adicione a seguinte linha ao arquivo (antes pam_unix.soou qualquer módulo PAM é usado principalmente para autenticação, como pode ser visto nos exemplos na página de manual) e salve o arquivo:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Esta declaração implementa os seguintes requisitos de senha:

  • dcredit == dígito
  • ucredit == caractere maiúsculo
  • lcredit == caracteres minúsculos
  • ocredit== outro caractere (caracteres especiais, incluindo ! , @ # $ %)

Isso deve satisfazer seus requisitos.

Você também pode usar as variáveis minlengthe retriesrestringir ainda mais os requisitos de senha.

Aqui está outro bom exemplo de modificação de uma diretiva de senha dessa maneira: colocar a seguinte linha no /etc/pam.d/common-passwordarquivo:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Essa entrada definirá no máximo três tentativas para obter uma senha aceitável com um comprimento mínimo de 10 caracteres.

Isso define o requisito para que os usuários tenham no mínimo três caracteres diferentes da última senha.

Isso também atenderá ao requisito de que a senha contenha pelo menos um de cada dígito, caracteres minúsculos e maiúsculos.

Veja também este artigo sobre a configuração de regras mais fortes de política de senha no linux .

Kevin Bowen
fonte
3
Excelente resposta! Eu acrescentaria, em relação às novas tentativas, que é importante ter cuidado ao considerar uma política para impedir que os usuários façam logon com muitas tentativas de login com falha recentes. Isso pode levar à viabilidade de um dos ataques de negação de serviço mais simples e mais fáceis de executar em uma conta (tente e não consiga efetuar o logon X várias vezes até que a conta seja "bloqueada" e o usuário legítimo não possa entrar) .
Eliah Kagan
Resposta fantástica, obrigado :) Porém, uma pergunta parece que o rootusuário pode ignorar os requisitos de senha ... É possível aplicar isso também ao usuário root?
Stephen RC
@Valorin Que parte dos requisitos de senha o usuário root não respeita?
Kevin Bowen
@maggotbrain nada disso, ele lança um aviso, mas ainda salva-lo, esta foi a password 'armadilha': paste.ubuntu.com/1543154
Stephen RC
@ Valorin Então, você ativou a conta chamada 'root' e pode usar esta conta com essa senha, correto? Quais avisos você está recebendo? Infelizmente, não tenho uma máquina com uma conta root habilitada para testar isso sozinho. Parece um bug, mas precisa de mais informações.
precisa saber é o seguinte