maildrop 1.8 インストールメモ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− # 特徴 #--------------------------------------------------------------------------------------------- maildrop はメール配送指示言語を持ったメール配送エージェント(MDA) です。既存のメールエージェントと置き換えることができる他、.forward などから転送機能経由で実行することもできます。maildrop は主に次のモードで利用されます。 ● マニュアルモード - maildrop [.mailfilter へのファイルパス] .forward などのファイル中からmaildrop を利用する場合にはこのモードを利用します。指示された.mailfilter ファイルを読み込み、指示通りにメールを配送します。 ● 配送モード - maildrop -d [配送ユーザー(メールアドレス)] postfix などのMTA でメール配送エージェントとして利用する場合にこのモードを利用します。 # インストール方法 #--------------------------------------------------------------------------------------------- maildrop setuid 専用のユーザー/グループを作成します。専用のユーザーはホームディレクトリをなしとし、ログインする必要もないので、シェルを無効としてください。 # groupadd maildrop # useradd -g maildrop -d /dev/null -s /bin/false maildrop maildrop のソースをインターネットよりダウンロード後、ソースを解凍します。 # su root # cd /usr/local/src/ # wget maildrop-1.8.1.tar.bz2 # tar jxvf maildrop-1.8.1.tar.bz2 maildrop を解凍後、ディレクトリに入りインストール作業を行います。 # cd maildrop-1.8.1 # export CPPFLAGS=-I/usr/local/courier-authlib/include; \ export COURIERAUTHCONFIG=/usr/local/courier-authlib/bin/courierauthconfig; \ ./configure --prefix=/usr/local/maildrop --with-db=db \ --with-etcdir=/usr/local/maildrop/etc --enable-maildirquota --with-trashquota \ --enable-trusted-users=maildrop ※ configure について ※ export CPPFLAGS | courier-authlib のuserdb を認証対象とします export COURIERAUTHCONFIG | --with-db | バークレーDB のハッシュDB を作成します --enable-maildirquota | メールボックスごとのソフトQUOTA を有効にします --with-trashquota | 削除フラグ、ゴミ箱に入ったメール等もQUOTA 制限対象とします --with-etcdir | 標準の/etc の場所を変更します --enable-trusted-users | maildrop を実行できるユーザーを指定します | maildrop はtrusted-users 以外のユーザーからの実行を拒否します # make # make install # make install-strip # make install-man # 配送モードの詳細な動き #--------------------------------------------------------------------------------------------- 配送モードでは通常maildrop を限定したユーザーで実行します。限定したユーザーで実行されたmaildrop はsetuid ビットにより実行ユーザーをroot とし、-d にて指定された配送ユーザーに切り替わった後、配送ユーザーのメールボックスにメールを配送します。 -d で指示された配送ユーザーのUID、GID、並びにメールボックスの場所などは、コンパイル時にcourier-authlib を組み込まなかった場合は/etc/passwd から、組み込んだ場合はcourier-authlib で管理されるuserdb.dat を元に決定されます。 ※ 注意 ) userdb.dat は、courier-authlib インストール時の「--with-userdb」で指示された場所のuserdb.dat が読み込まれます。 maildrop を配送モードでかつ、courier-authlib 管理のuserdb により配送する際は次の点に注意します。 1. [maildrop ホーム]/bin/maildrop にsetuid ビットが立っていない場合 → 「signal 0x06」のエラーとなります 2. [courier-authlib ホーム]/var/spool/authdaemond ディレクトリの権限が755 でない場合 → 「Temporary authentication failure.」となります 3. userdb にログインID のエントリがない場合 → 「Temporary authentication failure.」となります 何れにしてもmaildrop の配送の際エラーとなる場合は次の方法でデバックします。 手順1. courier-authlib の設定ファイル(/usr/local/courier/etc/authlib/authdeemonrc) のうち、「DEBUG_LOGIN=2」とし、ログイン時認証手順をデバックする。デバック結果は/var/log/maillog に出力されます。 手順2. コマンドライン上で「/usr/local/maildrop/bin/maildrop -V 10 -d [配送ユーザー]」とし、配送モードでmaildrop を実行してみます。maildrop の問題であれば/var/log/maillog にはなにも出力されず、courier-authlib の問題であれば/var/log/maillog にエラー内容がデバック出力されます。 # ソフトクォータについて #--------------------------------------------------------------------------------------------- maildrop はMaildir 拡張仕様により自発的なメールボックスごとのソフトクォータに対応しています。ソフトクォーターを有効とする手順は下記の通りです。 手順1. コンパイル時に「--enable-maildirquota」を追加します。 # ./configure --enable-maildirquota 手順2. 次のように、Maildir に対してクォータを設定します。 # su root # /usr/local/maildrop/bin/maildirmake [ユーザーホーム]/Maildir # /usr/local/maildrop/bin/maildirmake -q [容量値(byte)] [ユーザーホーム]/Maildir # chmod [UID]:[GID] [ユーザーホーム]/Maildir/maildirsize ※ 注意 ) maildirmake はcourier-imap にも同様の名称のユーティリティーとしてインストールされます。こちらのmaildirmake は「-q」オプションが有効ではなく、ソフトクォータの設定を行う際はmaildrop 付属のmaildirmake ユーティリティーを使います。 また、maildrop がcourier-authlib のuserdb と連携している環境ではuserdb のquota 設定値が有効とはなりません。quota 設定値はあくまでMailbox に設定した値で制限されます。