A senha é o átomo do sistema de segurança. O sistema será tão forte quanto o for a senha mais fraca existente. E essa percepção nos leva ao conceito de sistema de segurança mínima, que é aquele que nos garante as condições de sobrevivência em ambiente hostil, através da aplicação de padrões. Acrescentaremos alguns parâmetros para o incremento da segurança na política de senhas, de modo a melhorar a qualidade da segurança de nossa rede ou de algum host específico.
Contudo, a ferramenta 'passwd', nativa do sistema, não apresenta a flexibilidade necessária à customização de senhas. E utilizaremos a versão do módulo Perl instalável à partir do repositório. Essa versão customizada 'passwd.pl' disponibiliza um grau maior de customização de senhas, por meio de acréscimo de atributos (dígitos, letras minúsculas, letras maiúsculas e sinais de pontuação), obrigatórios em qualquer senha em uso na rede. Instalaremos a ferramenta:
# apt-cache search passwd
libpam-passwdqc - replacement for the pam_cracklib module
libpam-pwgen - a password generator
libstring-mkpasswd-perl - random password generator
makepasswd - Generate and encrypt passwords
passwd - change and administer password and group data
A ferramenta que apresenta a maior flexibilidade é provida pelo módulo libstring-mkpasswd-perl, e corresponde à ferramenta 'mkpasswd.pl'. Essa ferramenta poderá ser utilizada na geração de senhas para os usuários da rede.
# apt-get install libstring-mkpasswd-perl
# man mkpasswd.pl
Usage: mkpasswd.pl [-options]
-l # | --length=# length of password (default = 9)
-d # | --digits=# min # of digits (default = 2)
-c # | --lower=# min # of lowercase chars (default = 2)
-C # | --upper=# min # of uppercase chars (default = 2)
-s # | --special=# min # of special chars (default = 1)
-2 | --distribute alternate hands
--nodigits alias for --digits=0
--nolower alias for --lower=0
--noupper alias for --upper=0
--nospecial alias for --upper=0
# mkpasswd.pl -l 12 -d 6 -c 2 -s 2
61}7sLqX3}01
Devemos verificar a conformidade entre a política de senha estabelecida e as senhas efetivamente implementadas pelos usuários. A conformidade poderá ser aplicada de pró-ativa, na forma de senhas estabelecidas, por meio scripts de criação, respeitando as restrições impostas pelo uso do módulo cracklib, ou de forma preventiva, por meio de ferramentas de auditoria em rede. Devendo haver previsão do uso dessas ferramentas na política de segurança da corporação, e o uso das mesmas deverá estar restrito ao pessoal habilitado e autorizado para esse fim.
Configuraremos o gerenciamento de senhas de forma a atender as normas estabelecidas:
# vi /etc/pam.d/common-password
password required pam_cracklib.so retry=3 minlen=6 dcredit=2 ucredit=1 ocredit=2 lcredit=1 difok=3
password required pam_unix.so md5 remember=10 use_authtok
Os parâmetros funcionam na avaliação da criação de senhas no sistema, de acordo com o seguinte critério:
- dcredit=N : Digits characters (DÍGITOS)
- ucredit=N : Upper characters (MINÚSCULAS)
- lcredit=N : Lower characters (MAIÚSCULAS)
- ocredit=N : Other characters (SINAIS)
NOTA: Esses valores contam como crédito na senha.
Exemplos: {armario,@lM3id@, $u$p31#0}
Uma alternativa ao uso do módulo libpam-cracklib é o uso do módulo libpam-passwdqc, sugerido por Tempstra.
Referencias