絖綛 N@i.jp  昨日:00044348
 今日:00018198
 総計:00215931
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

postfixにスパムフィルター設定をする

最近、自宅では時々iPod touchのメールアプリでメールチェックするのだが


MacのMailにはスパムフィルターがあり、スパム・ジャンクメールは選別されて「迷惑メール」ボックに入るので殆ど目にすることなく削除できるのだが、iPod touch のメールアプリには残念ながらスパムフィルター機能がない。そのため迷惑メールは手作業で削除するしかないわけだが、それでも日に数通程度なら構わないが数十から百通を超える量ともなると手作業では辛くなる。
 そこで、iPod touch ではプロバイダのメールサーバから読み込むのではなく、一旦自宅サーバ(Mac mini)に forward したメールを読み込むことにした。もちろん、これだけではスパムも全部自宅サーバに forward されているので状況は全く変わらないわけだ。そこで、自宅サーバの Postfix にスパムフィルター設定を施して、スパム・ジャンク(迷惑)メールは受信しないようにしてしまおうと言うわけだ。

 設定するにあたって色々調べてみたが、Postfixの設定だけでは完全なスパムフィルターとはならないし、場合によっては副作用もあり、真当なメールも Reject(受け取り拒否)してしまう場合もある。しかし、このメールサーバを使っているのはワタシとウチの父親だけである。少々大胆なフィルター設定をしても問題ないだろう。

 設定は Postfix Enabler の「アクセス」、「Postfixカスタム設定」の中に書き込むことで行った。
 「アクセス」の方はスパム送信元のIPアドレス(範囲)やメールアドレスの後に "REJECT" と書くことで、その送信者からのメールを受け取り拒否できる。しかし、スパム送信元メールアドレス(ドメイン名)なんて詐称された物ばかりと思われるので、色々書き込んではみたが効果はあまり上がっていない。IPアドレス範囲を書くと真当なメールも拒否してしまう可能性が高くなるので極力避けていたが、海外からメール(特にスパムメール多発信国である中国、韓国、ロシア等)は拒否しても問題ないだろうと考えるようになり、海外のIPアドレス範囲を書き加え出したところである。

 「Postfixカスタム設定」は "/etc/postfix/main.cf" の最後に書き加えられるもので、以下のようなスパムフィルター設定をしてみた。(行末の \ は継続行である事を示す)

header_checks=regexp:/etc/postfix/header_checks
body_checks=regexp:/etc/postfix/body_checks
smtpd_helo_required=yes
smtpd_helo_restrictions=permit_mynetworks, \
        reject_invalid_hostname, \
        reject_non_fqdn_hostname, \
        permit
smtpd_client_restrictions=permit_mynetworks, \
        reject_invalid_hostname, \
        reject_rbl_client all.rbl.jp, \
        reject_rbl_client spamcop.net, \
        reject_rbl_client cn-kr.blackholes.us, \
        reject_rbl_client brazil.blackholes.us, \
        reject_rbl_client russia.blackholes.us, \
        reject_unknown_client, \
        permit
smtpd_sender_restrictions=reject_invalid_hostname, \
        reject_unknown_sender_domain, \
        reject_non_fqdn_sender, \
        check_sender_access hash:/etc/postfix/access
  • header_checks, body_checks
    メールヘッダやメール本文の中に、特定の正規表現にマッチした記述があると受け取り拒否できるようにする設定。正規表現は指定のファイル "/etc/postfix/header_checks", "/etc/postfix/body_checks" 内に記述する。
  • smtpd_helo_required, mtpd_helo_restrictions
    heloの不正な応答を拒否する設定。メールのプロトコルでは最初に helo を要求することができるので、それを要求するように設定し、それに対して正当な応答をしてこないホストからのメールは拒否する設定だとか。
  • smtpd_client_restrictions, smtpd_sender_restrictions
    クライアント、送信アドレス(From:)が真当でない場合は受け取り拒否する設定。"reject_rbl_client"パラメタで、ネット上で公開されているブラックリスト(特にスパム多発信国である中国、韓国、ブラジル、ロシア)に載っている奴ではないかと検査している。

 この設定のもと、フィルターをすり抜けてくるスパムのアドレス、メールヘッダを見ては特徴的な点を探し出し、Postfix Enablerの「アクセス」や、"/etc/postfix/header_checks", "/etc/postfix/body_checks" を日々更新している。しかし、いまだに1日に十通程度はフィルターをすり抜けて来る。何とか週に数通程度にまでしたいものだが、まだ先は長そうだ。


< 過去の記事 [ 8月の メールサーバ リスト ]  

2008 calendar
8月
12
3456789
10111213141516
17181920212223
24252627282930
31


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.