特徴

特徴の概要

checkpasswordの認証方式の追加

オリジナルのcheckpasswordは平文認証しか扱いませんが、qmail-vidaで強化されたcheckpasswordは平文認証に加えてCRAM-MD5認証とAPOP認証に対応しています。なお、デフォルトでは平文認証を行なえないようになっています。環境変数ALLOWPLAINを設定することにより平文認証を許可するようになります。

checkpasswordのSMTP認証対応

qmail-vidaで追加されたqmail-smtpupから呼び出されることによりSMTP認証を行なうことが可能になります。認証に成功すると実行権限をqmaildに変えqmail-smtpdを呼び出し、通常のSMTPの処理を続けることになります。

qmail-smtpupプログラムの追加

POP3におけるqmail-popupと同じようにSMTPにおいてはqmail-smtpupというプログラムを用意しています。認証を行なうためにrootの権限で起動しなければなりませんが、qmail-smtpdから認証の応答の部分を分離させ、認証終了後にqmaildの権限に変えてからqmail-smtpdを起動できるようにしています。なお、他のSMTP認証パッケージは大抵qmail-smtpdの中で認証も含めて行なっているものが多いです。

通常は認証を行なわない場合でもメールの送信を受け付けます(当然、中継は出来ない)が、環境変数FORCEAUTHを設定すると認証なしにメールを送ることが出来なくなります。これはクライアントからの中継専用のサーバで送信の制限を厳しくするときに設定します。外部からメールを受け付けるサーバにはこの環境変数を絶対に設定してはいけません。

仮想メールボックス対応

システムにアカウントを持っていない仮想ユーザでもメールボックスを持つことができます。

バーチャルドメイン対応

IPアドレスベースおよびログインIDベースのバーチャルドメインの運用が簡単にできます。

パスワードデータベースにCDBを利用

パスワードデータベースにCDBを利用しているためアカウント数が多くても高速に認証を行うことができます。

D. J. Bernstein氏のライブラリを積極的に利用

D. J. Bernstein氏のライブラリを積極的に利用し、stdioやstdlibライブラリを原則として使用していません。そのため、バッファーオーバーフローやフォーマットバグなどの危険を回避できます。ただし、stdioのrename()だけは代わりになるものがないため使用しています。

実装していない機能

実装するかどうか未定の機能

認証ログの出力機能はありませんが、ucspi-tcp パッケージの recordio と daemontools パッケージの multilog を利用することにコマンドの応答を記録することが可能です。

PAM認証とSMTP/POP over SSL/TLSは現状では作者が理解していないので実装できません

実装する予定のない機能

現在、主要な MUA は SMTP 認証が可能です。そのため、POP before SMTP の必要性はもはや感じません。どうしても必要な方は Bruce Guenter 氏の relay-ctrl パッケージを併用して使ってください。作者も POP before SMTP から SMTP 認証への移行時にこのパッケージを利用していましたのでお勧めします。