server

Gmailの迷惑メールフィルタ

自社のメール鯖でもS25R+TarpittingやbsfilterなんぞでSPAM対策しているのですが、最近はこれらに加えてGmailを経由させて迷惑メールのより分けをしています。

これがお利口で今のところ性能的には大満足。Gmailが発狂しない事を祈ります。(ずいぶん前になりますが、Gmailがおかしくなってメールが来なくなった事がありました。)

今は用心のため保険をかけて、Gmailを通さないスプールも用意してあります。

SPAM対策まとめ3

 さとうさんのお陰で一段落ついた当社のspam対策をまとめてみました。これでやっと電子メールが仕事に使えるメディアとして返り咲いた感があります。(大げさじゃなくて)

 普通メール利用者は受け取ったspamをどう処理するか?としか考えられません。
 原始的なところではFromアドレスやSubjectでの振り分けやちょっと高級になるとベイジアンフィルタを使った振り分けなどがそれにあたります。

 smtpサーバ(メールサーバ)管理をしているものからすると「なんとかして送りつけてくるspamの受取拒否をメールサーバ直前でできないものか・・・」と考えるのは当然のことです。 できるだけ上流で防ぐことができれば、下流に対策を施さなくても良いのですから。

 現在私のところのサイトでpostfixを使って施している方法を以下にあげます。
 まずspamを送りつけてくるsmtpサーバの特徴をあげ、それに対する対策を箇条書きで。

★逆引きできないホストが多い
 逆引きできないからspamホストかと言うと100%そうではありません。そこで逆引きできないsmtpサーバから接続要求が有った場合は数秒程ウェイトを入れてゆっくり対応することにしています。(throttling)

 spamサーバはせっかちな事が多く、反応のとろい(遅い)smtpサーバは配送をすぐに諦めてしまうことが多いのです。 spammerは単位時間当たりに○○万通裁けるかどうかが重要な為、このようなチューンナップ(?)を施し反応の遅いsmtpサーバにかまっていられないからでしょう。 逆に非spamサーバ(普通のsmtpサーバ)は数秒位のウェイトが掛かっていても我慢強く待って正常にメール送信をしてくれる為、正常なメールの配送に問題は起きません。

★ユーザ回線上にsmtpサーバを置いてある事が多い
 ここのところ主流となったspam送信法でです。一般のADSLや光ファイバを使い、その回線上にspam送出サーバ(ふつうのsendmailやqmailなども多い)を設置。 プロバイダのsmtpサーバを使わず自力でspamを配送するものです。 IPアドレスは非固定であるためプロバイダ料金も安くspam送信者にとってはお手軽。

 他に目的は違いますが結果的に同様なspamまき散らしになっているケースとして、ワーム/ウィルスに感染してしまい、PCが勝手にsmtpサーバとなってワームやウィルスをspamとして送出しちゃっているケース。

 これらの特徴はそのIPアドレスを逆引きしてみると 123-45-67-89.dsl.hogehoge.ne.jpと言うようなIPアドレスとおぼしき数字の羅列やadsl/dsl/fletsなどと言う文字列も散見されます。
 当社の対応としてはこれらの一般ブロードバンド回線上に置かれたsmtpサーバからの接続要求にもゆっくり対応しspamの送信を諦めて貰う方針をとっています。 また万一そのようなホストが正常な(非spam)ホストであった場合も数秒遅配はありますが事故はおきず安全です。

★heloで正しいホスト名を名乗らない
 smtpの礼儀作法(プロトコール)として接続後まず

 helo smtp.jibun-domain.co.jp

と言うように自分のホスト名を完全修飾ドメイン名で名乗ることが決められているのですが、spamサーバの場合heloの後のホスト名に当方のホスト名であったりhogehogeとか完全修飾ドメイン名でないホスト名、実在しないホストなどを適当に語っているものなどが多いのです。

 そこでこれを使って実在しないホスト名や完全修飾ドメイン名をheloで知らせてきた場合は受取拒否をしてしまうような設定を施しています。

 実際これで弾かれるspamはもっとも多くspam防御策としては効果が最も高いと思われます。

★MAIL FROM (エンベロープFROM)のドメイン名が実在しない
 そのドメインのMXレコードやAレコードを引いても存在しないアドレスをMAIL FROMにセットして送ってくる。当然これはspamであるので受取拒否。

それでもすり抜けてくるメールがあるので以下のような追加作戦を実行。

★しつこく決まったホストから送りつけてくるspamはそのsmtpホストからの接続自体を拒否設定。
★MAIL FROM(エンベロープFROM)のドメインが登録されているネームサーバを探り、怪しいネームサーバがnsレコードにあれば受取拒否する。

postfix

SPAM除けのおまじないの豊富さに負けMXサーバをpostfixで実験中。

人生初postfixだったので勝手が分からず・・・でしたが、苦節6時間なんとか複数ドメインのMXを振り向けて動いてくれているようです。

maillogを見てるとSPAMがガンガン捨てられている様子が手に取るように分かります。やっぱ強力!

ありがとうございました さとうさん!

防げないSPAM

S25R+greylisting & tarpittingで一応の成果を上げたかにみえたSPAM対策ですが、これでも防げない種類のSPAMがありました。

上記対策で中国・韓国からやってくるエッチ系・出会い系の日本語ゴミメールは激減しましたが主に米国からやってくる英語SPAMが防ぎきれません。

特徴はSMTPサーバのホスト名が正しく逆引きできてtarpittingにも耐性のある根気強い普通のMTAを使っていること。

ホスト名は

mail.??????.com

whoisしてもちゃんと実在が確認できるし、逆引きだってちゃんと同じ名前で引けます。わざわざSPAM送出するためだけにドメイン取得して、かつグローバルIPアドレスも1個割り当ててるんですよ。

そのうえ死ぬほどたくさんあります。
そんな訳で名指しで受け取り拒否設定をしても追いつきません!

SPAMまくためだけにドメイン取ってグローバルIPアドレス振るでしょうかぁ?
レジストラやネームサーバを調べてみると特定の業者の陰がして、プロの犯行としか思えません。

悩みは続きます。

「SPAMゆっくり対応の刑」その後

qmailにtarpittingパッチをあてるだけのSPAM対策ですが、どうやら効果が高いのは

★ワームにやられたゾンビPCから湧き出るワームメール
★一般回線上に置かれたWinマシンで専用SPAM配信ソフトを使い、自分自身がSMTPホストとして自力でSPAMをまき散らすもの

の2種類のようです。特に後者のものは単位時間あたりにン万通捌けます!みたいなノリで作られた専用ゴミまき散らしソフトを使っているようで、この手のメール送り出しロジックは反応が少しでも遅いSMTPサーバに当たったら即諦めて次のターゲットに移るような挙動のようです。(反応がトロイやつには用は無い・数打ちゃ当たるよ方式)

反対にあまり効果が無いのは普通のメールサーバを自回線上にたててチューンを施さずにそのまま地道に送り続ける方式のSPAMです。

20秒とかのウェイトを掛けても我慢強く待ち続けて地道に送り続けるんですから、短時間に大量に!と言うSPAM配信業者の心得には反しますが(笑)。

この手のSMTPホストは欧・米に多いようです。 あまりにしつこいものはIPアドレスやホスト名を名指ししてdenyして対応。 お陰で毎日10通くらいしかSPAMが来なくなりました。(もっともその10通もベイジアンフィルタに引っかかってますけど。)

ゆっくり返事してSPAM撲滅

throttlingとかtarpittingとか呼ばれるspamを送り付けてくるっぽいSMTPサーバにはよりゆっくり反応する作戦を決行。

qmailにはtarpittingパッチを使わせて貰いました。

実装してみると、これがまた簡単な仕組みの割には良く利くんですねー。関心を通り越して感動モノです。 今は自分の会社のドメイン+お客さんのところのドメイン10個くらいで実験してる最中ですが、もう少し様子を見て「ゆっくり対応の刑」に処すドメインを増やしていく予定。

SpamAssassin

今まで何故か縁がなかったSpamAssassinをデーモンモードで設定してみました。

結局今の布陣は・・・

SAV(SophosAntiVirus + qmail-scanner) -->
S25R + Greylisting -->
SpamAssassin -->
bsfilter

と4段構えでの対応。

流石にこれくらいやってると快適です。が・メールサーバの負荷は大きそうです。だいたい昔だったらこんな事(SPAMの選り分け)にサーバ資源を使う必要は無かったのに。

なんか損をした気分です。

NiftyもOP25

NiftyもOutbound Port 25(SMTP) Blocking に乗り出すようです。

これではPOP Before SMTPが使えなくなるので8025/tcpみたいな25/tcp以外のポートで待ち受けるSMTPデーモンを動かしておくようにしておきました。

続きを読む

存在しないアドレス宛のメイル

またまたSPAMがらみのトピックスです。

itoh.co.jpみたいに結構古くに登録され長く使われているドメインにはゴミメールが沢山届きます。
hoge@itoh.co.jpのように@の左側のユーザ名が実在しないメイルアドレス宛のメイルが来た場合は「User unknown」みたいな返信を返すISPが多いと思います。

でもこれも善し悪しでSPAMerはmailfromアドレスを実在するアドレスまたは実在するドメインの嘘アドレスをセットしてばらまくケースがあり、こうなると善意の「User unknown」お知らせメイルが罪もないユーザ(又は罪もないサイト)へエラーメール爆弾攻撃をしてしまうことに繋がる可能性もあります。それよりなにより自組織のネットワーク資源を浪費する事になります。

そんな訳で@itoh.co.jpドメイン宛のメイルで受取手の無いアドレスへ来たメイルは躊躇なく捨てる処理を行っています。

当社のホスティングユーザのドメイン宛に実在しないアドレスのメイルが大量に届きエラーが頻発すれば上記のような捨て設定をしてあげていますが、時々「それじゃ困るんだよ! アドレス違いが相手に分からないと困るじゃないか!」と大騒ぎするお客様もいらっしゃいます。

そんなとき「それでは存在しないアカウント宛のメイルを全部○○さん(お客様)のメイルアドレス宛に転送するように設定しておきますね。」としておくと、だいたい数時間以内に「こんなにゴミメールが来るとは思いませんでした。済みませんが、宛先違いを含め存在しないアドレス宛のメイルは捨てるように設定して下さい。」と言う懇願に変わります。(ほぼ100%)

S25R/SPAM対策 最終回

さとうさんがS25R+greylist for qmailを公開してくれましたのでSPAM話題はこれで一旦最終回とします。

Qgrey - S25R + qgreylistパッチ

ちょっと補足です。

tcpserverからqmailを動かす場合は高速配送が売り文句(だった)qmailの場合、オプション -Hでリモートホストの逆引きをしていないケースが多いものです。が、これではS25R対策が効きません。(そりゃそうです。ホスト名を調べないんだから。)

ですから -h オプションでリモートホスト名を調べるように起動します。
こんなふうに・・・

/usr/local/bin/tcpserver -R -h -x /etc/tcp.smtp.cdb -v \
-u 9999 -g 9999 0 smtp \
/var/qmail/bin/qgrey /var/qmail/bin/qmail-smtpd 2>&1 \
| /var/qmail/bin/splogger smtpd 3 &

それからFreeBSD4.10-RELEASEのsyslogではlogが取れませんでした。
どうやらperlのSys::Syslogはsyslogdの514/udpにlogを投げつけるのがデフォルトのようでした。UDPなんでエラーも出ず悩んでいました。(笑) qgreyの最初の方でsetlogsock('unix');と明示してOKになりました。
こんな風に

#use Sys::Syslog;
use Sys::Syslog qw(:DEFAULT setlogsock);
setlogsock('unix');


Recent Comments
QRコード
QRコード
  • ライブドアブログ