<<
トッ
プページへ
■概要
postfixがまともに動作し始めると次にくるのが不正中継を目的としたアクセスと多量のスパムメールではないでしょうか?完璧とまではいきませんが管
理人が試してみて
効果のあった対策について書いてみます。
■postfix メール受信拒否の設定
- 特定ドメイン・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
- メール本文の内容で拒否する
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