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

qmailのqmail-smtpdは、ローカルにアカウントが存在しなくてもメールを受け取ってしまう。しかしながら、fromを偽装して送られるスパムのターゲットになってしまった場合は問題が起きるので、chkuserパッチを適応してみた。日本での適応事例がなかったのでメモを残しておく。
1通のメールから、これだけの処理が発生する。
- スパマーがFromをnon-existed@mydomain.jpに設定し、non-existed@targetdomain.jpへ配信した場合、エラーメールがnon-existed@mydomain.jpへ配信される。
- qmail-smtpdはnon-existed@mydomain.jpへ配送されたメールをlocal-queueに入れ、配信を試みるが存在しないからエラーメールを構築し、remote queueへ入れる。
- しかし、そのエラーメールの宛先は間違っているから配送できない。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 setup2010-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 recipient2010-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 qmail+vpopmailで存在しないアカウントをSMTPで拒否する方法
https://blog.teraren.com/posts/qmail-vpopmail-reject-unknown-accoun/