CrackLib-2.9.8

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]

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]

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.

Conteúdo

Aplicativos Instalados: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker e create-cracklib-dict
Bibliotecas Instaladas: libcrack.so e o _cracklib.so (módulo Python)
Diretórios Instalados: /lib/cracklib, /usr/share/dict e /usr/share/cracklib

Descrições Curtas

cracklib-check

é usado para determinar se uma senha é forte

cracklib-format

é usado para formatar arquivos de texto (minuscula todas as palavras, remove caracteres de controle e ordena as listas)

cracklib-packer

cria uma base de dados com palavras lidas a partir da entrada gerada padrão

cracklib-unpacker

exibe na saída gerada padrão a base de dados especificada

create-cracklib-dict

é usado para criar o dicionário CrackLib a partir da(s) lista(s) fornecida(s) de palavras

libcrack.so

fornece um método rápido de pesquisa de dicionário para imposição de senha forte