ローカルに存在しないアドレスの扱い


問題点

qmail-smtpdはローカルパートが存在するかどうかのチェックを行なわないので、 配送先が無いといったん受けとったあとで "no mailbox here by the name"のエラーが発生します。 そのエラーメールを不正中継のように悪用される可能性があります。

そこで~alias/.qmail-defaultで存在しないアドレスあてのものを受け、 エラーを発生させないようにすることが行なわれています。
しかし、そういったエラーメールが頻繁に発生するサイトでは、 その対応にかなりの労力がかかってしまうという問題が発生します。

対応策

特定のアドレスの受け取り拒否

卒業・退社・人事移動などによる抹消アカウントがエラーを発生させる場合や、 spamのenvelope fromにアドレスを騙られた場合などアカウントが限定できる場合は、 badrcptto patch( 1 2 )を使って smtpセション中に拒否をすることで受け取り後のエラー発生を防ぎます。

ローカル→ローカル

受け取り後に発生したエラーでも、 戻す先がローカルならそのまま戻しても問題はない(よそに迷惑がかからない)ので、 ローカルかどうかの判定をして、 ローカルならそのまま戻すようにします。

おまけ

qmail-spp用の badrcptto plugin

ソースを見ればわかりますが、 CONTROL/badrcpttoを読んで比べているだけの、なんかやる気のないプラグインです。 qmail-sppは仕様上、起動されるたびに、いちいち設定ファイルから読みこまないとなりません。 なので、プレーンテキストの設定ファイルを使うかぎり、読みながら比べるより早くはならないです。 たくさん設定が必要なようならcdbでも使うほうが良いと思います。
badrcpttoに書かれた文字数ぶん先頭から一致すればrejectします。


INDEX
Hiroshi Tsukamoto