Nginx SMTP-прокси и виртуальные домены, nops, 20-Мрт-19, 09:20 [смотреть все]Доброго дня коллеги. Задался вопросом. Есть у меня в локалке почтовик. Работает чудно, на роутере проброшены порты и все чудесно работает не один год, но сейчас появилась необходимость поставить второй почтарь, для клиента, свой собственный и разместить его в моей же локалке. Задача: настроить smtp+imap прокси для распределения почты по нужным серверам. Нашел во такую статейку: https://www.dmosk.ru/miniinstruktions.php?mini=nginx-proxy-mail но там про авторизацию пользователей, для балансировки нагрузки, но это не то что мне нужно. Итак вводные: Роутер с белым IP. сервер1 (стоит внутри сети с серым IP) - почтовик для домена domain.ru сервер2 (стоит внутри сети с серым IP) - почтовик для домена example.comНужно, чтобы входящие письма для домена domain.ru переправлялись на "сервер1", а для example.com на "сервер2". Как и чем можно такое реализовать. Есть FreeBSD, на котором развернут Nginx+php-fpm+mysql он же прорисует веб-морду почтовика, с этим все просто, а как быть с smtp? Да, кстати, через прокси нужно не только получать почту от других почтовых серверов, но и подключаться снаружи почтовыми клиентами. Подскажите пожалуйста решение. Пока суть до дела, нашел статейку: https://www.vcloudnine.de/load-balancing-inbound-smtp-connec.../ В ней описывается балансировка между двумя почтовыми серверами, но так же я могу не только балансировать, а распределять почту исходя из домена получателя? Вот кусок кода: > mode tcp > no option http-server-close > balance roundrobin > option smtpchk HELO mail.terlisten-consulting.de > server mail1 192.168.200.107:25 send-proxy check > server mail2 192.168.200.108:25 send-proxy check Тут я понимаю, что анализирую весь TCP-трафик. В данном случае интересует строчка: option smtpchk HELO mail.terlisten-consulting.de Как я понимаю, поправьте меня, если я ошибаюсь, данной правило срабатывает, то есть передается весь TCP, если срабатывает обращение HELO mail.terlisten-consulting.de Простите, с английским беда. Другими словами, если обращение будет к другому серверу, то все замечательно будет срабатывать, вот так: > mode tcp > no option http-server-close > balance roundrobin > option smtpchk HELO mail.domain.ru > server mail1 10.10.10.1:25 send-proxy check > mode tcp > no option http-server-close > balance roundrobin > option smtpchk HELO mail.example.com > server mail2 10.10.20.1:25 send-proxy check Я правильно мыслю? если да, то другой вопрос, если на этом же сервере работает Nginx, то не будет ли проблем с http(s) трафиком?
|
- Nginx SMTP-прокси и виртуальные домены, nops, 11:02 , 20-Мрт-19 (1)
Еще нашел такую статью на хабре: https://habr.com/ru/sandbox/34354/ Из описания: >[оверквотинг удален] > acl is_site3 hdr_dom(host) -i site3 > acl is_cdn hdr_dom(host) -i cdn > acl is_cdnt hdr_dom(host) -i cdnt > acl is_site4 hdr_dom(host) -i site4 > use_backend site1_cluster1 if is_site1 > use_backend site2_cluster1 if is_site2 > use_backend site3_cluster1 if is_site3 > use_backend cdn_cluster1 if is_cdn > use_backend cdnt_cluster1 if is_cdnt > use_backend site4_cluster1 if is_site4Понимаю, что при условии(сейчас на свою ситуацию примастырю), что если обращение идет на domain.ru, то грубо говоря, отработает строчка acl is_site1 hdr_dom(host) -i domain.ru и как итог выберется backend site1_cluster: use_backend site1_cluster1 if is_site1 Ну а дальше в разделе backend я прописываю нужно сервера. Другими словами, я все проверки провожу в разделе frontend, где разбираю какой хост используется и направляю на нужный backend. Или это работать будет только http трафиком, так как там в запросе указывается имя домена. При SMTP сначала идет приветствие helo mail.server.ru. к серверу, который указан в mx-записи dns или возможно прописать smtpchk HELO mail.domain.ru; и для каждого из доменов прописываться свой MX?
- Nginx SMTP-прокси и виртуальные домены, vg, 19:12 , 20-Мрт-19 (2)
Отправка должна работать для обоих доменов? Я бы договорился с провайдером чтобы получить еще один IP для второго домена Тогда все будет простоили же правильную конфигурацию майл сервера для работы с несколькими доменами
- Nginx SMTP-прокси и виртуальные домены, nops, 11:38 , 22-Мрт-19 (4)
> Отправка должна работать для обоих доменов? > Я бы договорился с провайдером чтобы получить еще один IP для второго > домена > Тогда все будет просто > или же правильную конфигурацию майл сервера для работы с несколькими доменами На самом деле, у меня есть предложение клиентам, о предоставлении корпоративной почты для предприятий на базе Zimbra. Решение бесплатное и его продавать я не собираюсь, а продавать хостинг, где будет работать этот сервак и как следствие я буду его админить, за определенные деньги, я хочу. Но я не хочу городить огород на одном сервере. Хочу для каждого отдельного клиента делать отдельную виртуалку, но для этого мне нужно будет разруливать почту по доменам. Как я вас понял и изучил массу литературы, мой вариант я могу решить только установкой почтового релея, который будет определять домен и перенаправлять почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix или exim... Я верно мыслю? Если да, то как быть с IMAP-перенаправлением, основываясь на домене?
- Nginx SMTP-прокси и виртуальные домены, fantom, 11:45 , 22-Мрт-19 (5)
>[оверквотинг удален] > для предприятий на базе Zimbra. Решение бесплатное и его продавать я > не собираюсь, а продавать хостинг, где будет работать этот сервак и > как следствие я буду его админить, за определенные деньги, я хочу. > Но я не хочу городить огород на одном сервере. Хочу для каждого > отдельного клиента делать отдельную виртуалку, но для этого мне нужно будет > разруливать почту по доменам. > Как я вас понял и изучил массу литературы, мой вариант я могу > решить только установкой почтового релея, который будет определять домен и перенаправлять > почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix > или exim...Можно и так... > Я верно мыслю? > Если да, то как быть с IMAP-перенаправлением, основываясь на домене? nginx с модулем imap и проксируйте наздоровье, правда разгребалку доменов придется скорее всего самому ваять.
- Nginx SMTP-прокси и виртуальные домены, nops, 11:51 , 22-Мрт-19 (6)
>[оверквотинг удален] >> разруливать почту по доменам. >> Как я вас понял и изучил массу литературы, мой вариант я могу >> решить только установкой почтового релея, который будет определять домен и перенаправлять >> почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix >> или exim... > Можно и так... >> Я верно мыслю? >> Если да, то как быть с IMAP-перенаправлением, основываясь на домене? > nginx с модулем imap и проксируйте наздоровье, правда разгребалку доменов придется скорее > всего самому ваять.Так Nginx-ом понятно как и что, а вот как быть с доменами... Наверняка же есть уже решения на этот счет.
- Nginx SMTP-прокси и виртуальные домены, universite, 21:01 , 20-Мрт-19 (3)
> Нужно, чтобы входящие письма для домена domain.ru переправлялись на "сервер1", а для > example.com на "сервер2".В почтовом сервере sendmail это делается несколькими строчками. Еще как вариант, использовать procmail-fetchmail.
|