#author("2020-01-09T17:23:59+09:00","default:egashira","egashira")
#author("2020-01-09T17:26:11+09:00","default:egashira","egashira")
[[CentOS7]]

*postfix 送信元(From)によるメール拒否 [#kc1e424a]
**main.cf設定 [#o6b958a3]
「/etc/postfixmain.cf」の最後に以下の内容を追記します。

今回は「reject_unknown_sender_domain」と「reject_non_fqdn_sender」も一緒に設定していきますが、必要ない場合は設定しなくてもかまいません。

|BGCOLOR(#000000):COLOR(#FFFFFF):|c
|# vi /etc/postfix/main.cf|
|[root@localhost ~]# vi /etc/postfix/main.cf|
|smtpd_sender_restrictions = &br; check_sender_access hash:/etc/postfix/reject_sender, &br; reject_unknown_sender_domain, &br; reject_non_fqdn_sender|

smtpd_sender_restrictions 

-テーブルファイル参照 check_sender_access テーブルの種類:/テーブルファイル
-ドメインの有無を確認 reject_unknown_sender_domain
-ドメイン形式の確認 reject_non_fqdn_sender

**check_sender_access [#s323ed66]
テーブルファイルを参照させる場合に良く使用されるのはテーブルの種類は、テーブルファイルをhash化したDBを参照する方法(hash:/~)と、正規表現で記述されたテーブルファイルを参照する方法(regexp:/~)があります。

-hashを使用する場合 check_sender_access hash:/テーブルファイル
-正規表現を使用する場合 check_sender_access regexp:/テーブルファイル

※hashを使用する場合は、ルールファイルを作成後「postmap」コマンドでテーブルファイルをhash化させる必要があります。

**reject_unknown_sender_domain [#vbf51730]
送信元ドメインが存在しているかを確認しドメインが存在しない(DNSのMX、Aレコードに存在しない)場合拒否します。

**reject_non_fqdn_sender [#k64c0f6f]
送信元のアドレス形式を確認し、送信元のアドレスがFQDN形式でない場合拒否します。

**テーブルファイルについて [#z33fae9e]
拒絶するメールを記載したテーブルファイルを作成します。

制限するメールのルールは下記の書式で記述することになります。

|拒否するドメイン or メールアドレス 拒否方法|

***拒否ドメイン or メールアドレスの指定方法 [#c2097375]
拒否するメールの「From」の指定は、ドメイン全体や個別のメールアドレスで指定することが出来ます。

-example.jp 「example.jp」ドメインからのメールを全てを指定
-xxx@example.com 特定のメールアドレスを指定

''拒否方法の指定''

拒否方法は通常「REJECT」か「DISCARD」のどちらかを指定すればよいでしょう。

-REJECT メール受信拒否メッセージが相手に帰る
-DISCARD 相手には何も通知せずにメールを破棄

メール送信元にエラーメッセージを返したい場合は「REJECT」を指定して、エラーメッセージを返したくない場合は「DISCARD」を指定します。

''設定例''

下記の例では、「From」が「example.jp」ドメインからの場合はすべて(ドメイン全体を指定)「REJECT」し、「user@example.com」からのメール(個別のメールアドレスを指定)は「DISCARD」させるといった内容になります。

|BGCOLOR(#000000):COLOR(#FFFFFF):|c
|# vi /etc/postfix/reject_sender|
|[root@localhost ~]# vi /etc/postfix/reject_sender|
|example.jp REJECT &br; user@example.com DISCARD|

**postmapによるhash化 [#gad1d4c8]
テーブル形式に「hash」を指定した場合、そのままでは設定した作成したファイルの内容が「postfix」に読み込まれないので、「postmap」コマンドを使用して作成したファイルからhash化したDBファイルを作成します。

|BGCOLOR(#000000):COLOR(#FFFFFF):|c
|# postmap /etc/postfix/reject_sender|
|[root@localhost ~]# postmap /etc/postfix/reject_sender|

これで「reject_sender.db」というhash化されたファイルが作成されます。

※「check_sender_access hash:/etc/postfix/reject_sender」といったように、テーブルファイルとして「reject_sender」を指定していますが実際には今作成した「reject_sender.db」が参照されています。

***内容の確認方法 [#ne0d82a8]
作成されたファイルは「strings」コマンドを使用することで中身の確認をすることが出来ます。

|BGCOLOR(#000000):COLOR(#FFFFFF):|c
|# strings /etc/postfix/reject_sender.db|
|[root@localhost ~]# strings /etc/postfix/reject_sender.db|
|REJECT &br; example.jp &br; DISCARD &br; example.com|

**設定反映 [#m5e4cb9c]
テーブルファイルが完成しましたら「postfix」を再起動させて設定を反映させます。

CentOS7であれば「systemctl」コマンドで再起動させます。

|BGCOLOR(#000000):COLOR(#FFFFFF):|c
|# systemctl restart postfix|
|[root@localhost ~]# systemctl restart postfix|

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS