postfixで迷惑メール対策
20160330

動作環境
 CentOS7.x
 CentOS6.x
 postfix

2016/03/30時点で一部説明メモが不足しているので、そのうち修正
◆迷惑メール予防その1
 [root@Server ~]# vi /etc/postfix/main.cf

disable_vrfy_command=yes
→追記する。
→vrfyコマンドを無効にし、ユーザーの有無を調べにくくする。
→気休め程度ではありますが、有効化しない理由もありません。

----------------------------------------------------------------------------------------------------

◆迷惑メール予防その2
 [root@Server ~]# vi /etc/postfix/main.cf

smtpd_helo_required=yes
→追記する。
→接続要求時にheloコマンドを要求し、接続元のホスト名を伝えない場合、拒否する。
→気休め程度ではありますが、有効化しない理由もありません。
◆迷惑メール対策その1
 [root@Server ~]# vi /etc/postfix/main.cf

# HELOコマンドの制限
smtpd_helo_restrictions =
  permit_mynetworks,
  reject_invalid_hostname,
  reject_unknown_sender_domain,
  permit

→smtpd_helo_restrictions自体が無い場合は、項目及びルールを追加。

# HELOコマンドの制限
smtpd_helo_restrictions =
  permit_mynetworks,
  reject_invalid_hostname,
  reject_unknown_sender_domain,
  permit

→smtpd_helo_restrictions自体が無い場合は、項目及びルールを追加。

# MAIL FROMコマンドの送信者アドレスの制限
smtpd_sender_restrictions =
  permit_mynetworks,
  reject_non_fqdn_sender,
  reject_invalid_hostname,
  reject_unknown_sender_domain

→smtpd_sender_restrictions自体が無い場合は、項目及びルールを追加。

# RCPT TOコマンド制限
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_non_fqdn_recipient,
  reject_unauth_destination,
  permit_auth_destination,
  reject

→smtpd_recipient_restrictions自体が無い場合は、項目及びルールを追加。

# 送信元IPアドレス制限
smtpd_client_restrictions =
  permit_mynetworks,
  reject_invalid_hostname,
  reject_rbl_client sbl-xbl.spamhaus.org,
  reject_rbl_client all.rbl.jp,
  permit

→smtpd_client_restrictions自体が無い場合は、項目及びルールを追加。

文字部分を追記
 1. reject_invalid_hostnameは不正なホスト名を拒否する。
 2. reject_unknown_sender_domainはDNS A or DNS MXレコードがないドメインからは拒否する。
 3. reject_non_fqdn_senderはMAIL FROMコマンドのアドレスがFQDNけではない場合に拒否する。
 4. reject_rbl_clientは  http://www.spamhaus.org/lookup/ PBL(動的IP)は除外 含める場合はreject_rbl_client zen.spamhaus.org,
 及び  http://www.rbl.jp/のブロックリストを用いて拒否します。

→一般的なシーケンス制御ですので、ルール文についての説明は割愛します。

----------------------------------------------------------------------------------------------------

◆迷惑メール対策その2(任意)
 [root@Server ~]# vi /etc/postfix/main.cf

# MAIL FROMコマンドの送信者アドレス制限
smtpd_sender_restrictions =
  reject_non_fqdn_sender
  reject_invalid_hostname,
  reject_unknown_sender_domain
  hash:/etc/postfix/reject_sender

文字部分を追記
→独自のブラックリストファイルを作成し、送信元ホスト(ドメイン)を元にメールの拒否をする。
→smtpd_sender_restrictions自体が無い場合は、項目及びルールを追加。こちらは最下部に暗黙のpermit

◇ブラックリストファイルの作成
 [root@Server ~]# vi "/etc/postfix/reject_sender"

ry.tl DISCARD
ry.tlドメイン全てのメールを破棄する。

root@ry.tl REJECT
→送信元がroot@ry.tlであるメールを破棄する。

文字はドメイン名、若しくはメールアドレスの指定。
特定のメールアドレスのみ拒否をする場合は、メールアドレスを記述しても可能

文字部分は実行オプションの指定

DISCARD メールを正常に受信し、すみやかに破棄する。
→下記オプションよりこちらを指定すべきです。
→相手がアドレス有効性の確証を得ている場合は送り続けてくる事も。

REJECT メールを拒否したと返答し、すみやかに破棄する。
→こちらの場合、拒否の返答をしてしまう事から、メールアドレスの有効性を相手に通知してしまいます。
→但し、拒否を明示的に示すことから、以降は送信してこなくなる場合もあります。

◇ブラックリストファイルをDB化
 [root@Server ~]# postmap /etc/postfix/reject_sender
◆設定を反映する。
 [root@Server ~]# systemctl restart postfix

 [root@Server ~]# /etc/rc.d/init.d/postfix reload ←CentOS7未満の場合

以上