*1  添付ファイルを条件にした .procmailrc レシピ

最近 spam filter をすり抜けてくる Virus が多いので、zip 添付ファイルなぞプライベートでは殆んど使わないや、とフィルタしてしまうことにした。spamassassin の手前でフィルタしてしまえば CPU にもやさしい。Amavis 等で Virus をちゃんとフィルタする手は後回し。とりあえず以下のように、multipart ヘッダがあった場合に body の name=....zip 等の文字列を引っかけて、当該メールは tmp/ と言う Maildir のフォルダに落す。
:0
* ^Content-Type:.*multipart
{
  :0B:
  * ^.+name=.*(\.scr|\.exe|\.zip)
  .tmp/
}
本当は「空白 + name=」のパターンと「Content-Type:.+name=」のパターンを書き分けてルールを厳しくしておきたかったのだが、空白の指定に [[:space:]] が何故か効かなかったので ^.+ で誤魔化してしまった。procmail のレシピからはそのまま egrep にパラメータが渡るはずなのだが、何故駄目なんだろう。

*2  postfix で特定の添付ファイルを拒否・廃棄する

そう言えば過去に postfix で似たようなフィルタを書いたなと思い見てみる。流石に .zip を全破棄するのは無理だが、.scr や .pif 程度なら全て破棄しても構うまい、と言うポリシーになっている。/etc/postfix/main.cf で
header_checks = regexp:/etc/postfix/header_checks
と言う設定を入れ、/etc/postfix/header_checks に以下のような設定を入れていた。
/^content-type:.*name=\".*\.scr\"/ DISCARD
/^content-type:.*name=\".*\.pif\"/ DISCARD
/^[     ]*(name|filename)=\".*\.scr\"/ DISCARD
/^[     ]*(name|filename)=\".*\.pif\"/ DISCARD
確か REJECT でなく DISCARD にしたのは、Mailman を使った ML 経由で来るメールにこの手のファイルが添付されていて、それを REJECT した結果、 Mailman が「このアドレスは使われてない」と判断して配送中止してくれたのが理由だったと思う。DISCARD ならば受取った後に /dev/null に落して終わるのでそうした問題は起きない。

( Permalink | Comments (0) | tags: mail  )
Comments

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

このエントリーのブックマーク

Monthly Archives

Select Month to read