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

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

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

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

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

この処理を最小限にするためには(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


matsubokkuri

Please feel free to contact me via e-mail, twitter and facebook!

あわせて読みたい

コメントを残す