CrackLib の概要
CrackLib
パッケージは、強力なパスワードを実現するライブラリを提供します。 ユーザーが選び出したパスワードは、あらかじめ登録されている語句リスト
(word list) との比較が行われます。
注記
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
パッケージ情報
追加のダウンロード
英語圏ユーザーに対して推奨される語句リスト (word list)
上以外にも追加の用語リストがあって、例えば https://wiki.skullsecurity.org/index.php/Passwords
などからダウンロードすることができます。 CrackLib
では、語句リストの大小を問わず、望みのものを選んでインストールすることができます。
重要
各ユーザーがパスワードを決める際には、自国語のごく普通の単語を選びがちです。 このことはクラッカーも承知しています。
CrackLib
はそのような不適切なパスワードを受け付けません。 CrackLib
にて利用する語句リストは、パスワードとして用いそうな単語ベースでの語句の組み合わせを余すことなく収容するものでなければなりません。
上の語句リストは、デフォルトの語句リストとしてダウンロードし利用することが推奨されています。
英語圏ユーザーなら、これを利用すれば十分です。
他のユーザーの場合は、追加の語句リストをダウンロードするか新規に生成するかして利用することが必要です。
Note that word lists suitable for spell-checking are not usable
as CrackLib word lists in
countries with non-Latin based alphabets, because of 「word-based keystroke
combinations」 that make bad passwords.
CrackLib のインストール
以下のコマンドを実行して CrackLib をビルドします。
autoreconf -fiv &&
PYTHON=python3 \
./configure --prefix=/usr \
--disable-static \
--with-default-dict=/usr/lib/cracklib/pw_dict &&
make
root
ユーザーになって以下を実行します。
make install
root
ユーザーになって以下のコマンドを実行します。
これにより、推奨されている語句リストをインストールし CrackLib の辞書情報を生成します。
これ以外の語句リストでも、テキストベースであり、一語につき一行のものであれば利用することができます。 利用する場合は、そのファイルを
/usr/share/dict
にインストールし create-cracklib-dict
コマンドを使ってそのファイルの追加登録を行います。
install -v -m644 -D ../cracklib-words-2.9.11.xz \
/usr/share/dict/cracklib-words.xz &&
unxz -v /usr/share/dict/cracklib-words.xz &&
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
必要なら以下のコマンドを実行して、一般ユーザーであってもライブラリの動作が正しく行われるかをチェックします。
make test
重要
LFS を構築することで Shadow
パッケージがインストールされているので、その後に CrackLib をインストールしたら、Shadow-4.14.2
を再インストールしてください。 これを行わないと強力なパスワードを実現することはできません。 今から Linux-PAM-1.5.3
パッケージをインストールしようとしている場合は、上の説明は無視して Linux-PAM をインストールした後に Shadow をインストールしてください。
コマンド説明
autoreconf -fiv: The
configure script shipped with the package is too old to get the
right version string of Python 3.10 or later. This command
regenerates it with a more recent version of autotools, which fixes
the issue.
PYTHON=python3
: This forces the
installation of python bindings for Python 3, even if Python 2 is
installed.
--with-default-dict=/usr/lib/cracklib/pw_dict
:
このパラメーターは CrackLib の辞書情報を
/lib
ディレクトリ配下にインストールすることを指示します。
--disable-static
:
このスイッチはスタティックライブラリをインストールしないようにします。
install -v -m644 -D
...: This command creates the /usr/share/dict
directory (if it doesn't already
exist) and installs the compressed word list there.
ln -v -s cracklib-words
/usr/share/dict/words: The word list is linked to
/usr/share/dict/words
as
historically, words
is the primary
word list in the /usr/share/dict
directory. Omit this command if you already have a /usr/share/dict/words
file installed on your
system.
echo $(hostname)
>>...: The value of hostname is echoed to a file
called cracklib-extra-words
. This
extra file is intended to be a site specific list which includes
easy to guess passwords such as company or department names, user
names, product names, computer names, domain names, etc.
create-cracklib-dict
...: このコマンドは語句リスト (word list) から CrackLib の辞書情報を生成します。
語句リストを追加インストールしたい場合は、このコマンドを修正してください。