qmail+vpopmailで存在しないアカウントをSMTPで拒否する方法

qmail
WS0708 500x365 qmail+vpopmailで存在しないアカウントをSMTPで拒否する方法

qmailのqmail-smtpdは、ローカルにアカウントが存在しなくてもメールを受け取ってしまう。しかしながら、fromを偽装して送られるスパムのターゲットになってしまった場合は問題が起きるので、chkuserパッチを適応してみた。日本での適応事例がなかったのでメモを残しておく。

1通のメールから、これだけの処理が発生する。

  1. スパマーがFromを[email protected]に設定し、[email protected]へ配信した場合、エラーメールが[email protected]へ配信される。
  2. qmail-smtpdは[email protected]へ配送されたメールをlocal-queueに入れ、配信を試みるが存在しないからエラーメールを構築し、remote queueへ入れる。
  3. しかし、そのエラーメールの宛先は間違っているから配送できない。[email protected]へメールが送信されて終了

この処理を最小限にするためには(2)の段階で、qmail-smtpdがローカルに存在するメールアカウントをチェックしてrejectするのがベスト。これを実行するのがchkuserパッチ。

qmail周りのインストール方法をまとめると以下のようになる。パッチを適用の順番は重要です。

 
$ tar zxvf qmail-1.03.tar.gz
$ cd qmail-1.03
$ patch < ../qmail-103.patch
$ patch < ../qmail-date-localtime.patch
$ patch < ../qmail-glibc.patch
$ patch < ../qmail-smtpd-relay-reject
$ patch < ../qmail-0.0.0.0.patch
$ cd ..
$ tar xzvf qmail-smtpd-auth-0.31.tar.gz
$ cd qmail-1.03
$ cp ../qmail-smtpd-auth-0.31/*.* ./
$ patch < auth.patch
$ patch -p1 < ../chkuser-2.0.9-release.patch
(qmail-smtpd-authのパッチとコンフリクトするので、適宜目で見て修正する。)
# make setup
2010-05-20 15:46:27.267796500 CHKUSER rejected rcpt: from <derekdymond @learndirect.net::> remote <abts -North-Dynamic-085.59.163.122.airtelbroadband.in:unknown:122.163.59.85> rcpt <dolce @mydomain.jp> : not existing recipient
2010-05-20 15:46:28.956170500 CHKUSER rejected rcpt: from <holte @vazda.com::> remote <abts -North-Dynamic-085.59.163.122.airtelbroadband.in:unknown:122.163.59.85> rcpt <dolce @mydomain.jp> : not existing recipient

Comments

タイトルとURLをコピーしました