既存のLDAPサーバーを使用するための Perditionプロキシソフトウェアの構成 Richard L. Holbert 2003 年5 月15 日 はじめに Perdition プロキシサーバーソフトウェアは、高可用性電子メールシステムの一部として Simon Horman が開発したもの です。ISP が、エンドユーザーのメールボックスを複数のサーバーにシームレスに分散することができます。エンドユー ザーは、このプロキシサーバーを通じて、POP や IMAP によって自分の電子メールを取り出します。gdbm、NIS、正規 表現、リレーショナルデータベース(MySQL、PostgreSQL) 、LDAPなどの多種多様な方法で、ユーザーのリダイレクト 情報を格納することができます。 Perdition のメインWebサイトはhttp://www.vergenet.net/linux/perdition/です。 筆者の電子メールアドレスはhorms@verge.net.au です。 また、Perdition を使用するためには、VAnessa(VA Network Enhanced Scalable Server Architecture)ライブラリもイ ンストールする必要があります。VAnessaのWebサイトはhttp://www.vergenet。net/linux/vanessa/にあります。私は、 両方のツールセットを ftp.vergenet.net からダウンロードし、Redhat Package Manager(RPM)を使用して Linux ワーク ステーションにインストールしました。業務用の環境では、一連の専用サーバーに Perdition と VAnessa をインストール しておかなければなりません。 Perdition には、空の OpenLDAP サーバーにデフォルトスキーマの perditiondb̲ldap̲makedb を格納するためのツールが 付属しています。ただし、私の場合は、格納された情報を保持するためのインフラストラクチャとともに既にいくつか のiPlanet LDAP サーバーが入っていたので、既存サーバーのスキーマを使用できるようにPerdition を調整することにし ました。 LDAPのURL Perdition は、専用に構成されたURLによってLDAPから情報を取り出します。 1 LDAP の URL は、RFC 2255(http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2255.html) 、 お よ び iPlanet Directory Server Administrator's Guide(付録 C) (http://docs.iplanet.com/docs/manuals/directory/51/html/ag/url.htm#1915312)に記載さ れています。 LDAP の URLは次の形式になっています。 ldap[s]://hostname[:port]/search_base?attributes?scope?filter[?extension[,extension]] 平文接続は ldap://プロトコルによって行い、暗号化(SSL)接続はldaps://プロトコルによって行います。 LDAP の URLの構成要素 構成要素 定義 hostname サーバー名または数値IPアドレス。例えば、ldap.mydomain.eduや10.10.220.90など port LDAPサービスのポート番号。例えば389、またはセキュア(ldaps)プロトコルを使用する 場合の636。空白にすると、ldapの場合はデフォルトで389、ldapsの場合はデフォルトで 636になる search̲base Perditionに検索の開始場所を伝えるエントリの識別名(DN) attributes 返されるLDAPフィールドの名前。空白にすると、すべての可視属性が返される。標準POP3 およびIMAP4ポートを使用する場合、port属性はオプション scope base、one、subのいずれかから成る。テスト済みのすべてのスキーマに関する限り、 Perditionはoneやsubでは正常に機能するようだが、baseでは機能しない filter 検索範囲内で使用する基準。例えば(uid=%25s)。%25sの部分は、ユーザーの電子メール クライアントが指定するuseridに置き換わる extension LDAP拡張。現在サポートされているのは、BINDNAMEおよびX-BINDPW拡張のみ(LDAP データの要求前に名前とパスワードにバインドする場合)。複数の拡張をコンマで区切ること もできる。必須の拡張には接頭辞として!を付ける。cn=Managerをパスワードsecretにバイ ンドする場合は、!BINDNAME=cn=Manager,!X-BINDPW=secretを使用する 構成 推奨する構成方法は、/etc/perdition/perdition.conf ファイルを変更することです。LDAP を使用するように Perdition を 構成するには、次の行を追加します。 M /usr/lib/libperditiondb_ldap.so mldap://hostname.mydomain.com:port/ou=mailbox,dc=mydomain.com,dc=com?username,mailhost,port?one?(uid=%25s) 各自のサーバーの名前、ldapポート、search̲base などに置き換えてください。 上記の -M と -m の値をプロキシのコマンドラインに追加して、perdition の起動スクリプトを修正する方法もあります。 2 簡易テスト Netscape、Konqueror、Mozilla などの Web ブラウザを、GQ などの GUI LDAP ツールと併用すると、LDAP クエリを導 出してテストできます。 この仮想iplanet-ldapサーバーでは、iPlanet のメッセージングサーバースキーマを使用します。 次に示すのは、iplanet-ldapのツリー構造の画面です。 ただし、directoryserver4 と directoryserver5 では修正した eduPerson スキーマを使用します。その結果、検索ベースが 異なります。 次に示すのは、directoryserver5のツリー構造の画面です。 3 directoryserver5のアクセス制御を修正して、匿名バインドからmailhost属性が見えるようにする必要があります。 LDAP クエリの例とその結果をいくつか示します。 ldap://iplanet-ldap.mydomain.edu:389/ou=people,o=mydomain.edu,o=internet?uid,mailhost?one?(uid=smith.13) dn: uid=smith.13,ou=People、o=mydomain.edu、o=internet uid: smith.13 mailhost: mail2.service.mydomain.edu ldap://directoryserver5.service.mydomain.edu:20389/ou=people,dc=osu,dc=edu?uid,mailhost,port?one?(uid=jones.6) dn: mydomainEduID=397427、ou=People、dc=mydomain、dc=edu uid: jones.6 mailhost: mail1.service.mydomain.edu 検索ベース dn の順序が、ツリーの最下部から始まって最上部に向かうようになっている点に注意してください。また、 この例では directoryserver5で非標準ポート20389 をLDAPに使用している点にも注意が必要です。 拡張 LDAP の基本 URLを 2通りの方法で拡張できます。 4 LDAP サーバーで標準ポートを使用している場合は、LDAP の URL で複数のサーバーを使用できます。例えば次のよう にします。 ldap://ldap1 ldap2 ldap3/ou=people,o=mydomain.edu,o=internet?uid,mailhost,port?one?(uid=smith.13) これまでの例では、必ず匿名バインドを使用して LDAP サーバーに接続していました。bindname および x-bindpw 属性 を次のように使用すると、LDAPのURLを拡張できます。 ldap://ldap1:389/ou=people,o=mydomain.edu,o=internet?uid,mailhost,port?one?(uid=smith.13)?! bindname=cn=admin,x-bindpw=secret または ldaps://secure-ldap:636/ou=people,o=mydomain.edu,o=internet?uid,mailhost?one?(uid=smith.13)?! bindname=cn=super%20admin,x-bindpw=bigsecret テスト elnet、および構成を変更した電子メールクライアントを使用していくつかのテストを行いました。localhost で動作して いる Perdition プロキシで電子メールクライアントをポイントすると、既存のどのメールサーバーからでもメールを取り 出せました。LDAP で mailhost 属性の値を変更すると、取り出した要求をプロキシが適切なメールサーバーにリダイレ クトしました。 5
© Copyright 2024 Paperzz