courier-authlib 0.5 インストールメモ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− # 特徴 #--------------------------------------------------------------------------------------------- courier-authlib は従来courier-imap パッケージで採用されていた認証機構が独立したのもです。データベース、独自ユーザーDB、LDAP など、様々な認証情報を認証対象とできます。 # インストール方法 #--------------------------------------------------------------------------------------------- courier-authlib 専用のユーザー/グループを作成します。専用のユーザーはホームディレクトリをなしとし、ログインする必要もないので、シェルを無効としてください。 # groupadd authlib # useradd -g authlib -d /dev/null -s /bin/false authlib courier-authlib をインターネットよりダウンロード後、ソースを解凍します。 # su root # cd /usr/local/src/ # wget courier-authlib-0.59.1.tar.bz2 # tar jxvf courier-authlib-0.59.1.tar.bz2 courier-authlib を解凍後、ディレクトリに入りインストール作業を行います。 # cd /usr/local/src/courier-authlib-0.59.1 # ./configure --prefix=/usr/local/courier-authlib --with-mailuser=authlib \ --with-mailgroup=authlib --with-db=db --with-redhat \ --with-userdb=/usr/local/courier-authlib/etc/authlib/userdb ※ configure について ※ --with-mailuser | authlib の構成ファイルやソケットファイルのユーザー/グループを指定します --with-mailgroup | --with-userdb | aiuthlib 独自のユーザー情報を格納するディレクトリを指定します --with-db=db | makeuserdb コマンドによってバークレーDB 形式のCDB を作成するようにします # make # make install # make install-configure userdb を外部パッケージからの認証対象とする場合、下記の設定を行わないとエラーとなります。 # mkdir /usr/local/courier-authlib/etc/authlib/userdb # chmod 700 /usr/local/courier-authlib/etc/authlib/userdb courier-authlib は様々なパッケージにソケット経由で認証情報を提供します。逆に、様々なパッケージからソケット経由でアクセスできなければいけないため、下記のコマンドを実行します。 # cd /usr/local/courier-authlib/var/spool # chmod 755 authdaemon 起動スクリプトをソースツリーより所定の場所へとコピーします。 # cp ./courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib # chmod 755 /etc/rc.d/init.d/courier-authlib # 起動方法 #--------------------------------------------------------------------------------------------- 以上でcourier-authlib の設定が全て終わりました。起動スクリプトを実行することによりcourier-authlib が起動されます。 起動方法 : /etc/rc.d/init.d/courier-authlib start 停止方法 : /etc/rc.d/init.d/courier-authlib stop # 認証対象となる情報 #--------------------------------------------------------------------------------------------- authlib でどのような認証情報を扱うかは、authlib デーモン設定ファイル(/usr/local/courier/etc/authlib/authdaemonrc) の「authmodulelist」によって決められます。主な認証対象には、次のようなものがあります。 authpam 認証 | Linux システムのPAM(/etc/passwd ファイル) を認証対象とします authuserdb 認証 | courier-authlib 付属のuserdb による仮想ユーザーを認証対象とします authvchkpw 認証 | vpopmail 管理のユーザー情報を認証対象とします # 独自のユーザー管理 #--------------------------------------------------------------------------------------------- courier-authlib では、システムユーザーとは別に、独自で仮想ユーザーを作成して管理することができます。仮想ユーザー管理はuserdb ユーティリティーによって実現し、authuserdb 認証モジュールによって認証されます。また、仮想ユーザーは必ずシステムユーザーと対応しており、どの仮想ユーザーがどのシステムユーザーと対応しているかはuserdb によって管理されます。 例として、次の2つの仮想メールアドレスをuserdb ユーティリティーで管理します。 仮想ユーザー : test01@example01.jp 仮想ドメイン : example01.jp システムユーザー : mlmaster_example01 (UID:2000 GID:2000 HOME:/home/maild/mlmaster-example01) 仮想ユーザー : test01@example01.jp 仮想ドメイン : example02.jp システムユーザー : mlmaster_example02 (UID:2001 GID:2000 HOME:/home/maild/mlmaster-example02) 1. 仮想ユーザーのメールボックスを作成する # mkdir /home/maild/mlmaster-example01/test01 # mkdir /home/maild/mlmaster-example02/test01 # /usr/local/courier-authlib/bin/maildirmake /home/maild/mlmaster-example01/test01 # /usr/local/courier-authlib/bin/maildirmake /home/maild/mlmaster-example02/test02 # chown -R mlmaster-example01:2000 /home/maild/mlmaster-example01/test01 # chown -R mlmaster-example01:2000 /home/maild/mlmaster-example01/test02 2. 仮想ユーザーを登録する # /usr/local/courier-authlib/sbin/userdb mlmaster-example01/test01@example01.jp set home=/home/maild/mlmaster-example01/test01 uid=2000 gid=2000 # /usr/local/courier-authlib/sbin/userdb mlmaster-example02/test01@example02.jp set home=/home/maild/mlmaster-example02/test01 uid=2001 gid=2000 3. POP 用のパスワードを作成する # /usr/local/courier-authlib/sbin/userdbpw | /usr/local/courier-authlib/sbin/userdb mlmaster-example01/test01@example01.jp set pop3pw # /usr/local/courier-authlib/sbin/userdbpw | /usr/local/courier-authlib/sbin/userdb mlmaster-example02/test01@example02.jp set pop3pw 4. userdb をCDB 化する # /usr/local/courier-authlib/sbin/makeuserdb 上記設定にてauthuserdb 認証によって仮想ユーザーが作成されました。 ※ 注意 ) 「userdb mlmaster-example01/test01@example01.jp」としたのは、/usr/local/courier/etc/userdb 直下にmlmaster-example01 ユーザー専用のuserdb ファイル(mlmaster-example01) を作るためです。 userdb ユーティリティーにて作成したユーザー情報を用いてauthuserdb 認証を行う場合、仮想ユーザー名がログインID となります。上記例によると、test01@example01.jp、およびtest01@example02.jp がそれに相当します。