<--------Google--------->






FedoreCore6 postfix スパム拒否




<< トッ プページへ

概要

postfixがまともに動作し始めると次にくるのが不正中継を目的としたアクセスと多量のスパムメールではないでしょうか?完璧とまではいきませんが管 理人が試してみて 効果のあった対策について書いてみます。

postfix  メール受信拒否の設定

  1. 特定ドメイン・IPアドレス受信拒否

以下をmain.cfに追加して

#特定ドメイン・IPアドレス受信拒否
smtpd_client_restrictions =
permit_mynetworks
check_client_access hash:/etc/postfix/reject_list, permit

受信拒否リストの作成を行う。 /etc/postfix/reject_list というファイルを作成

# 許可するアドレス
/^61\.115\.197\.9[0-1]$/ OK
/^64\.56\.166\.8[0-1]$/ OK
/^210\.155\.68\.186$/ OK
/^220\.213\.226\.141$/ OK
/^210\.174\.207\.38$/ OK
/^210\.188\.236\.215$/ OK

# 拒否するアドレス
maalaeabay.com REJECT
thomson.com REJECT
zoombug.mfg.sgi.com REJECT
sannnet.jp REJECT
umplc.com REJECT
/^[^\.]*[0-9][^0-9\.]+[0-9]/ REJECT
/^[^\.]*[0-9]{5}/ REJECT
/^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]/ REJECT
/^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]/ REJECT
/^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\./ REJECT
/^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]/ REJECT

こんな感じで記述する。
次にreject_listをDB形式に変換しておく。

/usr/sbin/postmap /etc/postfix/reject_list

Postfixをリロードして終了。
/usr/sbin/postfix reload

  1. メール本文の内容で拒否する
GOLDMARK と言う単語が記載されているメールを受信拒否する場合は
/etc/postfix/main.cf に1行追加
body_checks = pcre:/etc/postfix/body_checks

/etc/postfix/body_checks に 1行追加
/GOLDMARK/ REJECT unknown user account

Postfixをリロードして終了。(pcre regexp は postmap する必要がないので注意。)

/usr/sbin/postfix reload

yahooからメールを送付してテストしてみると

Oct 15 10:25:39 kkuma postfix/cleanup[20834]: 24F202B8B5E: reject: body GOLDMARK  from web3302.mail.bbt.yahoo.co.jp[205.95.93.39]; from=<hoge@yahoo.co.jp> to=<hoge@hoge.sytes.net> proto=SMTP helo=<web3302.mail.bbt.yahoo.co.jp>: unknown user account

正常動作しているようです。この拒否のためのキーワード は例えば物の販売を狙ったメールの場合は商品名とすることで確実にリジェクトできます。商品名はアドレスと違って頻繁に変更することが出来ないからです。 尚、このキーワードの部分は正規表現を使用することができるので色々応用することができそうです。


参考リンク
http://www.kobitosan.net/postfix/origdocs/regexp.html