dracauth() クライアント機能はメールの利用者毎に POP サーバが独立して実行でいるように実装されます。コールされるのは利用者が認証に成功した時です。
IMAP サーバでは POP サーバが利用者が毎回認証するのとは異なり、IMAP では接続を保ったまま動作をしています。その結果、DRAC サーバに対して中継許可を与えるためには、定期的に認証を行うような仕組みを設けなくてはいけません。マルチ・スレッドで動作するメールサーバであれば、より複雑なインターフェースを必要とします。これらのサーバに対しては、dracconn() クライアント機能を RPC コネクション時に認識させ、dracdisc() を切断時に与えるようにします。そうすることで、dracsend() クライアント関数が実際に送信する IP アドレスの特定を出来るような機能を実装できます。
同一のサーバ内で DRAC が動作している場合、サーバのホスト名は "localhost" と認識します。ですが、ランタイムの調整によってパラメータを変更するほうが良いでしょう。
最近のバージョンでは良いニュースがあったと 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 を利用している場合、こちらのパッチも同様に適用できます。
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/dracForrest Aldrich 氏により cyrus 1.5.19 のパッチが提供されています。
cyrus IMAP POP サーバのバージョン 1.5.14 向けのパッチはこちらからダウンロードできます。
John Lane 氏によって最近リリースされた UW IMAP v2004a に対応したパッチが提供されています。ファイルはこちらです。John 氏によっていくつかの機能が追加されています。
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.netdracd が認証をしたら mail.minn.net に情報を送ります。/etc/mail/dracd.host ファイルが無ければ認証情報は送信されません。
Roberto Ullfig 氏によりワシントン大学(UW) IMAP サーバに対するオリジナルなパッチが提供されました。コンパイル時に用いるには
EXTRACFLAGS= -DDRAC_AUTHこちらのフラグを Makefile に追加する必要があります。imapd が起動するとき、DRACHOST 変数に DRAC デーモンが動作するホスト名を入れる必要があります。
Nikolas Hagelstein 氏により最近の IMAP に対応するよう修正を行うパッチを提供されています。
Erich Schubert 氏により最近の courier-imap, courier-pop に対応した改良パッチを提供されています。drachost は configure 時の変数 DRACHOST で明示します。また、IPv6 でも動作を行うようビルドすることもできます。
Ana Burrows 氏により Courier-IMAP pop3 デーモンに対応するパッチが提供されています。インストール方法や説明はファイルに含まれています。