O módulo 
cracklib tem suporte para uso de mais de trinta dicionários, que podem ser instalados e servir de referência para análise e bloqueio de senhas a serem utilizadas na rede (por serem dedutíveis). Iniciaremos pela instalação e configuração do módulo cracklib, com as especificações de padrões mínimos de segurança nas senhas dos usuários.
# apt-cache search cracklib
cracklib-runtime - runtime support for password checker library cracklib2
cracklib2 - pro-active password checker library
cracklib2-dev - pro-active password checker library - development
libpam-cracklib - PAM module to enable cracklib support
# apt-get install libpam-cracklib cracklib2 cracklib2-dev cracklib-runtime
A instalação inicial permite algumas  verificações básicas, que podem ser estendidas por meio de ajustes, os quais veremos em seguida. Comecemos pelas verificações básicas habilitadas pelo módulo, que são as seguintes:
-   Impede o uso de senha reversa: password => drowssap;
-   Não autoriza atualização de senha que comporte somente mudança no case da senha anterior: password => Password; e,
-   Define a quantidade aceitável de  diferença mínima entre os caracteres da senha anterior e da senha atual. Definida na variável 'difok=n';
Essas configurações mínimas podem ser estendidas por meio do incremento de funcionalidades, tais como: dicionário de senhas não-autorizadas, histórico de senhas anteriores, tamanho mínimo/máximo de cada senha, e prazo de expiração de senhas. Dessa forma, conforme o nível de paranoia estabelecido, poderemos estabelecer uma política de uso aceitável referente à utilização de senhas na nossa rede interna.
A habilitação do uso do módulo cracklib se dá por meio dos arquivos de gerenciamento de mudança senhas, existente no diretório de administração dos módulos PAM (/etc/pam.d), e ajustamos as configurações de mudanças de senha nos arquivos  'common-password' ou 'system-auth', conforme estejamos em distribuições baseadas no Debian ou no Red Hat. 
Contudo, essas alterações poderão ser efetuadas diretamente no arquivo de gerenciamento do programa login (/etc/pam.d/login) ou no arquivo de gerenciamento do ambiente gráfico (/etc/pam.d/kdm ou /etc/pam.d/gdm), se não desejarmos habilitá-las para outros programas do sistema (ssh, mysql, vsftp, postfix). 
Por isso, se alterarmos os arquivos 'common-password'ou 'system-auth', as modificações aplicam-se a todos os programas e usuários, e se alterarmos nos arquivos 'login', 'kdm' ou 'gdm', as modificações aplicam-se somente a estes programas.
Utilizaremos o modelo de alteração geral, a fim de reforçar a política de segurança em todas as aplicações e usuários, e por isso, editaremos o arquivo correspondente ao gerenciamento geral de trocas de senhas, em distribuição debian-like (/etc/pam.d/common-password):
# vi /etc/pam.d/common-password
password required pam_cracklib.so retry=3 minlen=6  difok=3
password required pam_unix.so md5 remember=10 use_authtok 
As linhas estabelecem os critérios a serem utilizados, quando for solicitada a modificação da senha pelos usuários, ou aplicações com suporte ao PAM, da seguinte forma:
-   retry=3       # admite-se somente três tentativas de login incorretas antes de impedir o acesso ao terminal
-   minlen=6    # somente senhas com tamanho mínimo de seis caracteres serão aceitas
-   difok=3       # tem que haver, pelo menos, três caracteres de diferença entre a senha anterior e a senha atual
-   md5            # hash utilizado pelas senhas em /etc/shadow
-   remember=10 # quantidade de senhas memorizadas, e que não podem ser reutilizadas
-   use_authtok # utiliza a senha digitada anteriormente, desde que não tenha havido falha na autenticação
Assim, poderemos ter a autenticação concentrada no arquivo comum e herdada pelos demais aplicativos, e editarmos o arquivo de login, a fim de que herde essas configurações:
# vi /etc/pam.d/login
@include common-auth
@include common-session
@include common-account
@include common-password
Habilitaremos a memorização de senhas através de operações complementares, destinadas criar o arquivo para histórico das mesmas: 
# touch /etc/security/opasswd
# chown root.root /etc/security/opasswd
# chmod 600 /etc/security/opasswd
#  passwd
Changing password for aquaman
(current) UNIX password:
New UNIX password:
BAD PASSWORD: has been already used
New UNIX password:
A ferramenta 'chage' nos permite verificar e alterar as configurações de contas do sistema. Utilizaremos essa ferramenta para definir a expiração de contas, mantendo a consistência da nossa política de uso aceitável:
# chage -h
Uso: chage [opções] usuário
  -d, --lastday ÚLTIMO_DIA 
# define última mudança de senha para ULTIMO_DIA
  -E, --expiredate DATA_EXPIRAÇÃO 
# define data de expiração de senha para DATA_EXPIRAÇÃO
  -h, --help 
# exibe esta mensagem de ajuda e finaliza
  -I, --inactive INATIVO 
# define senha inativa após expiração para INATIVO
  -l, --list 
# exibe informação sobre idade da conta
  -m, --mindays MIN_DIAS 
# define números mínimo de dias antes da troca de senha para MIN_DIAS
  -M, --maxdays MAX_DIAS 
# define números máximo de dias antes da troca de senha para MAX_DIAS
  -W, --warndays AVISO_DIAS 
# define dias para aviso de expiração para AVISO_DIAS
# chage -l aquaman
Última mudança de senha	: Out 04, 2009
Senha expira em		: Nov 03, 2009
Senha inativa		: nunca
Conta expira em		: nunca
Número mínimo de dias entre a mudança de senhas	: 8
Número máximo de dias entre a mudança de senha	: 30
Número de dias de aviso antes da senha expirar	: 7
Definiremos 90 dias como o tempo de vida da conta, 30 dias como o tempo de renovação de senha e 7 dias como o tempo para aviso de vencimento da senha:
# chage -E 12/24/2009 -I 12/24/2009 -M 30 -W 7 aquaman
# chage -l aquaman
Última mudança de senha	: Out 04, 2009
Senha expira em		: Nov 03, 2009
Senha inativa		: Nov 15, 2009
Conta expira em		: Dez 24, 2009
Número mínimo de dias entre a mudança de senhas	: 8
Número máximo de dias entre a mudança de senha	: 30
Número de dias de aviso antes da senha expirar	: 7
Temos portanto um sistema gerenciável de contas. Podemos agora gerenciar o uso das senhas.