Postfixで送信者が特定のドメインのメールをサーバーで拒否する - Postfix

送信者が特定のドメインのメールをサーバー側で拒否したいことがあります。この記事ではPostfixで送信者が特定のドメインのメールをサーバーで拒否する設定について紹介します。

概要

メールクライアントのフィルタリングや迷惑メール防止機能を利用すると、迷惑メールやスパムメールが防げますが、メールの数が多くなるとクライアントでの処理も面倒になります。また、メールボックスがあふれてしまうケースもあります。そのため、サーバー側で特定のドメインを拒否したい状況になります。この記事ではメールサーバーでPostfixを利用した際に、送信者のアドレスが、特定のドメインのメールを拒否する設定を紹介します。

設定

main.cfの変更

拒否するドメインの一覧を指定するため、Postfixの設定ファイルmain.cfを編集します。
main.cfを開き、以下の行を追加します。
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender hash:(拒否リストファイルのフルパス)
"hash:"以降は拒否リストファイルの位置のため、ファイル名やパスは変更可能です。
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender, hash:/etc/postfix/reject_sender
reject_unknown_sender_domain は送信元メールアドレスが存在しない場合に拒否する設定です。
reject_non_fqdn_sender がクライアントの MAIL FROM コマンドのアドレスが FQDN 形式でない場合に拒否する設定です。

拒否リストの作成 (reject_sender の作成)

ドメインの拒否リストを作成します。"/etc/postfix/reject_sender"ファイルを作成します。
ファイルには以下を記述します。
(拒否するドメイン/アドレス名) (オプション)
example.com REJECT
と記述すると、送信者がexample.com のメールを拒否します。拒否後、拒否した旨のメッセージを返信します。
example.com DISCARD
と記述すると、送信者がexample.com のメールを拒否しますが、拒否された旨のメッセージを返信しません。
リストファイルの例
リストファイルの例です。
penguin@example.com REJECT
duck@example.com REJECT
example.net REJECT
example.jp REJECT

ハッシュマップの作成

リスト作成後、ハッシュマップを作成します。下記のコマンドを実行します。
/usr/sbin/postmap (ドメイン拒否リストファイル)

今回の例では以下のコマンドになります。
/usr/sbin/postmap /etc/postfix/reject_sender

Postfixの再起動

Postfixを再起動し新しい設定ファイルを有効にします。以下のコマンドを実行します。
/etc/rc.d/init.d/postfix reload
または、
/etc/rc.d/init.d/postfix restart

著者
かつて日本を代表したスーパーエンジニア (自称)
ハードウェア、電気設備、ガーデニング関係の記事を担当。
掲載日: 2014-11-25
iPentec all rights reserverd.