理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

mod_auth_cookie (インストール編)

mod_auth_cookie は,クッキーによって Basic 認証を行うというステキモジュールです.

HTTP リクエストに Cookie ヘッダが設定されており,かつ指定したキーが入っていた場合,リクエストを受信した Apache は内部でその値を Authorization ヘッダに設定して Basic 認証を行えるようになります.mod_perl とか使えばすぐにできるのかもしれませんが...

セキュリティ的にどうなのって声もありそうですが,そもそも Base64 変換しかしない Basic 認証なんだから文句を言われるのは Basic 認証であるわけですし,気になるなら https 使えやってことにします.クッキーはファイルとしてローカルに残すとセキュリティ的にアウトだろとかあると思うんですけど,いろいろあるんだ気にするな!!!!


よし,まずはインストールだ!

インストール

少なくとも Ubuntuリポジトリには mod_auth_cookie はないようですし,deb ファイルもなさそうなので,自分でビルドすることにします.モジュールのビルドには apxs2 が必要っぽいので,まずは apxs2 が同梱されている apache2-threaded-dev をインストールします *1

$ sudo apt-get install apache2-threaded-dev

次にいよいよビルドに入ります.tar ボールを展開します.

$ wget http://opensource.weebly.com/mod_auth_cookie/mod_auth_cookie-0.1-apache2.tar.gz
$ tar xzvf mod_auth_cookie-0.1-apache2.tar.gz
$ cd mod_auth_cookie-0.1-apache2

Makefile を見ると,apxs2 ではなく apxs を使用しようとしているので,これを apxs2 に修正します.

$ diff -u Makefile.orig  Makefile
--- Makefile.orig       2008-12-20 23:53:10.000000000 +0900
+++ Makefile    2008-12-20 23:55:28.000000000 +0900
@@ -1,6 +1,4 @@
-APXS=apxs
-# location of apxs, if not in path
-#APXS=/usr/local/apache2/bin/apxs
+APXS=/usr/bin/apxs2
 
 SOURCES=mod_auth_cookie.c
 TARGETS=$(SOURCES:.c=.la)

後は make; make install するだけです.

$ make
$ sudo make install
/usr/bin/apxs2 -i mod_auth_cookie.la
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_auth_cookie.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp mod_auth_cookie.la /usr/lib/apache2/modules/
cp .libs/mod_auth_cookie.so /usr/lib/apache2/modules/mod_auth_cookie.so
cp .libs/mod_auth_cookie.lai /usr/lib/apache2/modules/mod_auth_cookie.la
PATH="$PATH:/sbin" ldconfig -n /usr/lib/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib/apache2/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 644 /usr/lib/apache2/modules/mod_auth_cookie.so

今日はここまで.

*1:Prefork MPM を使っている場合は apache2-prefork-dev にすべきだと重います