Política De Senhas No Linux: Senhas Com Data Para Expirar
Já é sabido que a maior vulnerabilidade dentro das empresas ou mesmo computadores pessoais são justamente os próprios funcionários ou usuários.
Manter uma boa política de senhas é fundamental para garantir a segurança básica de suas informações e tentar minimizar as chances de alguém ter acesso indevido a elas.
Vou apresentar dicas simples para uma boa política de senhas que vão além das dicas comuns como “mantenha uma senha que contenha mais de 8 caracteres, sendo eles números, letras minúsculas, maiúsculas e caracteres especiais…”.
Em escritórios é importante haver também uma política de troca de senha regular. Mas, como forçar os usuários a seguirem essa política de troca de senha regular? Evitando que o mesmo se logue caso não troque a senha de forma periódica, claro.
Vamos começar pelo básico.
1- Definindo a complexidade das senhas de usuários:
Para definir a complexidade, precisaremos alterar a configuração de definição de senhas de usuários. O processo pode ser diferente, de acordo com a sua distribuição.
Edite o arquivo passwd que se encontra em /etc/pam.d/passwd, da seguinte forma:
# vim /etc/pam.d/passwd
Debian, Ubuntu, RedHat, CentOS e outras:
# vim /etc/pam.d/system-auth
Configure sua linha de senha de forma que fique algo parecido com o seguinte:
_password required pamcracklib.so difok=3 minlen=10 ucredit=3 ocredit=2 retry=3
Onde:
difok=3 -> Informa a quantidade de caracteres que podem se repetir em relação à última senha. Por exemplo: Se minha antiga senha era “kalib” e eu tento usar “kalamba” como nova senha, receberei uma informação de erro, pois eu repeti 3 letras que já existem na senha anterior “kal”.
minlen=10 -> Informa qual a quantidade mínima de caracteres aceitos para a senha do usuário. No exemplo, o mínimo de caracteres aceitos serão 10, caso contrário será apresentada uma mensagem de erro solicitando que o usuário tente uma nova senha.
ucredit=3 ->Informa a quantidade de letras maiúsculas que deverão compor minha senha. No exemplo, eu precisarei utilizar no mínimo 3 letras em maiúsculo, ou “Uper Characters” em minha nova senha.
ocredit=2 -> Informa a quantidade de “outros caracteres” ou caracteres especiais, como por exemplo *, &, %, $, _, etc.
retry=3 -> Informa 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.
2- Definindo que a nova senha não poderá ser igual às anteriores:
No mesmo arquivo do ponto anterior, iremos inserir o parâmetro remember na linha conforme exemplo:
_password sufficient pam_unix.so useauthtok md5 shadow remember=10
remember=10 -> Informa que a nova senha não poderá ser igual às últimas 10 senhas utilizadas por este usuário.
Agora que já sabemos como definir uma política para criação de senhas seguras, vamos conhecer o “chage”, que nos ajudará a definir a política de datas ou validade das senhas.
3- Checando as políticas de validade de senhas de um determinado usuário:
# chage -l usuário
O comando acima verifica os atributos de validade daquela senha, e lhe retornará algo similar ao seguinte:
<em>Last password change : May 11, 2011</em>
<em>Password expires : never</em>
<em>Password inactive : never</em>
<em>Account expires : never</em>
<em>Minimum number of days between password change : 0</em>
<em>Maximum number of days between password change : 99999</em>
<em>Number of days of warning before password expires : 7</em>
As informações acima apresentam dados como data de última mudança de senha, data de expiração, tempo de inatividade, quantidade mínima de dias para se trocar a senha antes de a mesma expirar, etc.
4- Criando uma “validade” ou período de expiração para a senha de um determinado usuário:
<em># chage -M 99999 linustorvalds</em>
Este comando vai desabilitar o período de validade da senha, informando que a mesma não expira nunca.
<em># chage -M 50 -m 7 -W 7 linustorvalds</em>
Este comando aplica a política de senha para o usuário “linustorvalds” onde: -M 50 -> Define que a senha será válida por um máximo de 50 dias, quando a mesma deverá ser trocada. -m 7 -> 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.
Caso você deseje especificar um dia exato no qual a senha de determinado usuário vai expirar, você pode utilizar o parâmetro -E seguido da data desejada no formato AAAA-MM-DD.
Além disto, você pode desejar que a senha do usuário “linustorvalds” seja trocada no próximo login do mesmo. Neste caso você poderá utilizar o parâmetro -d, conforme exemplo abaixo:
<em># chage -d 0 linuxtorvalds</em>
O -d significa quantidade de dias também.
<strong>É</strong> isso pessoal.
<strong>H</strong>ave fun!