Hello Guest    ログイン
top > Linux > Apache > ApacheでPAM認証をする

ApacheでPAM認証をする

カテゴリー: Apache| 公開: 2008/11/21 | コメント(0)

PAMを使って、UNIXパスワードをApacheの認証に使うための設定。以下のものが必要。

  • Mod_Authnz_External - ユーザ名とパスワードを他のプログラムに渡して認証するためのモジュール
  • pwauth - ユーザ名とパスワードを受け取ってPAM認証をする

Mod_Authnz_Externalのインストール

パッケージがあったので、aptでインストールする。

# apt-get install libapache2-mod-authnz-external

モジュールを有効にする。

# a2enmod authnz_external

pwauthのインストール

ビルドするのに libpam0g-dev が必要。

# apt-get install libpam0g-dev

http://www.unixpapa.com/pwauth/ からダウンロードして展開。

$ wget http://www.unixpapa.com/software/pwauth-2.3.6.tar.gz
$ tar zxvf pwauth-2.3.6.tar.gz
$ cd pwauth-2.3.6/

config.hの修正。

$ vi config.h

コメントアウトしてSHADOW_SUNを無効にする。

/* #define SHADOW_SUN       /* Linux, Solaris, IRIX */

PAMを有効にする。

#define PAM          /* Linux PAM or OpenPAM*/

SERVER_UIDSをApacheが動作するユーザのuidにする。

#define SERVER_UIDS 33

認証可能とする最小のuidの指定。(どのユーザで認証するかによって変更する必要あり)

#define MIN_UNIX_UID 5000

Makefileの修正。

$ vi Makefile

# Settings for author's system (Redhat 6.1)
CC=gcc
#LIB= -lcrypt           <- コメントアウト
LOCALFLAGS= -g

# For PAM on Redhat Linux
LIB=-lpam -ldl         <- 有効にする

ビルドしてpwauthをコピーする。

$ make
$ sudo mkdir /usr/local/libexec
$ sudo cp pwauth /usr/local/libexec/
$ sudo chmod u+s /usr/local/libexec/pwauth

Apacheの設定

Mod_Authnz_Externalで外部プログラムとしてpwauthを使うように、httpd.confに追加する。

AddExternalAuth pwauth /usr/local/libexec/pwauth
SetExternalAuthMethod pwauth pipe

認証をするディレクトリで.htaccessで設定する。
全ユーザを認証の対象にする場合。

$ vi .htaccess

AuthType Basic
AuthName "authentication"
AuthBasicProvider external
AuthExternal pwauth
require valid-user

認証できるユーザをusername1とusername2だけにする場合は最後の1行を変更する。

require user username1 username2

トラックバックURL

コメント送信

メールアドレスが公開されたり他で使用されたりすることはありません。