POP IMAP サーバの調整 (POP/IMAP Server Modifications)

DRAC クライアント機能

 dracauth() クライアント機能はメールの利用者毎に POP サーバが独立して実行でいるように実装されます。コールされるのは利用者が認証に成功した時です。

 IMAP サーバでは POP サーバが利用者が毎回認証するのとは異なり、IMAP では接続を保ったまま動作をしています。その結果、DRAC サーバに対して中継許可を与えるためには、定期的に認証を行うような仕組みを設けなくてはいけません。マルチ・スレッドで動作するメールサーバであれば、より複雑なインターフェースを必要とします。これらのサーバに対しては、dracconn() クライアント機能を RPC コネクション時に認識させ、dracdisc() を切断時に与えるようにします。そうすることで、dracsend() クライアント関数が実際に送信する IP アドレスの特定を出来るような機能を実装できます。

 同一のサーバ内で DRAC が動作している場合、サーバのホスト名は "localhost" と認識します。ですが、ランタイムの調整によってパラメータを変更するほうが良いでしょう。

Qpopper の調整

 Qpopper 3.1 以降のバージョンではコンパイル時のオプションで DRAC 機能のサポートを行っています。configure 時のフラグは --with-drac です。詳しくは qpopper のドキュメントをご覧下さい。

 最近のバージョンでは良いニュースがあったと Steven Champeon 氏が伝えてくれました。

 ようやく qpopper 3.0.2 に於いて DRAC(Dynamic Relay Authorization Control)機能を実装する公式パッチを完成しました。パッケージに含まれ pop_bass.c と GNU autofigure.in ファイル、config.h などに反映されています。

 autoconf と、それがどのように動作するか(configure スクリプトを実行するために)確認したい場合はこのパッチをご覧下さい。

 autoconf を持っていない場合、あるいは autoconf で新しい configure スクリプトを作りたくない場合は、こちらのパッチをご利用下さい(既にリンクが切れていて利用出来ません。qpopper 4.x で drac の機能が標準サポートされたためだと思います)。

 実際にパッチをあてるためには次のようなコマンドを実行します。

tar xvzf qpopper3.0.2.tar.gz
cat patch-qpopper-3.0.2-drac | patch -p0
あるいは以下のようになります。
tar xvzf qpopper3.0.2.tar.gz
cat patch-qpopper-3.0.2-drac-no-configure | patch -p0
cd qpopper3.02
autoconf
出来れば、これらは基本パッケージに含まれることでバージョンアップする毎にパッチをあてなくてもよくなります。基本的に 2.52/pop_pass.c の変更の他は変わりありません。作業がより容易になるでしょう。

 Mike McHenry 氏は2つのパッチを提供されています。 UW IMAP 4.7c2 デーモンに対応するパッチを提供されました。もう1つは Qualcomm popper 3.0.1 デーモンに対するものです。いずれのパッチも /etc/mail/dracd.host ファイルへ /etc/mail/dracd.host ファイルのようにメールサーバが dracd で /etc/mail/dracd.host を認識できるように調整を行ったものです。

mail.minn.net

 dracd による全ての認証は mail.minn.net に送られます。/etc/mail/dracd.host に記入がなければ dracd の認証情報が送られることはありません。

 Mike 氏は以下の RPM パッケージと Redhat 6.0/6.1/6.2 向けのオリジナル SRPM を FTP サイトで提供されています。

 dracd-1.10 Redhat 6.x 向けにコンパイルされた dracd デーモン imap-4.7c2 dracd が利用できるよう UW IMAP デーモン向けパッチ qpopper-3.0.1 qpopper デーモンが dracd を利用できるようにするパッチ

 Qpopper 3.0 beta 36 においてはこのパッチが適用されています。configure 時に --enable-dracauth オプションを用いるようになります。もし libdrac.a が /usr/lib/drac にインストールされていない場合、 popper/Makefile 野中のライブラリのパスに関する2カ所を修正する必要があります。修正後 popper をコンパイルします。

 Patrik 氏は Qpopper 3 beta 18 のためのパッチを提供されました。

 Mike McHenry? 氏は qpopper v2.53 むけの、より包括的なパッチを作成されました。パッチを autoconf に適用することで、新しい configure フラグが使えます。--enable-dracauth です。DRAC の互換性のあるバージョンでパッチを適用し、./configure --enable-dracauth を実行した後、make します。彼のパッチは /usr/lib/drac にライブラリがセットアップされていることを前提としています。

 qpopper POP サーバのためにはオリジナルのサンプルパッチがあります。

 APOP を利用している場合、こちらのパッチも同様に適用できます。

Cucipop の調整

 James Renken 氏によって Cucipop POP3 サーバへのパッチが開発され、FTP サイトで公開されています。その他、Michael Kinney 氏により CuciPOP パッチが公開されています。

Cyrus の調整

 Ken Murchison 氏により cyrus IMAP・POP サーバで DRAC 機能を統合するように開発が進められました。cyrus-2.0.12 以上のバージョンで'contrib'ディレクトリに含まれています。cyrus-2.0.13 で使いたいときはこちらのパッチを使用します。cyrus-2.0.9 や 2.0.11 ではこちらのパッチをご利用下さい。

 cyrus IMAP・POP サーバのバージョン 2.0.7 向けのパッチはこちらからダウンロードできます。

 Adam Laurie 氏により cyrus 1.6.24 向けのパッチが提供されています。

 Forrest Aldrich 氏により cyrus 1.6.20 のパッチ1.6.19 のパッチが提供されています。彼のメモによると Makefile には手動で調整を加えないといけませんが、3行の調整を行うだけです。

DEFS = ... -DDRAC_AUTH
LIBS = ... -ldrac
LDFLAGS = ... -L/usr/local/src/drac
 Forrest Aldrich 氏により cyrus 1.5.19 のパッチが提供されています。

 cyrus IMAP POP サーバのバージョン 1.5.14 向けのパッチはこちらからダウンロードできます。

WU IMAP の調整

 Per Larsson 氏によりパッチが提供されています。

 John Lane 氏によって最近リリースされた UW IMAP v2004a に対応したパッチが提供されています。ファイルはこちらです。John 氏によっていくつかの機能が追加されています。

 Tomohiko Sugihara 氏によって UW IMAP 2002(リリース 2002年11月18日)対応のパッチを提供されています。Baba Buehler 氏のパッチが元になっています。パッチはこちらです。

 Baba Buehler 氏によって UW IMAP 2001a に対応したパッチが提供されています。クライアントが UW POP3 デーモンによって認証することができる全ての方法に対応しています。パッチはこちらです。

 Per Larsson 氏によって UW IMAP 2001a 向けの更新パッチが提供されました。パッチファイルはこちらです。注意点はコンパイル時に"EXTRACFLAGS=-DDRAC_AUTH" and "EXTRALDFLAGS=-ldrac"を指定することです。

 Dave Alden 氏によって UW IMAP 2001 向けのパッチが提供されています。パッチはこちらです。

 John Merriam 氏は Mike McHenry? 氏による WU IMAP 2000a の IMAP・POP サーバに対するパッチを更新しました。パッチファイルはこちらです。

 Pradeep Sanders 氏によって Mike McHenry? 氏による UW ipop3d の ipopd に対するパッチが更新されました。dracd が POP と IMAP による双方の認証に対応しています。パッチはこちらです。

 Mike McHenry? 氏により UW IMAP 4.7c2 デーモンで利用できるパッチが提供されました。パッチは /etc/mail/dracd.host ファイルによって認証するメールサーバを1行で記述できるようになります。/etc/mail/dracd.host の記述の仕方は次のようにします。

mail.minn.net
 dracd が認証をしたら mail.minn.net に情報を送ります。/etc/mail/dracd.host ファイルが無ければ認証情報は送信されません。

 Roberto Ullfig 氏によりワシントン大学(UW) IMAP サーバに対するオリジナルなパッチが提供されました。コンパイル時に用いるには

EXTRACFLAGS= -DDRAC_AUTH
こちらのフラグを Makefile に追加する必要があります。imapd が起動するとき、DRACHOST 変数に DRAC デーモンが動作するホスト名を入れる必要があります。

Teapop の調整

 Teapop POP server のメイン作者である ibrahim khalifa 氏により v0.28 に関する連絡がありました。Teapop は DRAC を正式サポートしていません。DRAC を有効にするときには設定時に --with-drac=DIR フラグを用いて、DRAC ライブラリがどこにあるか示す必要があります。

Courier-IMAP pop3 の設定

 Chris Cappuccio 氏によって Courier-IMAP はソースコードの改変をせずとも DRAC へ対応できるようになっています。POP3/IMAP サーバ毎に認証後、小さなプログラムを呼び出します。このプログラムが利用者の IP アドレスを環境変数から把握します。そして、DRAC ホストに対して送信許可を依頼します。

 Nikolas Hagelstein 氏により最近の IMAP に対応するよう修正を行うパッチを提供されています。

 Erich Schubert 氏により最近の courier-imap, courier-pop に対応した改良パッチを提供されています。drachost は configure 時の変数 DRACHOST で明示します。また、IPv6 でも動作を行うようビルドすることもできます。

 Ana Burrows 氏により Courier-IMAP pop3 デーモンに対応するパッチが提供されています。インストール方法や説明はファイルに含まれています。