LINUX.ORG.RU
решено ФорумAdmin

NGINX в роли почтового прокси-сервера для локалки, у которой нет прямого и нат- интернета

 , ,


0

2

Всем моё почтение!

Дано: унаследованная большая локалка, у которой нет NAT-а.

Найти: решение цепляться к GMAIL-серверам без изменения настроек корневого маршрутизатора посредством прикладных программ MUA по протоколам SMTPS, IMAPS, POP3S.

Пример решения:

В хозяйстве есть подсобный работающий Linux-роутер, на который можно поставить NGINX в роли почтового прокси, у него есть белый IP-адрес, а также серые адреса из локалки, которую он должен обслуживать. т.е нет проблем с доступом ни в интернет, ни в локалку. Как настраивать NGINX написано например тут: https://www.nginx.com/resources/wiki/start/topics/examples/imapproxyexample/

Обязательное условие — сервер auth_http, который будет на основании запросов почтового клиента говорить, к какому почтовому серверу должен подключаться наш прокси-сервер. Очень дельную документацию и пример кода на PHP нашел вот тут: https://www.nginx.com/resources/wiki/start/topics/examples/imapauthenticatewi... а вот тут: https://nginx.org/ru/docs/mail/ngx_mail_auth_http_module.html описано то, как работает взаимодействие нашего почтового прокси NGINX с auth_http в общих чертах

Также, у этого Linux-роутера есть SSL-сертификаты от letsencrypt.org, которые проверены в работе.

Вопросы к примеру:

  • правилен ли выбранный мной путь, то есть будет ли оно работать?
  • как указывать параметр Auth-Server: не по IP-адресу, а по имени хоста? Везде в примерах указано по IP-адресу, и меня это смущает. Будет ли работать указание по имени хоста, или я должен в этом PHP-скрипте сам делать DNS запросы, а потом по какому-то алгоритму выбирать нужный IP-адрес?
  • можно ли тупо отдать этим скриптом хост (или IP-адрес) и порт, не делая никаких проверок?
★★★★★

Последнее исправление: Infra_HDC (всего исправлений: 2)

Нашел такую тему, ответил участник проекта NGINX, Maxim Dounin:

The SMTP backend is not mine, I use gmail or something else, what should i
do? Just : «xclient on;» ?

If the backend isn't your, then nginx mail proxy is a wrong thing to use.

См. https://forum.nginx.org/read.php?2,257510,257536#msg-257536

Перевожу на русский: если бэкенд (т.е. конечный почтовый сервер) — не ваш, то использование почтового прокси NGINX — неправильный путь.

Походу, тему можно закрывать ...

Infra_HDC ★★★★★
() автор топика
Последнее исправление: Infra_HDC (всего исправлений: 1)
1 марта 2018 г.

Найти: решение цепляться к GMAIL-серверам без изменения настроек корневого маршрутизатора посредством прикладных программ MUA по протоколам SMTPS, IMAPS, POP3S.

Надо из локалки подключаться к gmail? При чем тут nginx тогда вообще, почему нат не настроить?

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

Здесь вы правы. Если бы было можно так просто настроить NAT, и это было бы отражено в «Дано» данной задачи, то это уже была бы совсем другая задача.

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

Ваш вопрос IMHO уже выходит за рамки экспертного метода оценки.

Не совсем понял, в чем особенность своего и чужого SMTP. Использовать nginx в качестве почтового прокси можно с разными целями, например, не трогая настройки клиентских компьютеров, отправлять почту сначала от имени внешнего домена domain1.com, а потом от имени domain2.org, который «прицеплен» к gmail, yandex или к чему еще.

Что тут выходящего за рамки?

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

Потому что в данном случае эксперты предлагают свои конструктивные решения (а не комментируют чужие), либо я выкладываю сюда то, что нашел в нете.

Infra_HDC ★★★★★
() автор топика

Еще вариант для размышлений: делегировать внутренним серверам локалки две зоны для доменов третьего уровня, то есть для каждого из адресов: imap.gmail.com и для smtp.gmail.com, потом прописать в каждой из этих файлов зон @ IN A <айпишник-прокси-сервера>.

Казалось бы все гениально и просто. Как я до этого раньше не догадался?

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

Спасибо за ответы. Принял решение просто не связываться со всем этим огородом костылей, которые разработаны просто немного для иных (не моих целей). Просто мне это не подходит. Лучше так, чем чинить трактор перфоратором.

billybons2006
()

то есть функционал проксирования почты в nginx чисто для балансировки нагрузки на свои сервера? то есть то же, что и обратный прокси? почему тогда не назвали обратный почтовый прокси (reverse mail proxy), ведь в случае прямого проксирования почты мы из внутренней сети запрашиваем письма из mail.ru, yandex.ru, gmail.com с кэшированием.

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