
Я установил Postfix на машине с Ubuntu 20.04. Однако я не уверен, где мне использовать поддомен, а где домен. Давайте назовем их mail.example.com
и example.com
соответственно.
Система является нулевым клиентом, отправляющим электронные письма, но не получающим их (реализовано через inet_interfaces = loopback-only
) /etc/postfix/main.cf
. Я намерен отправлять сообщения [email protected]
исключительно из .
- Запись MX —
@ IN MX 0 mail.example.com
. - Записи для обоих
@
указываютmail
на сервер Postfix. - Сертификаты 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/etc/postfix/main.cf
, чтобы заменитьmail.example.com
in[email protected]
наexample.com
. Почему-то это не работает. Письма все равно приходят от отправителя[email protected]
.
Соответственно, вопросы следующие:
- Обязательно ли использовать
@
илиmail
в записи MX? - Должны ли сертификаты 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 .
, т.е. указывают в никуда. Это явное указание на то, что вы не собираетесь получать почту для[email protected]
. Это не обязательно, если вы защищаете службу smtpd пустого хоста от внешних подключений (брандмауэрtcp/25
, только прослушиваниеlocalhost:25
и т.д.); однако явное всегда лучше неявного.- этот нулевой хост собирается отправить почту, которая устанавливается
example.com
как домен отправителя, поэтому его почта должна подчиняться настройкам DMARC для этого домена. В противном случае корректно работающие получатели будут отбрасывать его почту.
Этот последний пункт, DMARC, может значительно усложнить ситуацию. Если он установлен безопасно, что означает, что запись выглядит как _dmarc.example.com. TXT "v=DMARC1; p=reject; pct=100; ..."
, вам нужно будет настроить подписывание SPF и DKIM на нулевом хосте. SPF прост, просто добавьте "a:nullhost.example.com" в запись SPF TXT. DKIM сложен, вам нужно будет создать дополнительную пару ключей DKIM, выбрать селектор ( nullhost
вероятно, подойдет), установить его публичную пару в DNS как nullhost._domainkey.example.com. TXT "... key data ..."
. Затем настройте подписывание с соответствующим закрытым ключом непосредственно на нулевом хосте (и используйте выбранный селектор), я бы использовал opendkim для этого. Я упоминал, что использование смарт-хоста является предпочтительным методом?
И ваши вопросы.
- Вы не сервер (вы сказали, что эта система не должна получать почту). Поэтому вам не нужен никакой сертификат сервера TLS. Вы можете настроить все с помощью сертификата клиента TLS, так что когда вы подключаетесь к своему смарт-хосту или к другим серверам через TLS, вы сможете представить его. Но зачем вам это делать?
- Запись «apex»
@ MX
, также известная какexample.com. MX
, должна быть направлена на example.comмайл еИксchanger (система, которая получает почту для[email protected]
). Это не имеет ничего общего с почтой для любого поддомена. Каждый поддомен является почтовым доменом сам по себе. - Как настроить переписывание адресов — решать вам. Единственное, что видит внешний мир — это конечный результат. Так зачем же делать это в два этапа?