Introdução a CrackLib
O pacote CrackLib contém uma
biblioteca usada para impor senhas fortes comparando senhas
selecionadas pelo(a) usuário(a) a palavras em listas de palavras
escolhidas.
Esse pacote é conhecido por construir e funcionar adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
Transferências Adicionais
Existem listas adicionais de palavras disponíveis para download,
por exemplo, em https://wiki.skullsecurity.org/index.php/Passwords.
O CrackLib consegue utilizar o
máximo ou o mínimo possível das listas de palavras que você
escolher instalar.
Importante
Os(As) usuários(as) tendem a basear as senhas deles(as) em
palavras comuns do idioma falado e os crackers sabem disso.
CrackLib destina-se a filtrar
essas senhas ruins na fonte usando um dicionário criado a partir
de listas de palavras. Para conseguir isso, a(s) lista(s) de
palavras para uso com CrackLib
precisa ser uma lista exaustiva de palavras e combinações de
teclas baseadas em palavras que provavelmente serão escolhidas
pelos(as) usuários(as) do sistema como senhas (adivinháveis).
A lista de palavras padrão recomendada acima para download atende
principalmente a essa função em países de língua inglesa. Em
outras situações, possivelmente seja necessário baixar (ou mesmo
criar) listas adicionais de palavras.
Observe que as listas de palavras adequadas para verificação
ortográfica não podem ser usadas como listas de palavras do
CrackLib em países com alfabetos
não latinos, devido às “combinações de teclas baseadas em palavras”
que tornam as senhas incorretas .
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cracklib
Instalação do CrackLib
Instale CrackLib executando os
seguintes comandos:
autoreconf -fiv &&
PYTHON=python3 \
./configure --prefix=/usr \
--disable-static \
--with-default-dict=/usr/lib/cracklib/pw_dict &&
make
Agora, como o(a) usuário(a) root
:
make install
Emita os seguintes comandos como o(a) usuário(a) root
para instalar a lista de palavras
recomendadas e criar o dicionário CrackLib. Outras listas de palavras (baseadas
em texto, uma palavra por linha) também podem ser usadas
simplesmente instalando-as em /usr/share/dict
e adicionando-as ao comando
create-cracklib
-dict.
install -v -m644 -D ../cracklib-words-2.9.8.bz2 \
/usr/share/dict/cracklib-words.bz2 &&
bunzip2 -v /usr/share/dict/cracklib-words.bz2 &&
ln -v -sf cracklib-words /usr/share/dict/words &&
echo $(hostname) >> /usr/share/dict/cracklib-extra-words &&
install -v -m755 -d /usr/lib/cracklib &&
create-cracklib-dict /usr/share/dict/cracklib-words \
/usr/share/dict/cracklib-extra-words
Se desejado, verifique a operação adequada da biblioteca como um(a)
usuário(a) não privilegiado(a) emitindo o seguinte comando:
make test
Importante
Se você estiver instalando o CrackLib depois que seu sistema LFS tiver
sido concluído e você tiver o pacote Shadow instalado, [então] você precisa
reinstalar o Shadow-4.13 se desejar fornecer suporte de
senha forte em seu sistema. Se for instalar agora o pacote
Linux-PAM-1.5.2, você pode desconsiderar
essa observação, pois o Shadow
será reinstalado depois da instalação do Linux-PAM.
Explicações do Comando
sed -i '/skipping/d'
util/packer.c: Remove um aviso sem significado.
autoreconf -fiv: O
script de configuração fornecido com o pacote é muito antigo para
obter a sequência correta de caracteres de versão do Python 3.10 ou
posterior. Esse comando o regenera com uma versão mais recente do
autotools, que corrige o problema.
PYTHON=python3
: Isso força a instalação
de vínculos python para Python 3, mesmo se o Python 2 estiver
instalado.
--with-default-dict=/lib/cracklib/pw_dict
:
Esse parâmetro força a instalação do dicionário CrackLib na hierarquia /lib
.
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
install -v -m644 -D
...: Esse comando cria o diretório /usr/share/dict
(se já não existir) e instala a
lista compactada de palavras lá.
ln -v -s cracklib-words
/usr/share/dict/words: A lista de palavras está
vinculada a /usr/share/dict/words
como historicamente; words
é a lista
principal de palavras no diretório /usr/share/dict
. Omita esse comando se você já
tiver um arquivo /usr/share/dict/words
instalado em seu sistema.
echo $(hostname)
>>...: O valor de hostname é ecoado para um arquivo
chamado cracklib-extra-words
. Esse
arquivo extra destina-se a ser uma lista específica do sítio que
inclui senhas fáceis de adivinhar, como nomes de organizações
empresariais ou departamentos, nomes de usuários(as), nomes de
produtos, nomes de computadores, nomes de domínio, etc.
create-cracklib-dict
...: Esse comando cria o dicionário CrackLib a partir das listas de palavras.
Modifique o comando para adicionar quaisquer listas adicionais de
palavras que você tiver instalado.