Bom escudo não teme espada: o módulo pam_cracklib

Os administradores buscam, continuamente, novos meios para reforçar a proteção das comunicações e a manutenção da privacidade. A infraestrutura PAM-Linux provê meios para a proteção dos dados e para o reforço da privacidade. Utilizando o módulo pam_cracklib, podemos reforçar uma política de segurança.

[ Hits: 27.338 ]

Por: lourival araujo da silva em 09/08/2010


Partículas elementares



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


Página anterior    

Páginas do artigo
   1. O tempo da criação
   2. Palavras comprometedoras
   3. Sanatório geral
   4. Partículas elementares
Outros artigos deste autor

webCalendar: a agenda e o PAM

Autenticação via hardware: o módulo pam_blue

Autenticação via hardware: o módulo pam_usb

Configuração "automágica" de servidor Linux PDC Samba

Cliente "automágico" Linux logando no domínio NT/Samba

Leitura recomendada

Análise de Malware em Forense Computacional

Implementação de WAF mod_security e integração com Graylog utilizando Filebeat e Logstash

PHLAK :: [P]rofessional [H]acker's [L]inux [A]ssault [K]it

A mitologia da imunidade a vírus no Linux

Bind: Explorando e evitando falhas

  
Comentários
[1] Comentário enviado por leandromoreirati em 12/08/2010 - 11:11h

Excelente artigo hoje em dia e muito importante esse ajustes finos de acesso e de senha dos usuários, me tira uma duvida qual distro vc usou pois no debian nao tem o pacote cracklib2 ele e virtual ou se usou o debian, usou algum repositórios específico.

Att.

Leandro Moreira.

[2] Comentário enviado por araujo_silva em 12/08/2010 - 23:38h

Oi Leandro

Usei em momentos diferentes do trabalho o debian e o ubuntu 8.10. O pacote cracklib2 é do ubuntu, mas o debian possui o libcrack2, libcrack2-dev, cracklib-runtime e libpam-cracklib.

Obrigado pelas considerações e forte abraço

Att

Lourival Araújo

[3] Comentário enviado por leandromoreirati em 13/08/2010 - 09:59h

Araujo,
Que espetaculo essas confiogurações, já defini como polica padrao no em meus servidores, so preciso encontra um repositorio com as wordlists que no debian nao tem caso possa me indicar algum fico agrdecido.
Mais uma duvida as wordlist sao para o caracklib2 ou para o pam, pois se for para o cracklib torna-se desnecessário o repositorio.

Att.

Leandro Moreira

[4] Comentário enviado por araujo_silva em 13/08/2010 - 13:20h

Prezado Leandro

Apresento as seguintes sugestões:

1. O debian dispõe das bibliotecas cracklib (libcrack2, libcrack2-dev, cracklib-rutime) as quais instalam o arquivo de configuração dos dicionários de pesquisa do módulo (/etc/cracklib/cracklib.conf), no qual está definido o caminho de pesquisa dos dicionários a serem pesquisados;
Essas pesquisas devem ser agendadas via cron, e novos dicionários devem ser instalados (/var/cache/cracklib, no debian), e anunciados via comando (update-cracklib);

2. Novos diconários podem ser encontrados nos endereços sugeridos no artigo e em http://sourceforge.net e

3. A criação de dicionários customizados pode ser realizada por meio da aplicação mkdict (http://www.math.utah.edu/~beebe/unix/m/mkdict.html), que transforma listas de palavras ascii em dicionários. A distribuição Ubuntu dispõe de forma adaptada da aplicação, separada em comandos distintos para formatar, compactar e descompactar dicionários customizados (crack_mkdict, crack_packer e crack_unpacker). O código-fonte dessas aplicações pode ser localizado e reempacotado, pois trata-se de sequencias de comandos de formatação. Como no exemplo abaixo:
http://www.opensource.apple.com/source/CrackLib/CrackLib-36064/cracklib27/util/mkdict
###########################################################################################
mkdict
#!/bin/sh

###
# This program is copyright Alec Muffett 1993. The author disclaims all
# responsibility or liability with respect to it's usage or its effect
# upon hardware or computer systems, and maintains copyright as set out
# in the "LICENCE" document which accompanies distributions of Crack v4.0
# and upwards.
###

### in case of explosion, invoke "sort" with "-T" option pointing to a lot
### of free space in a directory somewhere.

SORT="sort"
###SORT="sort -T /tmp"

cat $* |
tr '[A-Z]' '[a-z]' |
tr -cd '{COMENTARIO}12[a-z][0-9]' |
$SORT |
uniq |
grep -v '^#' |
grep -v '^$'
###########################################################################################

4. Caso seja sua intenção reforçar de forma radical a segurança do seu sistema talvez seja uma idéia interessante contratar um segurança pessoal.

atenciosamente

Lourival Araujo

[5] Comentário enviado por leandromoreirati em 14/08/2010 - 14:32h

Araujo,
Cometi um grande erro, ao procurar as wordlist com aptitude ele nao as encontrou mas com o apt-cache encontrou numa boa.

Att.

Leandro Moreira.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts