Como você define os requisitos (como tamanho mínimo) das senhas?

18

Existe alguma maneira de configurar requisitos mínimos de senha, como comprimento mínimo, exigência de alfanuméricos com maiúsculas e minúsculas e pelo menos 1 símbolo na senha e impor isso nas alterações de senha?

Thomas Ward
fonte

Respostas:

21

A complexidade da senha no Ubuntu é controlada pelo PAM. Infelizmente, o PAM é "tipicamente Unix", como em sua abordagem. Isso significa que ele espalha sua configuração através de um grande número de arquivos muito confusos.

O arquivo que controla a complexidade da senha é:

/etc/pam.d/common-password

Há uma linha:

password [success=1 default=ignore] pam_unix.so obscure sha512

Que define as regras básicas para a complexidade da senha. Você pode adicionar uma substituição de tamanho mínimo alterando-a para:

password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12

ou o mínimo que você quiser. Como você pode ver, o padrão já define algumas regras básicas de obscuridade. Essas regras básicas podem ser vistas em:

man pam_unix

Procure por "obscuro".

Há um grande número de módulos pam que podem ser instalados.

apt-cache search libpam-

Deve mostrar-lhes.

Você precisará caçar a documentação para eles, receio. Mas o "cracklib" é uma adição comum.

ATUALIZAÇÃO: Eu deveria ter apontado que o parâmetro "obscuro" padrão inclui testes de complexidade com base em senhas anteriores e simplicidade (comprimento, número de tipos diferentes de caracteres). O exemplo na página de manual mostra cracklib em ação. Instale libpam_cracklib para que isso funcione.

Além disso, depois de definir o que alterar, as alterações serão as mesmas em outros arquivos, para que você possa aplicar as mesmas verificações de senha (ou diferentes) para SSH e outros aplicativos.

Julian Knight
fonte
De acordo com man pam_unix, o tamanho mínimo da senha padrão é 6 caracteres, se você pesquisar minlen.
Timo
isso não funciona para ubuntu 18,04 - mesmo com essa configuração eu posso colocar qualquer senha que eu quero (curto, palíndromo, ..) - Eu só preciso repetir essa senha 4x :(
xhudik
Quando você diz "não funciona", não está claro o que você quer dizer. Quer dizer que ele faz o trabalho, mas que repetir a senha curta 4 vezes é uma espécie de "desvio" - em caso afirmativo, respeitosamente, você está errado, que ainda é uma senha forte. Caso contrário, você poderia esclarecer?
Julian Knight
1

Os valores da senha são controlados no arquivo

/etc/pam.d/common-password

Para mais informações sobre como modificar o arquivo, consulte a página de manual pam_unix

Mitch
fonte
11
Você listou pam_unix (5), a página correta é pam_unix (8) linux.die.net/man/8/pam_unix . De fato, as versões online da página de manual, por algum motivo, não parecem listar a seção importante no parâmetro "obscuro" - aquela que eu incluí na minha resposta. Se você fizer um man pam_unix, poderá vê-lo.
Julian Knight
11
@ JulianKnight Obrigado pelo comentário. Corrigi o link :)
Mitch
1

Os módulos PAM pré-instalados permitem configurar requisitos básicos à luz da complexidade. Existe um bom módulo que é sucessor do módulo pam_cracklib - pam_pwquality. Para instalá-lo, digite o seguinte

apt-get install libpam-pwquality

então familiarize-se com este

man pam_pwquality

especialmente com a seção "Opções".

Agora você pode editar a senha comum em /etc/pam.d/

vi /etc/pam.d/common-password

encontre a linha que contém a seguinte instrução "password requisite pam_pwquality.so" e depois pam_pwquality.so anexe suas opções como esta

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

que significa "o tamanho mínimo da senha é de 16 caracteres, sendo que no mínimo 4 deles estão em maiúsculas. Solicite ao usuário a senha três vezes.

O pam_pwquality permite criar requisitos de senha muito mais complexos em combinação com outros módulos como pam_pwhistory. Boa sorte

Piotr Kowalczyk
fonte