LINUX.ORG.RU
ФорумAdmin

Как настройка почтовый сервер для использования нескольких доменов и некольких ssl-сертификатов?

 , , , ,


0

1

Всем привет. Настраивал почтовый сервер на основе этой статьи. И все было хорошо и замечательно пока не пришла задача поднять еще несколько доменов для почтовых рассылок.

Тоесть ситуация такая 3 домена:

  • example.com - здесь обычная почтовая кореспонденция
  • subscribe.example.com - здесь различные почтовые рассылк
  • tech.example.com - здесь почтовые рассылки для тех. персонала

Сейчас сервер настроен только для домена example.com. А в частности и SSL-сертификат только на это имя. Как выяснилось postfix из коробки не умеет возможность использовать отдельный сертификат на отдельный домен. Не хотелось бы покупать wildcard сертификат только ради того что бы заставить работать почтовик на нескольких доменах.

В интернетах вычитал, что народ ставит в качестве прокси nginx (например тут), но что-то до меня не доходит как это работает. Почему все поголовно выключают опции imap_auth , smtp_auth и включают http_auth, с сылкой на какой-то урл, который вставляет парочку заголовков. Как вообще настроена связка здесь между nginx и postfix .

Итого есть несколько вопросов:

  • Реально ли вообще реализовать вышесказанное через nginx-proxy?
  • Существует ли другой способ реализовать задуманное, не поднимая еще один сервер и выделяя еще один IP-адрес

Заранее спасибо за помошь.


В твоем случае ничего не надо придумывать, так как сервер imap smtp у тебя один: mail.example.com У тебя же клиенты подключаются к одному серверу по одному имени в настройках программы.

uspen ★★★★★
()
Ответ на: комментарий от uspen

Не совем понял что рекомендуешь. Сейчас у меня ситуация такая:

# A records
example.com                IN	A	176.123.123.100
mx.example.com             IN	A	176.123.123.100

subscribe.example.com      IN	A	176.123.123.100
mx.subscribe.example.com   IN	A	176.123.123.100

# MX records
example.com                IN	MX      mx.example.com
subscribe.example.com      IN	MX      mx.subscribe.example.com

Клиенты для корепсонденции цепляются просто на smtp и imap по адресу: example.com

Я так понимаю ты предлагаешь создать поддомен mail.example.com и итоговые записи dns сформировать следующим образом:

# A records
example.com                IN	A	176.123.123.100
mail.example.com           IN	A	176.123.123.100
mx.example.com             IN	A	176.123.123.100

subscribe.example.com      IN	A	176.123.123.100

# MX records
mail.example.com           IN	MX      mx.example.com
subscribe.example.com      IN	MX      mx.example.com

Правильно я тебя понял?

gudron
() автор топика
Ответ на: комментарий от uspen

Для обычной пользовательской переписки мне нужно что бы почта отправлялась с домена example.com, например с адреса vasya@example.com

Так же будут делаться массовые рассылки , это различные маркетинг и просто пользовательские уведомления клиентов. Эти массовые рассылки должны быть отправлены с домена: subscribe.example.com, например с адреса noreply@subscribe.example.com

В дальнейшем, конечно домен subscribe.example.com мигрируется на другой IP-адрес, как того рекомендуют mail.ru/yandex/gmail в руководстве по рассылкам. Но на данный момент хочу сделать следующее

  • для домена example.com - покупаю сертификат.
  • для домена subscribe.example.com - использую самоподписной сертификат.

сейчас уперся в то что postfix/dovecot из коробки работают только с один сертификатом.

так же пытаюсь понять, что рекомендуешь ты.

gudron
() автор топика

Все работают всегда только с одним сертификатом. Проверка сертификатов происходит при SSL хендшейке, на этом этапе postfix/dovecot/nginx/apache не могут определить для какого домена устонавливается соединение, поэтому могут выдать только какойто 1 конкретный сертификат из конфига. Как вариант Вы можете получить универсальный сертификат на домен *.example.com Или принимать все входящие соединения по 1 домену mail.example.com (например).

zaz ★★★★
()
Ответ на: комментарий от uspen

Я не слишком компетентен в вопросе. Но сертификат может понадобиться еще для чего-то кроме как для подключения клиентов по smtp/imap? Если не сложно объясните что значит сертификат для использования между MTA.

Конкретно мне да, нужно что бы сотрудники могли подключаться через свой удобный для них почтовый клиент к домену example.com, и при этом у них не выскакивал никакой Warning, о том что сертификат не валидный.

gudron
() автор топика
Ответ на: комментарий от gudron

Давай я сделаю небольшой вброс, который возможно перевернет твое мировоззрение, но поможет решить проблему.

Чтобы получать почту с subscribe.example.com клиенту не обязательно идти на mail.subscribe.example.com.

Ты можешь слать с example.com от любого адреса, хоть от @example.com, хоть от @subscribe.example.com, тебе для этого не нужны новые сервера, адреса, сертификаты и прочее.

Возникают вопросы:

Есть рассыльщик (ты), шлешь ты откуда? Через сам сервер php/bash/python скриптом? Или из Outlook, используя сервер в качестве MTA?

Есть клиенты (люди), они получают почту на vasya@subscribe.example.com? Или на vasya@gmail.com куда твой почтовик ее пересылает?

В зависимости от этого давай подумаем, какие каналы ты хочешь защитить? В самом простом случае: рассылку ты делаешь сайтом на почтовик, находящийся на том же сервере и клиенты проверяют почту на том же сервере через вебмейл - тебе SSL вообще не нужен для почты нигде, можно прикрутить к Web интерфейсу почты.

Как ты понимаешь, защитить канал между пользователем и gmail.com ты тоже не сможешь, этим успешно занимается google. Защищать канал между сервером и mx.gmail.com - тебе тоже не имеет смысла, они сами между собой разберутся.

А теперь сформулируй что ты хочешь защитить, так как по текущей переписке, как я выше упомянул, вариантов так много что подсказать что-то стоящее не представляется возможным.

BaBL ★★★★★
()
Последнее исправление: BaBL (всего исправлений: 1)
Ответ на: комментарий от gudron

Создавай хоть милоион доменов, которые будет обслуживать твой сервер. И для подключения юзера user@firma.ru в настройках программы указывай mail.example.com в качестве imap smtp и так для всех и любых юзеров. Поэтому сертификат тебе нужен только для одного домена, к которому подключаются клиенты, потому что программа проверяет имя домена к которому она подключается в сертификате. Ясно?

uspen ★★★★★
()

Копай в сторону (Postfix)

Virtual

Alias

Generic

На счет сертификата я что то не понял, я создавал один сертификат (STARTTLS). И все, правда я не тестировал клиенскую часть через программы типа аутлука и т д , просто настройки делал под релай внутри сервера.

nixbrain
()
Ответ на: комментарий от BaBL

Спасибо за ответ. Итак что имеем:

  • Сферический онлайн-web-сервис в вакуме. Веб сервис предоставляется по адресу exampleweb.com у него отдельный сервер, отдельный ip, там nginx php все дела.
  • Сферический почтовый сервер, у него отедельный сервер, отдельный ip и отдельный домен examplemail.com и subscribe.examplemail.com

Рабочий персонал сервиса exampleweb.com имеет почтовые ящики в домене examplemail.com и ведет стандартную почтовую переписку с клиентами сервиса. Здесь не нужен никакой веб интерфес к почте. Только доступ через распространенные почтовые клиенты. При настройке почтового клиента недолжно быть никаких сообщений о валидности сертификата.

Домен subscribe.examplemail.com используется только для массовых почтовых рассылок. А именно почтовые уведомления которые автоматически будет формировать сервис exampleweb.com. И просто различные промо-акции и прочий спам.

Итого я так понимаю я могу сделать сертификат только для exampleweb.com , т.к. именно этот адрес будет выступать в качесте адреса smtp/imap сервера. И через этот же адрес я могу рассылать почту и с адресов из зоны *.examplemail.com.

gudron
() автор топика
Ответ на: комментарий от gudron

Домен subscribe.examplemail.com используется только для массовых почтовых рассылок. А именно почтовые уведомления которые автоматически будет формировать сервис exampleweb.com. И просто различные промо-акции и прочий спам.

Итого я так понимаю я могу сделать сертификат только для exampleweb.com , т.к. именно этот адрес будет выступать в качесте адреса smtp/imap сервера. И через этот же адрес я могу рассылать почту и с адресов из зоны *.examplemail.com.

Если я правильно понял, вам можно сделать еще проще. Рассылайте рассылку прямо с exampleweb.com (как правило, локальный mta там уже есть, либо exim в дебианах, либо postfix/senmail/ssmtp и т.д.) локальным почтовиком. Городить для этого дополнительный SMTP вовсе не нужно, в качестве отправителя ставьте email в зоне «@subscribe.examplemail.com», а в DNS examplemail.com укажите TXT spf1 запись, если уже есть - дополните:

subscribe.examplemail.com TXT «v=spf1 ip4:ip_exampleweb_servera»

эта запись говорит внешним серверам, что ip_exampleweb_servera является валидным сендером для зоны subscribe.examplemail.com.

Чтобы получать почту на subscribe.examplemail.com - надо указать MX на сервер examplemail.com, а если входящая не нужна - можете на это вообще забить и examplemail.com может не знать вообще ничего про subscribe.examplemail.com, для вашей задачи оно просто не нужно.

BaBL ★★★★★
()
Последнее исправление: BaBL (всего исправлений: 2)
Ответ на: комментарий от BaBL

Рассылайте рассылку прямо с exampleweb.com

Чет не очень решение на мой взгляд, там целый кластер, где отдельно сервер базы данных, отдельно кеширующие сервера. Веб сервер занимается веб и ничем больше, точка. зачем все яйца в одной корзине. плохой совет.

subscribe.examplemail.com TXT «v=spf1 ip4:ip_exampleweb_servera»

spf,dkim,dmarc,ptr уже настроил. проходит валидацию всех основноых почтовых провайдеров.

subscribe.examplemail.com

Здесь мне ее вокурат получать и не нужно. зачем получать почту на домене который для массовых рассылок.

В любом случае спасибо за ответ.

gudron
() автор топика
Ответ на: комментарий от gudron

Чет не очень решение на мой взгляд, там целый кластер, где отдельно сервер базы данных, отдельно кеширующие сервера. Веб сервер занимается веб и ничем больше, точка. зачем все яйца в одной корзине. плохой совет.

Какие такие яйца? Вы сейчас для рассылки используете 2 сервера. Готовите ее и жмете кнопку «послать» на сервере exampleweb.com (или же по крону рассылаете), по вашей схеме все равно он рассылает, просто через другой сервер, долбя еще в промежутке внутреннюю сеть. Хотя почти всегда из коробки умеет это делать и сам. В вашей схеме больше шанс отказа. Если ляжет мейлсервер - рассылка не уйдет. Если ляжет вебсервер - рассылка все равно не уйдет, в чем смысл? Если у компании есть корпоративный емейл и 150 сайтов на хостингах, вы думаете эта компания все 150 сайтов цепляет на свой корпоративный мейл? Нет. Только spf'ки и сайты сами все шлют, они становятся инкапсулированными и не имеют одной точки, которая может угробить их все.

Но я все равно не понимаю куда вы хотели прицепить «второй» SSL сертификат.

BaBL ★★★★★
()
Последнее исправление: BaBL (всего исправлений: 1)

В общем в итоге плюнули. Сделали следующим образом: сейчас 2 почтовых сервера каждый на отдельном домене и отдельном IP-адресе.

DNS записи имеют вид:

# mail.examplemail.com - A
mail.examplemail.com. 21600	IN	A	176.123.100.100
mx.mail.examplemail.com. 21527 IN	A	176.123.100.100

# mail.examplemail.com - MX
mail.examplemail.com. 21466	IN	MX	10 mx.mail.examplemail.com

# mail.examplemail.com - TXT
mail.examplemail.com. 21600	IN	TXT	«v=spf1 include:_spf.examplemail.com ~all»

# _spf.examplemail.com - TXT
spf.examplemail.com.	5291	IN	TXT	«v=spf1 ip4:176.123.100.100 ip4:176.123.100.101 ~all»


# examplemail.com - A
examplemail.com. 21600	IN	A	176.123.100.101
mx.examplemail.com. 21527 IN	A	176.123.100.101

# examplemail.com - MX
examplemail.com. 21466	IN	MX	10 mx.examplemail.com

# examplemail.com - TXT
examplemail.com. 21600	IN	TXT	«v=spf1 include:_spf.examplemail.com ~all»

mx.mail.examplemail.com - обслуживает сейчас все ранее описанные поддомены для рассылок (notify|subscribe|tech.examplemail.com)

mx.examplemail.com - обслуживаем обычныю почтовую кореспонденцию. и для него покупаем сертификат.

В итоге выполнили требования большинства почтовых провайдеров о том что рассылки и простая почтовая кореспонденция должна быть организована с разных ip и доменов.

gudron
() автор топика
Ответ на: комментарий от BaBL

в том то и дело что до недавного времени для почты использовался только 1 сервер,а рассылать сообщения нужно было с двух доменов. и только недавно решили выделить второй.

налицо в общем-то мое плохое знание матчасти. думал что для каждого поддомена нужно использовать отдельный сертификат. ну или покупать wildcard сертификат на неограниченное кол-во доменов.

более/менее изучил вопрос.

gudron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.