« Solaris10で起動サービスの制御 | メイン | spamassassinでスパムメール対策 »

apacheのベーシック認証をLDAP対応にする。

組織にLDAPサーバある場合はベーシック認証よりもLDAPサーバで認証したほうがよい。
redhat9にてapacheをLDAP対応にし,ベーシック認証をLDAPで行うことにした。
apacheをソースから入れる場合,バージョン2.2系列はうまくいかなかったので2.0系列で行った。
ちなみにRHEL3でもうまくいった。


1.db-4.5.20のインストール

まず初めにBerkeleyDBのインストールを行う。
これは,OpenLDAPのデータベースとして機能するので必要。

以下のサイトからダウンロードしましょう。
http://www.oracle.com/database/berkeley-db/index.html

今回は現時点で最新のBerkeleyDB-4.5.20を使うことにした。

# tar zxvf db-4.5.20.tar.gz -C /usr/local/src
# cd /usr/local/src/db-4.5.20/build_unix
# ../dist/configure --prefix=/usr/local/BerkeleyDB-4.5.20
# make
# make install

わかりやすくシンボリックリンクを作成しましょう。

# ln -s /usr/local/BerkeleyDB-4.5.20 /usr/local/bdb


2.OpenLDAPのインストール

以下のサイトからダウンロードしましょう。
http://www.openldap.org/

今回はopenldap-2.2.30を使いました。
これはLDAPサーバとして2.2系列を使っているので念のためバージョンを合わせておいた。

はじめにBerkeleyDBのインストール先を環境変数を設定して教えてあげます。

# export LDFLAGS="-L/usr/local/bdb/lib"
# export CPPFLAGS="-I/usr/local/bdb/include"
# export LD_LIBRARY_PATH=/usr/local/bdb/lib:$LD_LIBRARY_PATH

インストール作業の開始です。

# ./configure --prefix /usr/local/openldap-2.2.30 \
--enable-crypt --enable-ldbm --enable-wrappers --with-cyrus-sasl=no
# make depend
# make
# make install

わかりやすくシンボリックリンクを作成しましょう。

# ln -s /usr/local/openldap-2.2.30 /usr/local/openldap


3.apacheのインストール

apacheを以下のサイトからダウンロードしましょう。
http://httpd.apache.org/

# tar jxvf httpd-2.0.59.tar.bz2 -C /usr/local/src
# cd /usr/local/src/httpd-2.0.59

aprとapr-utilはapache添付のものを使います。

# cd srclib/apr
# ./configure --prefix=/usr/local/apr-httpd
# make
# make install

# cd ../apr-util
# ./configure --prefix=/usr/local/apr-util-httpd --with-apr=/usr/local/apr-httpd \
--with-ldap-include=/usr/local/openldap/include --with-ldap-lib=/usr/local/openldap/lib --with-ldap
# make
# make install

ようやくapacheのインストールです。

# cd /usr/local/src/httpd-2.0.59
# ./configure --prefix=/usr/local/apache-2.0.59 --enable-so --enable-ldap --enable-auth-ldap \
--with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd
# make
# make install

かわりやすくシンボリックリンクを作成しましょう。

# ln -s /usr/local/apache-2.0.59 /usr/local/apache2


以上でインストールが終了しました。
後は起動スクリプトを用意し,httpd.confなどコンフィグファイルを調整して起動。

httpd.confに以下のような記述をするとLDAPサーバで認証してくれます。

#-------------
# LDAP認証例
#-------------

AuthType Basic
AuthName "Secret Page"
AuthLDAPURL ldap://host.domain.com:389/ou=people,dc=domain,dc=com?uid
require valid-user
Order deny,allow
Deny from all
Allow from 192.168.0.0/255.255.255.0