このブログを検索

2011年6月24日金曜日

[Postfix]特定のドメインのみ受信しそれ以外は別アドレスに転送する

特定のドメインのみ受信し、それ以外は別アドレスに転送する設定をします。
IPフィルタ、ドメイン偽装などはひとまず触れません。

ケータイのドメインのみ受信し、それ以外はスパム候補として別アドレスに転送する設定をしました。
今回は、少しややこしいのですが、このフィルタリングをしたメールをメールボックスおよびalias転送をします。
システムの構成や細かな要件によっては他にもやり方はあると思います。

今回の構成は次の通り。
 |送信元|
   ↓
 |Postfix|
<フィルタリング>   ⇒info@doubt.spam
  ↓  ↓ 
 MBox info@alias.to

まず、許可ドメインのアクセステーブルを作成します。
※ファイル名は任意です

# vi /etc/allow_domains
indexweb.co.jp  OK
docomo.ne.jp    OK
vodafone.ne.jp  OK
disney.ne.jp    OK
softbank.ne.jp  OK
    :

# /usr/sbin/postmap /etc/allow_domains 

# ls -l /etc/allow_domains*
-rw-r--r-- 1 root root   283  6月 23 18:39 /etc/allow_domains
-rw-r--r-- 1 root root 12288  6月 23 18:39 /etc/allow_domains.db

次にNGドメインのテーブルを正規表現で記述します。
今回はregexpで作りましたが環境や流量によってはpcreでもいいかもしれません。
また、正規表現を工夫して特定地域ドメインだけをリダイレクトすることもできると思います。
※これもファイル名は任意です

# vi /etc/redirect_domains
/^.+@.+$/ REDIRECT info@doubt.spam

# /usr/sbin/postmap /etc/redirect_domains

# ls -l /etc/redirect_domains*
-rw-r--r-- 1 root root    41  6月 23 18:51 /etc/redirect_domains
-rw-r--r-- 1 root root 12288  6月 23 18:51 /etc/redirect_domains.db

最後にmain.cfに次のように記述してreloadします。
smtpd_sender_restrictionsの判定は、alias判定の前に行われるので、aliasesには影響を与えません。
smtpd_sender_restrictions = hash:/etc/allow_domains,check_sender_access regexp:/etc/redirect_domains

# /usr/sbin/postfix check
# /etc/rc.d/init.d/postfix reload

特定地域ドメインだけをリダイレクトし、それ以外は拒否するのであれば、smtpd_sender_restrictionsの最後に", reject"と追加するといいかと思います。(すみません、これは検証してません)

0 件のコメント:

コメントを投稿