Edite o arquivo passwd que se encontra em /etc/pam.d/system-auth, da seguinte forma:
- vim /etc/pam.d/system-auth
Configurar a linha de senha de forma que fique algo parecido com o seguinte:
Password required pam_cracklib.so difok=3 minlen=7 ucredit=3 ocredit=2 retry=6
Onde:
- difok=3 –> quantidade de caracteres que podem se repetir em relação à última senha. Por exemplo, se a senha antiga era "kalib" e a nova senha digitada for "kalamba", será exibida uma mensagem de erro, foi 3 letras foram repetidas na senha anterior "kal".
- minlen=7 –> quantidade mínima de caracteres aceitos para a senha do usuário. No exemplo, o mínimo de caracteres aceitos serão 7, caso contrário será apresentada uma mensagem de erro solicitando que o usuário tente uma nova senha.
- ucredit=3 –> quantidade de letras maiúsculas que deverão compor a senha. No exemplo, serão necessárias pelo menos 3 letras em maiúsculo na nova senha.
- ocredit=2 –> quantidade de "outros caracteres" ou caracteres especiais, como por exemplo *, &, %, $, _, etc.
- retry=6 –> quantas vezes o usuário vai poder tentar, em caso de senha indevida, antes de receber a mensagem de erro.
Outros parâmetros que podem ser utilizados são os seguintes:
- dcredit=x –> Informa a quantidade de dígitos que deverão ser utilizados como números na senha, onde x é o número mínimo desejado.
- lcredit=x –> Informa a quantidade de caracteres minúsculos, ou "Lower Characters", mínimos em sua senha.
Para impedir que a nova senha não seja igual às anteriores, no mesmo arquivo do ponto anterior, iremos inserir o parâmetro remember na linha conforme exemplo:
password sufficient pam_unix.so use_authtok md5 shadow remember=4
- remember=4 –> Informa que a nova senha não poderá ser igual às últimas 4 senhas utilizadas por este usuário.
Para definir uma política para criação de senhas seguras, o comando "chage" serve para definir datas de expiração ou validade das senhas:
- chage -l usuário
O comando acima verifica os atributos de validade daquela senha, e retornará algo similar ao seguinte:
Last password change : May 25, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7 - chage -M 90 -m 0 -W 7 linustorvalds
Este comando aplica a política de senha para o usuário "linustorvalds", onde:
- M 90 –> define que a senha será válida por um máximo de 90 dias, quando a mesma deverá ser trocada.
- m 0 –> define o número mínimo de dias em que o usuário poderá trocar sua senha antes do período especificado para expiração. Caso o usuário possa trocar a qualquer momento ou dia, o valor deverá ser 0.
- -W 7 –> número de dias antes de expirar nos quais o usuário vai receber alertas informando que sua senha irá expirar.
Além disto, é possível definir que a senha do usuário "linustorvalds" seja trocada no próximo login do mesmo. Neste caso pode ser usado o parâmetro -d, conforme exemplo abaixo:
- chage -d 0 linuxtorvalds