postfixの設定で、外部メーラーからの転送時に弾くことを追加した。
header-checks等である。
postfixの設定ファイル(main.cf)に次を加える。
|
1 2 3 4 |
header_checks = pcre:/opt/local/etc/postfix/header_checks mime_header_checks = pcre:/opt/local/etc/postfix/mime_header_checks nested_header_checks = pcre:/opt/local/etc/postfix/nested_header_checks milter_header_checks = pcre:/opt/local/etc/postfix/milter_header_checks |
元々、main.cfには
#header_checks = regexp:/opt/local/etc/postfix/header_checks
と入っていて、etc/postfixの中にもheader_checksファイルが存在する。
これらは、perlの正規表現検索を用いて弾く対象かどうかを判断する。
regexp:でなくprce:なのは次の一行目を使いたかったから。
|
1 |
sudo port upgrade --enforce-variants postfix +dovecot_sasl +pcre +tls |
とコンパイル時にオプションを付け加えている。
–enforce-variantsはupgrade前とvariantsが違う(追加されている)からで、入れないとportから要求される。
pcre(Perl Compatible Regular Expressions)はperl互換正規表現のc言語ライブラリで、組み込むとperlと一緒の正規表現が使えるようになる。regexpの上位互換だと思えば良いらしい。(Geminiさん情報)
|
1 2 3 4 5 6 7 8 9 |
# 新しい激安ドメインを見つけたら、カッコの中に「|」で足していくだけ! /^Received:.*\.(site|xyz|online|top|club|cn|kr|ru)/ REJECT Spamer-sender # 経由サーバーを安全に狙い撃ち(サブドメインも単体ドメインも完璧に網羅) /^Received:.*(\.sphcm\.jp|@sphcm\.jp)/ DISCARD Spamer-sender /^Received:.*\.usedtruckyard\.com/ DISCARD Spamer-sender /^Received:.*\.official-vip-aiyouxi\.com/ DISCARD Spamer-sender /^Received:.*\.m01-ahd-sys\.net/ DISCARD Spamer-sender #/^Received:.*\./ DISCARD Spamer-sender |
postscreenは送信先をチェックする。
中間の経由Serverはチェックしない。
なので、header_checksが有効になってくる。
上の/^Received:.*\.usedtruckyard\.com/は正規表現でReceived(中継サーバー)がusedtruckyard.comなら弾くDISCARD(受け取ったふりをして捨てる)となっている。REJECT(拒否)でなくDISCARDなのは、転送先が再送信してくる(基本的な対応だと思う)から。
同様に、mime_header_checksは添付ファイル(の拡張子)をチェックする。
|
1 2 3 4 5 6 |
# 危険な拡張子を持つ添付ファイルを一網打尽(大文字・小文字も /i で完全網羅) /^(Content-Type|Content-Disposition):.*name=.*\.(exe|scr|vbs|pif|bat|cmd|msi|cpl|lnk)/i REJECT Dangerous Attachment Blocked # 拡張子が2つ連続している変なファイル名や、怪しいマクロ付きファイルを拒否 /^(Content-Type|Content-Disposition):.*name=.*\..*\.(exe|vbs|scr|pif)/i REJECT Double Extension Exploit Blocked /^(Content-Type|Content-Disposition):.*name=.*\.(docm|xlsm|pptm|dotm|xltm)/i REJECT Dangerous Macro Attachment Blocked |
中身は全部、Geminiさんにお任せである。
これで判るが、Windowsに特化しているね。
Macだから、これ(mime_header_checks)いらないかも。(笑)
次は、nested_header_checks。
|
1 2 3 4 5 6 |
# 内側の隠しファイル名に、怪しい拡張子(.exe や .scr など)があったら即拒否 /^Content-Disposition:.*filename=.*\.(exe|scr|vbs|pif|bat|cmd|msi|cpl)/i REJECT Dangerous Nested Attachment Blocked /^Content-Type:.*name=.*\.(exe|scr|vbs|pif|bat|cmd|msi|cpl)/i REJECT Dangerous Nested Attachment Blocked # 内側のヘッダーで、有名企業や自分のドメインを騙っている嘘つきを狙い撃ち /^From:.*@(apple\.com|amazon\.co\.jp|k-in\.co\.jp)/i REJECT Spoofed Nested From Domain Blocked |
これもGeminiさんに考えてもらった。(コメントごと)
こいつもWindows使わない人には意味が無いな。
最後が、milter_header_checks。中身は、
|
1 |
/^X-Spam-Flag:.*YES/ REJECT Spam-Filter Triggered |
これだけ。
何が何でも届けるぞってサーバー(結構ある)は、Spamだと判っていても、逆引きに失敗しても「Domainが正しい、DNSに登録されている」Serverだと受け取る。
これは全世界に「逆引きできないレンタルサーバー」の利用者が多いせいらしい。
なので、header_checksの一行目
/^Received:.*\.(site|xyz|online|top|club|cn|kr|ru)/ REJECT Spamer-sender
が生きてくる。
中継に中国やロシアのサーバーが絡んでいたら落とす。弾く。無視する。
大体これでspamや迷惑メールは弾ける設定である。

