The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
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)
    • Nginx SMTP-прокси и виртуальные домены, !*! nops, 11:38 , 22-Мрт-19 (4)
      > Отправка должна работать для обоих доменов?
      > Я бы договорился с провайдером чтобы получить еще один IP для второго
      > домена
      > Тогда все будет просто
      > или же правильную конфигурацию майл сервера для работы с несколькими доменами

      На самом деле, у меня есть предложение клиентам, о предоставлении корпоративной почты для предприятий на базе Zimbra. Решение бесплатное и его продавать я не собираюсь, а продавать хостинг, где будет работать этот сервак и как следствие я буду его админить, за определенные деньги, я хочу.
      Но я не хочу городить огород на одном сервере. Хочу для каждого отдельного клиента делать отдельную виртуалку, но для этого мне нужно будет разруливать почту по доменам.
      Как я вас понял и изучил массу литературы, мой вариант я могу решить только установкой почтового релея, который будет определять домен и перенаправлять почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix или exim...

      Я верно мыслю?
      Если да, то как быть с IMAP-перенаправлением, основываясь на домене?

      • Nginx SMTP-прокси и виртуальные домены, !*! fantom, 11:45 , 22-Мрт-19 (5)
        • Nginx SMTP-прокси и виртуальные домены, !*! nops, 11:51 , 22-Мрт-19 (6)
          >[оверквотинг удален]
          >> разруливать почту по доменам.
          >> Как я вас понял и изучил массу литературы, мой вариант я могу
          >> решить только установкой почтового релея, который будет определять домен и перенаправлять
          >> почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix
          >> или exim...
          > Можно и так...
          >> Я верно мыслю?
          >> Если да, то как быть с IMAP-перенаправлением, основываясь на домене?
          > nginx с модулем imap и проксируйте наздоровье, правда разгребалку доменов придется скорее
          > всего самому ваять.

          Так Nginx-ом понятно как и что, а вот как быть с доменами... Наверняка же есть уже решения на этот счет.

  • Nginx SMTP-прокси и виртуальные домены, !*! universite, 21:01 , 20-Мрт-19 (3)



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру