SMTP AUTH(ポート587のSTARTTLS)を使用してPostfixサーバーをセットアップしました。すべてのユーザーは「example.org」というドメインに属しています。送信者アドレスを「[email protected]」に強制したい。
これはmain.cfオプションで達成できることを学びました
smtpd_sender_restrictions = reject_sender_login_mismatch, ...
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps
次のようなlogin_mapsファイルを使用します。
[email protected] a
[email protected] b
[email protected] c
...
( SMPT AUTHによる送信者アドレスのなりすましのブロック も参照)しかし、これは、新しいユーザーが増えるたびにlogin_mapsファイルを編集する必要があることを意味します。このような柔軟なマッピングは必要ありません。常に "[email protected]"である必要があります。より簡単なオプションはありますか?
最初に、コマンドpostconf -m
を入力してpcre
が含まれている行を探し、Postfixのインストールがpcreをサポートしているかどうかを確認します。 pcreサポートがあることを確認したら、次のように実行できます。
/etc/postfix/login_maps.pcre
:
/^(.*)@example\.org$/ ${1}
main.cf
:
smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre
これは正常に動作するはずです。
他の回答に記載されている正規表現は、メールアドレスのユーザー部分(logged-in-user@example.org)と一致します。ここにいくつかの追加情報があります。
完全なメールアドレスをユーザー名として使用するには、次の正規表現を使用します(例:/etc/postfix/login_map
):
/^(.*)$/ ${1}
これは、ユーザー名が常に完全なメールアドレスであることを意味します([email protected])-他の既存のユーザー名からの送信は許可されませんそのアドレス-ユーザーを追加するたびに追加のPostfix設定ファイルを更新する必要はありません。
これは、複数のドメインが構成されているサーバーで使用される場合があります。ユーザー[email protected]は、そのアドレスからの送信のみが許可され、john.doe @からの送信は許可されませんexample.org(別のユーザーとメール、別の人)。この場合、ユーザー名john.doeはあいまいになります。
また、構成によっては、このファイルをポイントする必要があるsmtpd_sender_login_maps設定が(main.cfではなく)master.cfにある場合があります。公式 Dovecotのドキュメントには次の例があります (SASL/submissionを使用している場合):
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
この例では、正しいファイルを指すように設定を調整し、タイプとして正規表現または(より良い)pcreを使用する必要があります。特に、「virtual」というファイルが既に別の目的で使用されている場合(たとえば、公式のPostfixの例に示されている virtual_alias_mapsの場合 )、ログインマッピングには別のファイルを使用する必要があります。
から:
smtpd_sender_login_maps=hash:/etc/postfix/virtual
に:
smtpd_sender_login_maps=pcre:/etc/postfix/login_map
以下に示すように、ヘッダーで正規表現の組み合わせを使用できますか http://www.akadia.com/services/postfix_uce.html ?次に、[* @ example.org]のような正規表現と組み合わせて、example.orgからの送信者のみを確認できます。