Saiba como aumentar a segurança dos sistemas Linux configurando políticas de senhas

É conhecido por todos que o uso de senhas seguras é o primeiro passo para minimizar as chances de terceiros terem acesso indevido a informações confidenciais, mas isso não é suficiente. Tendo ciência que o maior vetor de vulnerabilidade para os sistemas computacionais é o próprio usuário do sistema, é necessário criar/manter uma política de senhas para garantir a segurança básica de suas informações. Sendo assim, este artigo lista sugestões para uma boa política de senhas que vão além de exigir senhas fortes; mas sim políticas de mundança periódica, período de expiração e verificação de padrões de senha, por exemplo.

AVISO! Os exemplos a seguir, caso não configurados corretamente, podem danificar algum componente do seu sistema. É solicitado que tenha algum conhecimento técnico para alterar arquivos de configuração do sistema. Por fim, recomendo que seja cuidadoso e NÃO execute em um ambiente de produção, crie um ambiente virtual de testes para esta operação!

PREPARAÇÃO

Este artigo está baseado na utilização do PAM (Pluggable Authentication Modules ou Módulos de Autenticação Plugáveis/Modulares). O PAM é a parte principal da autenticação em um sistema Linux. Praticamente todos os aplicativos do Linux que requerem algum tipo de autenticação suportam PAM. Toda a configuração está localizada no diretório /etc/pam.d. Portanto, visando criar um módulo único e centralizado de autenticação, os sistemas Linux realizam a autenticação via PAM.

Sendo assim, caso você esteja usando distros derivadas do Debian (Ubuntu, Mint) será preciso instalar um módulo PAM para habilitar o cracklib, que oferece recursos adicionais de verificação de senhas.

As políticas irão surgir efeitos imediatamente.

Instale-o executando o comando abaixo:

sudo apt-get install libpam-cracklib

Já para quem trabalha com distros como CentOS, Fedora ou RHEL não precisa instalar esse módulo; pois já vem configurado.

NOTA: as políticas de senhas exibidas abaixo terão efeitos sobre todos usuários do sistema, exceto o root.

IMPORTANTE: por questões de segurança, sempre faça o backup dos arquivos de configuração antes de qualquer alteração. Para proceder facilmente, execute o comando “cp arquivo-configuracao arquivo-configuracao-BCK” em todos os arquivos alterados!

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.

Debian, Ubuntu ou Linux Mint

sudo vi /etc/pam.d/common-password

Fedora, CentOS ou RHEL:

sudo vi /etc/pam.d/system-auth

Encontrado o arquivo, procure um trecho similar a esse:

E depois, substitua a linha acima por essa:

Isto irá forçar o usuário inserir pelo menos um caracter maiuscúlo (ucredit), dois caracteres minúsculos (lcredit), um dígito (dcredit) e um símbolo especial (ocredit).

Onde, os outros parâmetros são:

  • difok=3 -> Informa a quantidade de caracteres que podem se repetir em relação à última senha. Por exemplo: Se minha antiga senha era “atari” e eu tento usar “atado” como nova senha, receberei uma informação de erro, pois foi repeti 3 letras que já existiam na senha anterior “ata”.
  • 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 8
  • retry=3 -> Informa quantas vezes o usuário vai poder tentar, em caso de senha indevida, antes de receber a mensagem de erro.

2 – Garantindo que não sejam repetidas as senhas:

No mesmo arquivo acima, de acordo com sua distribuição, será preciso inserir o parâmetro remember na linha conforme exemplo:

Onde,

  • remember=10 -> Informa que a nova senha não poderá ser igual às últimas 10 senhas utilizadas por este usuário.

3 – Definindo o período de expiração das senhas:

Para configurar um período máximo de validade das senhas de cada usuário é preciso editar a variáveis abaixo no arquivo /etc/login.defs.

sudo nano /etc/login.defs

Isto irá forçar as senhas serem trocadas a cada 6 meses e enviar um aviso prévio de 7 dias informando a expiração da senha.

Mas, caso você queira definir o período de expiração para um usuário expecífico; será preciso usar o comando chage. Para verificar a política de expiração de senha de usuário, execute o comando:

sudo chage -l “usuario”

Por padrão, todas as senha dos usuários NUNCA expiram.

Por fim, para mudar uma política de expiração de senha para um usuário específico; execute:

sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 “usuario”

Onde,

  • -E DD/MM/AAAA ==> É definido uma data exata para expiração
  • -m 5 -M 90 ==> Quantidade mínima e máxima de dias para mudar a senha. Respectivamente, no mínimo 5 dias e no máximo 90 dias.
  • -I 30 ==> Quantidade de dias que a conta será bloqueada, caso a senha não seja alterado no período estipulado.
  • -W 14 ==> Quantidade de dias que antecede o período da expiração. É enviado um aviso prévio.

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...

  • Kleber Mendes

    Eu estou com um problema, eu ja configurei de acordo com o tutoria , mas não está aparecendo para expirar a senha e nem a quantidade de caracteres minimo está respeitando.

    Sabe o que pode ser?