メールサーバ管理者にとって、SAPMは常に頭痛のタネだが逃げるわけにはいかない。今回紹介する方法を使って、メールサーバをSPAMから守ろう。
気持ちよく寝つけたと思ったら、突然の着信音。何かと思って携帯電話を手に取ると「subject: 女性が大好きな男性なら……」。新しい携帯電話を手にした途端に送られてくる迷惑メールには、皆さんも少なからずいら立ちを感じていると思います。しかも、メールの受信が無料ならまだしも、受信者負担では憤りを禁じ得ません。
SPAMは送り付けられた方は当然として、中継したホストにも甚大な被害を及ぼします。ホストを管理されている方(または管理を任される予定の方)には、サーバのリソース面でも、中継を許してしまったことに対する信用失墜の面でも大きな責任が課せられます。残念ながらSPAM対策は「いたちごっこ」であるため、一度は防げても次も防げるという保証はありません。それでも、インターネット上にメールサーバを置いた瞬間から、管理者である皆さんには不正中継を防ぐ任務が課せられています。完全ではないまでも、最低限の防御策を講じられるように順を追って見ていきましょう。
前回までで、皆さんのqmailにはtcpserverというよろいとPOP Before SMTP(またはIMAP Before SMTP)という盾が備わっているはずです。もし、まだ生まれたままのqmailを使用しているという方は、本連載の第1、2回を参照ください。
しかし、この強力な防具にもまだ改善すべきすきがあります。まず、SPAMにはWebページやメーリングリストで公開されたアドレスを基にしているものもありますが、sales@XXXXやwwwadmin@XXXXなど、存在するであろうと推測し得るアドレスに対してでたらめに送信してくるものもあります。デフォルトのqmailは、こうしたでたらめなアドレスを受け付けてしまいます。
/var/qmail/alias/に移動し「.」(ドット)ファイルも含めてファイルの一覧を見てみましょう。
# cd /var/qmail/alias/ |
.qmail-postmasterはpostmaster@XXXXあて、.qmail-rootはroot@XXXXあての受け取り先を指定します。同様に、ほかのファイルも.qmail-○○なら○○に対する受け取り先を指定します。
この中で特殊なのが.qmail-defaultです。このファイルは、ローカルアドレスに送られてきた行き先不明のメールのあて先を指定します。本来はcatch-allアカウントとして、ミスタイプによるアドレスの間違いやメールアドレスの変更に伴う旧メールアドレスへの対応として使われるものでしたが、いまではSPAMのえじきです。もしcatch-allアカウントを利用しないのであれば、.qmail-defaultファイルは削除しておきましょう。
大量のメール以上にたちが悪いのが、巨大なサイズのメールを送り付けられた場合です。これも設定で回避できます。/var/qmail/controlディレクトリにdatabytesファイルを作成し、受信メールサイズの上限を指定します。無制限にする場合は「0」と記述しておきます。上限を5Mbytes(5×1024×1024bytes)にする場合は、下記のようにします。
# echo "5242880" > /var/qmail/control/databytes |
注意が必要なのは、上記の制限は1メール当たりのサイズに対してであるということです。総受信量で制限を掛けたい場合、つまりサイズが小さなメールが1万通届くような事態を防ぎたい場合には機能しないため、別の対応策が必要になります。
tcpserverを使えば送信元ごとに受信メールの容量制限を掛けることも可能です。192.168.0.0/24ネットワークからのメールだけに上限1Mbytesの制限を設けるには、/etc/tcp.smtpに
192.168.0.:allow,RELAYCLIENT="",DATABYTES="1048576" |
のような行を追加し、以下のようにしてcdbファイルを作り直します。
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb
/etc/tcp.smtp.tmp < /etc/tcp.smtp |
前回の記事のとおりにPOP Before SMTPをインストールしている場合は、/var/qmail/relay-ctrl/tcp.smtpを編集します。cdbファイルを作り直す必要はありません。
同じ差出人から何度も送られてくるメールに対しては、/var/qmail/control/badmailfromを利用します。このファイルに受け取りたくない差出人のメールアドレスを記述します。ドメインを指定すれば、そのドメインに対して同じように制限を掛けられます。
# vi /var/qmail/control/badmailfrom |
Copyright © ITmedia, Inc. All Rights Reserved.