#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|