コメントスパムだのスパムメールだの、ほんと迷惑なやつが多すぎる...と嘆いてばかりいても始まらないので、ささっと対策してしまおう。今回はスパムメール対策。
うちのメールサーバーqmail は、フリーのブラックリストを使ってはいるがあまりヒットしない。なのでローカルなブラックリストも作ってしつこいサイトはそれで対応していこうかなと。
qmail-smtpd を tcpserver 経由で起動している場合、-x オプションで、特定のサイトのリレーをコントロールできる。具体的には /etc/tcp.smtp を以下のように作成。
127.:allow,RELAYCLIENT=""
192.168.1.:allow,RBLSMTPD="-No thank you spam mail!!"
1行目はローカルからのリレーを許可。
2行目はrblsmtpdでリレーを拒否する設定。
RBLSMTPD に拒否理由が書ける。通常相手の smtp にエラーを返すとき、受け取り保留の 451 と拒否の 553 のどちらかを返すことになるが、拒否理由の文字列が "-" から始まってる場合は 553 を返す。わざわざ tcp.smtp を編集してまで登録したいサイトには 553 で充分 ^^;
このファイルを編集したら /etc/tcp.smtp.cdb ファイルを下記のようにして作成。
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
cdb ファイルを更新したら qmail-smtpd を再起動。うちは svc 使ってるので、
# svc -h /service/qmail-smtpd
で変更後のファイルが適用される。
tcpserver で qmail-smtpd を起動するとき
-x /etc/tcp.smtp.cdb
を途中に追加する。
一方ホワイトリストとして登録する場合は、
192.168.1.:allow,RBLSMTPD=""
とやればわざわざ外部のブラックリストを参照することなくリレー処理をしてくれるようになる。
ちょっとブラックリストが機能してるか確認。
手元のマシンの IP アドレスをブラックリストとして登録、qmail-smtpd を再起動したら、コマンドプロンプトから下記のようにアクセス。
> telnet mailserver 25
220 rblsmtpd.local
mail from:<....>
250 rblsmtpd.local
rcpt to:<.....>
553 No thank you spam mail!!
quit
221 rblsmtpd.local
上記の.....のところは問題なくメール配送してくれるメールアドレスを指定。太字のところが、サーバーからの返答。設定した通りのメッセージとエラーコードが返ってきてるのがわかる。
ということで、さっそくうっとしいやつ登録しとこっと。
そいえばこういう方式のフィルタって最近どこぞの会社が特許とったとかで密かに?話題になってたけど...訴えられたらどうしよう ^^;
【追記】よく考えたら転送メールアドレス宛にくるメールだから、おおもとの IP アドレスを登録しておいても駄目じゃん...がっくし。
poker, backgammon, tramadol, casino, insurance, loans