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セッティング。

# vim /usr/local/etc/apache22/httpd.conf

以下を追記する。念のため、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

とりあえず、ここでapacheリブート

# /usr/local/etc/rc.d/apache22 restart

エラー出てないですよね?
出てたらhttpd.conf見直して下さい。

以下ごにょごにょ

/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分解、パスワードリセットの方法を調べてたりするのを横目で見てると、「パスワードを忘れたときの失うもの(時間・労力) >> アカウントを一緒にする危険性」な気がするんですよね、はい。
皆さん、パスワード管理どうしてまっかね?