The OpenNET Project / Index page

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



"Nginx SMTP-прокси и виртуальные домены"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid, Tor и прокси серверов (Другие proxy)
Изначальное сообщение [ Отслеживать ]

"Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от nopsemail (ok), 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) трафиком?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от nopsemail (ok), 20-Мрт-19, 11:02 
Еще нашел такую статью на хабре: 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?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от vg (??), 20-Мрт-19, 19:12 
Отправка должна работать для обоих доменов?
Я бы договорился с провайдером чтобы получить еще один IP для второго домена
Тогда все будет просто

или же правильную конфигурацию майл сервера для работы с несколькими доменами

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от nopsemail (ok), 22-Мрт-19, 11:38 
> Отправка должна работать для обоих доменов?
> Я бы договорился с провайдером чтобы получить еще один IP для второго
> домена
> Тогда все будет просто
> или же правильную конфигурацию майл сервера для работы с несколькими доменами

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от fantom (??), 22-Мрт-19, 11:45 
>[оверквотинг удален]
> для предприятий на базе Zimbra. Решение бесплатное и его продавать я
> не собираюсь, а продавать хостинг, где будет работать этот сервак и
> как следствие я буду его админить, за определенные деньги, я хочу.
> Но я не хочу городить огород на одном сервере. Хочу для каждого
> отдельного клиента делать отдельную виртуалку, но для этого мне нужно будет
> разруливать почту по доменам.
> Как я вас понял и изучил массу литературы, мой вариант я могу
> решить только установкой почтового релея, который будет определять домен и перенаправлять
> почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix
> или exim...

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

nginx с модулем imap и проксируйте наздоровье, правда разгребалку доменов придется скорее всего самому ваять.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от nopsemail (ok), 22-Мрт-19, 11:51 
>[оверквотинг удален]
>> разруливать почту по доменам.
>> Как я вас понял и изучил массу литературы, мой вариант я могу
>> решить только установкой почтового релея, который будет определять домен и перенаправлять
>> почту на тот сервер, который обрабатывает этот домен, будь-то sendmail, postfix
>> или exim...
> Можно и так...
>> Я верно мыслю?
>> Если да, то как быть с IMAP-перенаправлением, основываясь на домене?
> nginx с модулем imap и проксируйте наздоровье, правда разгребалку доменов придется скорее
> всего самому ваять.

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

3. "Nginx SMTP-прокси и виртуальные домены"  +/
Сообщение от universite (ok), 20-Мрт-19, 21:01 
> Нужно, чтобы входящие письма для домена domain.ru переправлялись на "сервер1", а для
> example.com на "сервер2".

В почтовом сервере sendmail это делается несколькими строчками.
Еще как вариант, использовать procmail-fetchmail.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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