
Ubuntu 20.04 マシンに Postfix をセットアップしました。ただし、サブドメインをどこで使用し、ドメインをどこで使用する必要があるかわかりません。それぞれをmail.example.com
と と呼ぶことにしますexample.com
。
このシステムは null クライアントであり、電子メールを送信しますが、受信はしません ( で を介して実装されていますinet_interfaces = loopback-only
) /etc/postfix/main.cf
。 からのみメッセージを送信するつもりです[email protected]
。
- MX レコードは です
@ IN MX 0 mail.example.com
。 - 両方のレコードは
@
Postfixmail
サーバーを指します。 - に記載されている TLS 証明書は、およびを
/etc/postfix/main.cf
参照しますmail.example.com
。smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
- をに
smtp_generic_maps = hash:/etc/postfix/generic
書き直します。user@hostname
[email protected]
/etc/postfix/main.cf
masquerade_domains = example.com
in を追加して、 inを に/etc/postfix/main.cf
置き換えました。 どういうわけか、うまくいきません。 メールは送信者 から引き続き届きます。mail.example.com
[email protected]
example.com
[email protected]
質問は次のとおりです。
- MX レコードで
@
は または を使用する必要がありますか?mail
- TLS 証明書は を参照する
mail.example.com
か を参照する必要がありますかexample.com
? /etc/postfix/generic
まず に変換するuser@hostname
か[email protected]
、直接 に変換するか[email protected]
?
答え1
現在、これを行う最も正しい方法は、サービス提供用に完全に構成された適切なメール サービスにアカウントを作成することですexample.com
。(もちろん、これは独自のサーバーでもかまいません。) 次に、ヌル ホストで、メール サーバーを SASL 認証を使用してスマート ホストとしてのみ構成します。
Postfix をこのように設定することは完全に可能ですが (Postfix 自身のマニュアルを含め、多くのマニュアルが存在します)、このような用途には Postfix は過剰だと思います。 の使用を検討してくださいnullmailer
。これは、システム通知の発信以外、メールを一切処理しないシステムにまさに適しています。
それが不可能な場合は、次のように DNS を設定します。
example.com
MX レコードは適切なメール サービスを指します。サブドメインとは関係ありません。nullhost.example.com. MX 10 .
、つまり、どこにも指していません。これは、 宛てのメールを一切受信しないという明示的な表示です。nullホストの smtpd サービスを外部接続から保護する場合 (ファイアウォール、listen on only など)、[email protected]
これは必須ではありません。ただし、明示的な方が暗黙的なよりも常に優れています。tcp/25
localhost:25
- このヌル ホストは送信者ドメインとして設定されたメールを送信するため
example.com
、そのメールはそのドメインの DMARC 設定に従う必要があります。そうでない場合、正しく動作する受信者はメールをドロップします。
この最後のポイント、DMARC は、事態をかなり複雑にする可能性があります。安全に設定されている場合、つまりレコードが のように見える場合_dmarc.example.com. TXT "v=DMARC1; p=reject; pct=100; ..."
、ヌル ホストで SPF および DKIM 署名を設定する必要があります。SPF は簡単で、SPF TXT レコードに「a:nullhost.example.com」を追加するだけです。DKIM は難しく、追加の DKIM キー ペアを作成し、セレクター (nullhost
おそらくこれで十分) を選択し、その公開ペアを として DNS にインストールするnullhost._domainkey.example.com. TXT "... key data ..."
必要があります。次に、対応する秘密キーを使用してヌル ホストで直接署名を構成します (選択したセレクターを使用します)。そのためには、opendkim を使用します。スマート ホストの使用が推奨される方法だと言いましたか?
そして、あなたの質問。
- あなたはサーバーではありません (このシステムはメールを受信しないはずだとおっしゃっています)。したがって、TLS サーバー証明書は必要ありません。TLS クライアント証明書を使用して設定すれば、スマート ホストまたは TLS 経由で他のサーバーに接続するときにそれを提示できます。しかし、なぜそうする必要があるのでしょうか?
- 「apex」レコード
@ MX
(別名)は、example.com. MX
example.comのメートルすべてのバツチェンジャー ( 宛てのメールを受信するシステム[email protected]
)。サブドメインのメールとは関係ありません。各サブドメインはそれぞれ独自のメール ドメインです。 - アドレス書き換えの設定方法はあなた次第です。外部から見えるのは最終結果だけです。では、なぜわざわざ 2 つの手順で行う必要があるのでしょうか?