- - PR -
cracklibでパスワード強度チェック
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-12-16 20:37
お世話になります。
#cd /usr/include #ln -s crack.h packer.h で./configure に --with-crack オプションをつけて通ったのですが、その後のmakeでエラーが出ました。。 やはりおっしゃるようにcracklibをソースからインストールするしたいと思います。 そこでclacklibのtar玉を捜したのですが、どうも見つかりません。tar玉の場合は crack5.0.tar.gz で良いのでしょうか。crack5.0の説明を見ていますと少し違うような。。 |
|
投稿日時: 2002-12-17 09:50
http://www.users.dircon.co.uk/~crypto/download/cracklib,2.7.tgz
これだと思いますが。googleで、cracklibで検索すると、2番目にでてくる リンクからたどれます。 |
|
投稿日時: 2002-12-17 09:55
いつもお世話になっております。大変たすかりました。早速インストールさせていただきます。
|
|
投稿日時: 2003-04-14 17:34
#cd /usr/local/lib
#mkdir pw_dict #mkdir /usr/dict/words #chmod 777 pw_dict #chmod 777 /usr/dict/words #cd /usr/local/src #tar xzvf cracklib,2.7.tar.gz #cd cracklib,2.7 #make all #make install ここまで行いまして、エラーは出ませんでした。 しかし、phpの./configureで --with-crack=/usr/local/lib/pw_dict を追加して実行しても、「そのようなファイルやディレクトリはありません」 と出ます。 間違いなく/usr/local/lib/pw_dictは存在しております。原因がわからなくて困っておりますので、ぜひともアドバイスのほうよろしくお願いしたいと思っております。 |
|
投稿日時: 2003-04-14 17:59
すいません。勘違いしておりました。。
#cd /usr/include #ln -s crack.h packer.h でコンパイルがとおりました。 しかし、crackibが有効になっていると思ったのですが、次のテストスクリプトを実行するとエラーが出ました。 <?php // CrackLib辞書をオープンする $dictionary = crack_opendict('/usr/local/lib/pw_dict') or die('Unable to open CrackLib dictionary'); // パスワードチェックを行う $check = crack_check($dictionary, 'gx9A2s0x'); // メッセージを取得する $diag = crack_getlastmessage(); echo $diag; // 'strong password' // 辞書を閉じる crack_closedict($dictionary); ?> 「ブラウザへ出力されたエラー↓」 Fatal error: Call to undefined function: crack_opendict() in /usr/local/apache/htdocs/test/cracklib.php on line 3 また、少し引っかかっていたのですが、インストールは成功したものの、/usr/local/lib/pw_dict/ を手動でmkdirしましたが、中に何も入っていません。これは正常なのでしょうか。。/usr/dict/words/ にも何も入っていません。 アドバイスのほどよろしくお願いいたします。 |
|
投稿日時: 2003-04-14 18:11
自己レスを重ねて申し訳ございません。。
ひょっとして、./configureのオプションを変えて実行した後、さらにmake、make install を行わなければならないのでしょうか。。念のためやってみましたら ・・・ ・・・ make[2]: 入ります ディレクトリ `/usr/local/src/php-4.2.2/ext/crack' make[3]: 入ります ディレクトリ `/usr/local/src/php-4.2.2/ext/crack' /bin/sh /usr/local/src/php-4.2.2/libtool --silent --mode=compile gcc -I. -I/usr /local/src/php-4.2.2/ext/crack -I/usr/local/src/php-4.2.2/main -I/usr/local/src/ php-4.2.2 -I/usr/local/apache/include -I/usr/local/src/php-4.2.2/Zend -I/usr/loc al/src/php-4.2.2/ext/mysql/libmysql -I/usr/local/pgsql//include -I/usr/local/src /php-4.2.2/ext/xml/expat -DLINUX=22 -DUSE_HSREGEX -DSHARED_CORE -I/usr/local/sr c/php-4.2.2/TSRM -g -O2 -prefer-pic -c crack.c crack.c: In function `_crack_open_dict': crack.c:68: `PWDICT' undeclared (first use in this function) crack.c:68: (Each undeclared identifier is reported only once crack.c:68: for each function it appears in.) crack.c:68: `pwdict' undeclared (first use in this function) crack.c: At top level: crack.c:91: parse error before '*' token crack.c: In function `_close_crack_dict': crack.c:93: `pwdict' undeclared (first use in this function) crack.c: In function `zif_crack_closedict': crack.c:168: `PWDICT' undeclared (first use in this function) crack.c:168: `pwdict' undeclared (first use in this function) crack.c:187: parse error before ')' token crack.c: In function `zif_crack_check': crack.c:202: `STRINGSIZE' undeclared (first use in this function) crack.c:204: `PWDICT' undeclared (first use in this function) crack.c:204: `pwdict' undeclared (first use in this function) crack.c:228: parse error before ')' token make[3]: *** [crack.lo] エラー 1 make[3]: 出ます ディレクトリ `/usr/local/src/php-4.2.2/ext/crack' make[2]: *** [all-recursive] エラー 1 make[2]: 出ます ディレクトリ `/usr/local/src/php-4.2.2/ext/crack' make[1]: *** [all-recursive] エラー 1 make[1]: 出ます ディレクトリ `/usr/local/src/php-4.2.2/ext' make: *** [all-recursive] エラー 1 と出て終わりました。正常ではないと思います。 確かにcracklibのREADMEのstep1に変数を宣言しろ。。みたいなものがかかれていましたがどうも解読できませんでした。やはりこれが原因なのでしょうか。。 |
|
投稿日時: 2003-04-14 21:04
REDHATの提供してる、cracklib.rpmがどうやって作られたのか全く分からんのですが、
ln -s /usr/include/crack.h /usr/include/packer.h では駄目ですね。もとのcracklibに含まれるpacker.hと、REDHATのRPMに含まれるcrack.h は違うものみたいです。 で、とりあえず、素のcracklibとPHP4.3.1で試してみました。 普通にコンパイルできて、普通に使えましたよ。 tar zxf cracklib,2.7.tar.gz cd cracklib,2.7 vi Makefile ---以下のように書き換える DICTPATH="/usr/lib/crack_dict" make all cp cracklib/libcrack.a /usr/local/lib cp cracklib/packer.h /usr/local/include chmod 644 /usr/lib/libcrack.a chmod 644 /usr/local/include/packer.h cd .. tar jxf php-4.3.1.tar.bz2 cd php-4.3.1 ./configure --with-crack=/usr/local make install /usr/local/bin/php test.php (test.phpはokumura氏が以前に投稿したやつをそのまま流用) ----以下出力内容 Content-type: text/html X-Powered-By: PHP/4.3.1 strong password |
|
投稿日時: 2003-04-15 09:09
お世話になっております。本当にお世話になっております(しつこいですね)。このレスは保存版でTEXTコピーを取っておきます。
おっしゃるようにやると本当にうまくいきました。感謝しております。ただ、 chmod 644 /usr/lib/libcrack.a は chmod 644 /usr/local/lib/libcrack.a の間違いだろうと決め付けて進めましたが間違ってないでしょうか。 今後ともよろしくお願いいたします。 |