postfix の check_recipient_access マップは正規表現を許可しますか?

postfix の check_recipient_access マップは正規表現を許可しますか?

私は、電子メールを送信できるドメインを制限するように Postfix 設定を更新したいと考えています。次のソリューションに基づいて、check_recipient_access と smtpd_recipient_restrictions を使用することを考えています:https://serverfault.com/a/412805 これは正規表現を許可しますか? *@mydomain.com にのみメールを送信し、他のすべてのメールをブロックしたいです。次のようになります:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipients

受信者は以下のとおりです:

*@mydomain.com PERMIT,
* REJECT,

これは実行可能でしょうか?

編集: transportmap でこれが可能であることはわかっていますが、いくつかの ID をブロックするために check_recipient_access をすでに使用しており、可能であれば別の構成を導入したくありません。

答え1

はい、見てman 5 正規表現テーブル

フォーマットは異なります。完全な正規表現を入力する必要があります。

/.*@example\.com/ OK
/.*/ REJECT

あるいはもっと短く、

!/.*@example\.com/ REJECT

(デフォルトのアクションは「見つかりません」なので、次のsmtpd_recipient_restrictions項目が続行され、デフォルトで許可されます)。

これをファイルに保存し、次のようにフックします。

smtpd_recipient_restrictions =
...
    check_recipient_access regexp:/etc/postfix/my_regexp_recipients.cf,
...

Postfixはバージョン3.7以降、正規表現をインラインで指定できます。テーブルが非常に短いので、次のようになるかもしれません。

smtpd_recipient_restrictions =
...
    check_recipient_access regexp:{ { !/.*@example\.com/ REJECT } },
...

追加ファイルはありません。


気をつけて。必要には他の制限項目があります。この設定をそのままにしておくと、このパラメータや他のパラメータ(など)*@example.comで対策を講じないと、サーバーが へのオープンリレーになる可能性があります。smtpd_*_restrictionsreject_sender_login_mismatch

関連情報