■Postfix‎ > ‎

spam対策 その1

Mailを受信すると結構sapmが来ます。
迷惑なのでヘッダー情報を見てフィルタリングします。
「SPAM」とは、Hormel Foods社の味付け豚肉の缶詰の商品名のこと
とは別ですよ('∇')<わかってるって?w

■ルール作成
# vi /etc/postfix/header_checks
/name=.*\.scr/ REJECT
/name=.*\.exe/ REJECT
/name=\".*\.inf\"/ REJECT
/name=\".*\.scr\"/ REJECT
/name=\".*\.pif\"/ REJECT
/name=\".*\.bat\"/ REJECT
/name=\".*\.dll\"/ REJECT
/name=\".*\.vbs\"/ REJECT
/name=\".*\.reg\"/ REJECT
/name=\".*\.pdf\"/ REJECT
/name=\".*\.fdf\"/ REJECT
/^Return-Path:.*<#.*@.*>/ REJECT
/^From:.*<#.*@.*>/ REJECT      

書き方は
/正規表現/ {OK|IGNORE|REJECT}

OK=許可します。
IGNORE=受け取るけど破棄する
REJECT=受け取り拒否でエラーを返す(DSNは500番台を返す)

※大量にMailを捌く場合は負荷の事を考えIGNOREがいいかもねぇ('∇')

上の記述ですと
/name=xxxx って奴が
「name=」が含まれるヘッダ内文字列に任意のファイル名(.*)に加え、
指定した拡張子が 含まれている場合に拒否(REJECT)を意味です。
/^Return-Pathと/^Fromは普通何か記述がついているのですがspamとかなら
ない場合があるのでない場合には拒否(REJECT)って事です。

ルール作成後は
# portmap /etc/postfix/header_checks

■Postfixの変更
# vi /etc/postfix/main.cf
smtpd_recipient_restrictions =
    permit_mynetworks
    check_client_access btree:/etc/dracd/dracd
    check_relay_domains
header_checks = regexp:/etc/postfix/header_checks
# /usr/sbin/postfix reload