qmailのqmail-smtpdは、ローカルにアカウントが存在しなくてもメールを受け取ってしまう。しかしながら、fromを偽装して送られるスパムのターゲットになってしまった場合は問題が起きるので、chkuserパッチを適応してみた。日本での適応事例がなかったのでメモを残しておく。
1通のメールから、これだけの処理が発生する。
- スパマーがFromを[email protected]に設定し、[email protected]へ配信した場合、エラーメールが[email protected]へ配信される。
- qmail-smtpdは[email protected]へ配送されたメールをlocal-queueに入れ、配信を試みるが存在しないからエラーメールを構築し、remote queueへ入れる。
- しかし、そのエラーメールの宛先は間違っているから配送できない。[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