pwauth, mod_auth_external, mod_auth_pam, mod_authnz_external、そしてapache2.2
やっぱり両者(両社)とも連絡が来ないので、鯖弄り。
mod_auth_pamとか使って、ログインアカウントと認証ページのアカウントを統一したいなーとか思ってやってみた。
ら、はまった。
私とid:Hossyの4時間返せ。だっちゃわっちゃアニメをまだ一話も観てないのに。ガッデーム。
とりあえず、元々Linuxから持ってこられたものだから、portsから入れただけじゃきちんと動いてくれないみたい。
とりあえず、さくさくっとインストール
# cd /usr/ports/www/mod_authnz_external
# make install
# make clean
# cd /usr/ports/security/pwauth
# make install
# make clean
以上、mod_authnz_externalとpwauthのインストール完了。
お次はapacheセッティング。
以下を追記する。念のため、LoadModuleがだらだら書いてある一番先頭に記述して下さい。
LoadModule authnz_external_module libexec/apache22/mod_authnz_external.so
以下は適当な所に追記。
AddExternalAuth pwauth /usr/local/libexec/pwauth SetExternalAuthMethod pwauth pipe
さらに準備は続く。
# cd /etc/pam.d/
# ls
この時点でpwauthという名前のファイルは無いですよね?
では、以下の内容でpwauthファイルを作成
auth required pam_unix.so account required pam_unix.so
以下ごにょごにょ
/local/binにあるpwauthバイナリを/libexecにコピーします。
# cp /usr/local/bin/pwauth /usr/local/libexec
次に、pwauthにsuidビットを設定します。
# chmod u+s pwauth
一応これで完了
動作確認。
適当なディレクトリ掘って、動作確認して下さい。
動作確認用.htaccess
AuthType Basic AuthName Your-Site-Name AuthBasicProvider external AuthExternal pwauth require valid-user
これで、全てのユーザアカウント、どのアカウントでも入れるようになるはず。。。です。
以下愚痴。
mod_auth_external2はapache2.0用のモジュールらしく、make自体通らない。
んで、mod_auth_pam2は挙動がおかしい(mod_auth_pam2をid:Hossyにデバッグして貰ったりなんかしてもらっていたけど、ね)。
mod_auth_external3.1がapache2.2用のモジュールらしいけど、portsに入ってないものは。。。と思っていたら"mod_authnz_external"とかいう名前で入っていた。ガッデム。
それで、mod_authnz_external入れてみたけどやっぱり動かない。
suidビット立てなきゃ、という話もあったので立ててみたけど、やっぱり動かない。
で、linux的記事見てたら「/libexec以下にmakeし終わったpwathバイナリ置いてね(はぁと」ってあったのでまさかと思って置いてみたら動いた。
ウッウー。
ところで
id:kidminに「ユーザアカウントとウェブアカウント一緒にするなんてこんわー☆」って言われたけど、やっぱり怖いんですかねぇ。
最近鯖の前に座ってから「・・・さて、パスワードは何だっけな」と考えるのに数秒、tryするのに4回5回と酷い状態の私。
「同じアカウントに対して違うパスワード(sshのパスワードとwebから認証用のパスワード)」を一緒にしたくないのです。あうあう。
某氏が「thinkpadのパスワード忘れたぁぁぁ!」と叫びながら(普段指紋認証)thinkpad分解、パスワードリセットの方法を調べてたりするのを横目で見てると、「パスワードを忘れたときの失うもの(時間・労力) >> アカウントを一緒にする危険性」な気がするんですよね、はい。
皆さん、パスワード管理どうしてまっかね?