настройка локального mail на роутере
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
настройка локального mail на роутере
Есть домен mysite.ru, в нем есть почтовый сервер mail.mysite.ru
На роутере установлен apache/php/mysql - крутится сайт. Соотв. имя mysite.ru привязано к ip роутера.
mail.mysite.ru это другой хост в локальной подсети.
Имена почтовых ящиков прописываются как user@mysite.ru
Когда клиенты подключаются снаружи, у них прописан внешний ip mx-зоны, и почта divert'ится на mail.mysite.ru
Когда клиенты заходят изнутри, в днс mail.mysite.ru прописан его внутренний ip, и почта тоже доставляется.
А вот когда я пытаюсь отправить почту с роутера на внутренние адреса, она не доставляется:
Я пишу: >mail user@mysite.ru
И в результате приходит письмо с ошибкой: 554 5.0.0 MX list for mysite.ru. points back to router.mysite.ru
Логично, потому что он действительно туда указывает - MX зона ссылается на роутер.
Вопрос, что тут можно придумать?
Как я понимаю, ошибку возвращает не почтовик, а сам роутер?
Может, можно как-нибудь указать ему, чтобы он использовал при отправке требуемый smtp-сервер? Или прописать в настройках почты роутера, что mysite.ru на самом деле должен указывать на mail.mysite.ru?
Вроде бы, ситуация довольно типичная, как тут лучше сделать?
На роутере установлен apache/php/mysql - крутится сайт. Соотв. имя mysite.ru привязано к ip роутера.
mail.mysite.ru это другой хост в локальной подсети.
Имена почтовых ящиков прописываются как user@mysite.ru
Когда клиенты подключаются снаружи, у них прописан внешний ip mx-зоны, и почта divert'ится на mail.mysite.ru
Когда клиенты заходят изнутри, в днс mail.mysite.ru прописан его внутренний ip, и почта тоже доставляется.
А вот когда я пытаюсь отправить почту с роутера на внутренние адреса, она не доставляется:
Я пишу: >mail user@mysite.ru
И в результате приходит письмо с ошибкой: 554 5.0.0 MX list for mysite.ru. points back to router.mysite.ru
Логично, потому что он действительно туда указывает - MX зона ссылается на роутер.
Вопрос, что тут можно придумать?
Как я понимаю, ошибку возвращает не почтовик, а сам роутер?
Может, можно как-нибудь указать ему, чтобы он использовал при отправке требуемый smtp-сервер? Или прописать в настройках почты роутера, что mysite.ru на самом деле должен указывать на mail.mysite.ru?
Вроде бы, ситуация довольно типичная, как тут лучше сделать?
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: настройка локального mail на роутере
спецЫ по системному sendmail есть на форуме?
на рутере ведь только стандартный sendmail установлен?

на рутере ведь только стандартный sendmail установлен?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
да, я почту на роутере вообще не настраивал - надо только письма про выполненные кроны отсылать и с веб-сервера. Как я понимаю, и то и другое просто команду sendmail вызывает...
-
- лейтенант
- Сообщения: 645
- Зарегистрирован: 2008-03-09 11:32:12
- Откуда: Москва
Re: настройка локального mail на роутере
По умолчанию sendmail отправляет почту только локально, тоесть между локальными пользователями.
Т.к. ты пишешь, что роутер у тебя работает как ретранслятор почты то это уже настройки не по умолчанию.
Смотри конфиги, можут у тебя впринципе запрещено доставлять почту на локальную машину(роутер).
Попробуй так:
В подобных случаях sendmail понимает, что почта доставляется локальному пользователю (если только на него не стоит алиас).
Если настраивал через m4 и .mc то проверь в нем наличие строки:
В целом конфигурация была изменена от той которая стояла по умолчанию и соответственно, что там настроено можешь знать только ты.
Т.к. ты пишешь, что роутер у тебя работает как ретранслятор почты то это уже настройки не по умолчанию.
Смотри конфиги, можут у тебя впринципе запрещено доставлять почту на локальную машину(роутер).
Попробуй так:
Код: Выделить всё
# mail userLocal
Если настраивал через m4 и .mc то проверь в нем наличие строки:
Код: Выделить всё
MAILER(local)
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
"почта divert'ится на mail.mysite.ru" - я имел в виду просто через ipfw:Gloft писал(а):По умолчанию sendmail отправляет почту только локально, тоесть между локальными пользователями.
Т.к. ты пишешь, что роутер у тебя работает как ретранслятор почты то это уже настройки не по умолчанию.
Смотри конфиги, можут у тебя впринципе запрещено доставлять почту на локальную машину(роутер).
Код: Выделить всё
divert ${nat_mail} tcp from any to ${oip} dst-port 25 in via ${oif}
divert ${nat_mail} tcp from ${mailip} 25 to any out via ${oif}
Все что я менял по сравнению со стандартной настройкой sendmail - прописал в /etc/mail/aliases алиас для рута: root: email@gmail.com
Пробую "mail root" - письмо приходит на этот внешний ящик без проблем.
И кстати приходит от имени root@router.mysite.ru (router это имя которое у меня прописано в hosts)
А вот как ему (sendmail'у) сказать, что письма на mysite.ru надо на самом деле отправлять на ip почтовика?
И еще вопрос: как поменять имя и хост отправителя, чтобы письма шли не с root@router.mysite.ru, а с mymail@mysite.ru ?
Как я понимаю, это все-таки настройки sendmail?
Хандбук про sendmail читал, ничего подходящего не нашел...
-
- лейтенант
- Сообщения: 645
- Зарегистрирован: 2008-03-09 11:32:12
- Откуда: Москва
Re: настройка локального mail на роутере
Почитай еще документацию там все есть.
Все что тебе взбредет в голову проделать с почтой sendmail это умеет.
Для маскарадинга есть макрос:
Тогда вся исходящая почта будет уходить от sendmail с заменой домена на mysite.ru
В руководстве рекомендуют исключить из маскарадинга пользователей root и Mailer-Daemon.
Т.к. ты сможешь идентифицировать ошибки и сообщений приходящие от этих пользователей и сопоставить их конкретному серверу.
Для этого необходимо добавить в конфигурационный файл:
Если ты трогал только файл алиасов, то sendmail настроен на примем локальной почты.
Тест который ты проделал (mail root), в данном случае не коректен, т.к. для него указан алиас и sendmail отработал так как и должен был.
Если есть локальный пользователь без алиаса на внешний почтовый ящик, то попробуй отправить почту ему и смотри что получится.
Все что тебе взбредет в голову проделать с почтой sendmail это умеет.
Для маскарадинга есть макрос:
Код: Выделить всё
MASQUERADE_AS(`mysite.ru')
В руководстве рекомендуют исключить из маскарадинга пользователей root и Mailer-Daemon.
Т.к. ты сможешь идентифицировать ошибки и сообщений приходящие от этих пользователей и сопоставить их конкретному серверу.
Для этого необходимо добавить в конфигурационный файл:
Код: Выделить всё
EXPOSED_USER(`root')
EXPOSED_USER(`Mailer-Daemon')
Тест который ты проделал (mail root), в данном случае не коректен, т.к. для него указан алиас и sendmail отработал так как и должен был.
Если есть локальный пользователь без алиаса на внешний почтовый ящик, то попробуй отправить почту ему и смотри что получится.
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
Разбирался с тем, что такое вообще sendmail, как его настраивать вообще, и в частности под freebsd.
И сформулировал для себя, что нужно сделать:
1. Настраиваемый sendmail будет использоваться ТОЛЬКО для отправки почты, и ТОЛЬКО с локальной машины (c внутренним ip 192.168.0.1)
2. Настраиваемый sendmail будет отправлять почту с собственного smtp-сервера - никаких релеев не нужно
3. Он будет отправлять почту и во внешний мир, и на внутренний корпоративный почтовик (с ip 192.168.0.11)
4. На роутере в ДНС прописано: mysite.ru - 192.168.0.1 (сам роутер), и mail.mysite.ru - 192.168.0.11 (корпоративный почтовик).
5. Надо, чтобы почта, идущая на user@mysite.ru попадала на mail.mysite.ru
6. Надо, чтобы при отправке почты в качестве адреса отправителя можно было указывать user@mysite.ru, с различными user
В данный момент я прописал MX-запись для внутреннего ДНС как mail.mysite.ru - 192.168.0.11 - в результате почта пытается туда идти, но не проходит из-за неправильного адреса отправителя: user@router.mysite.ru, а надо user@mysite.ru
MASQUERADE_AS как я понимаю меняет хост получателя, а не отправителя (во всяком случае письма на gmail приходят именно с получателем user@mysite.ru)
Кроме того, есть еще 1 вопрос:
тот же почтовик имеет 2-й домен: mysite2.ru, и на него тоже надо отправлять почту на mail.mysite2.ru - 192.168.0.11
И когда я пытаюсь отправлять почту на user@mysite2.ru - sendmail сразу говорит "User unknown", даже не пытаясь идти на 192.168.0.11, хотя настройки днс те же.
Правильно ли я понимаю, что по умолчанию sendmail при отправке письма на user@mysite2.ru должен сначала спрашивать у днс MX-запись для домена mysite2.ru, а потом туда отправлять письмо? Или как идет процесс определения хоста получателя?
И сформулировал для себя, что нужно сделать:
1. Настраиваемый sendmail будет использоваться ТОЛЬКО для отправки почты, и ТОЛЬКО с локальной машины (c внутренним ip 192.168.0.1)
2. Настраиваемый sendmail будет отправлять почту с собственного smtp-сервера - никаких релеев не нужно
3. Он будет отправлять почту и во внешний мир, и на внутренний корпоративный почтовик (с ip 192.168.0.11)
4. На роутере в ДНС прописано: mysite.ru - 192.168.0.1 (сам роутер), и mail.mysite.ru - 192.168.0.11 (корпоративный почтовик).
5. Надо, чтобы почта, идущая на user@mysite.ru попадала на mail.mysite.ru
6. Надо, чтобы при отправке почты в качестве адреса отправителя можно было указывать user@mysite.ru, с различными user
В данный момент я прописал MX-запись для внутреннего ДНС как mail.mysite.ru - 192.168.0.11 - в результате почта пытается туда идти, но не проходит из-за неправильного адреса отправителя: user@router.mysite.ru, а надо user@mysite.ru
MASQUERADE_AS как я понимаю меняет хост получателя, а не отправителя (во всяком случае письма на gmail приходят именно с получателем user@mysite.ru)
Кроме того, есть еще 1 вопрос:
тот же почтовик имеет 2-й домен: mysite2.ru, и на него тоже надо отправлять почту на mail.mysite2.ru - 192.168.0.11
И когда я пытаюсь отправлять почту на user@mysite2.ru - sendmail сразу говорит "User unknown", даже не пытаясь идти на 192.168.0.11, хотя настройки днс те же.
Правильно ли я понимаю, что по умолчанию sendmail при отправке письма на user@mysite2.ru должен сначала спрашивать у днс MX-запись для домена mysite2.ru, а потом туда отправлять письмо? Или как идет процесс определения хоста получателя?
-
- лейтенант
- Сообщения: 645
- Зарегистрирован: 2008-03-09 11:32:12
- Откуда: Москва
Re: настройка локального mail на роутере
Еще раз посмотрел параметр MASQUERADE_AS, и убедился, что он используются именно для исходящей почты.
Вот почитай http://www.intuit.ru/department/interne ... /11/6.html.
Если хочешь управлять доставкой писем внешние на внешний, внутренние на внутренний, то почитай о файле mailertable.
Хотя наверное это можно сделать и в конфиге sendmeail.
О втором домене.
Sendmeail надо объяснить, что он вообще обрабатывает такой домен, а уже потом настраивать маршрутизацию почты.
Думаю файлы local-host-names и virtusertable тебе помогут.
Вот посмотри http://www.freebsd.org/doc/ru_RU.KOI8-R ... dmail.html
Вот почитай http://www.intuit.ru/department/interne ... /11/6.html.
Если хочешь управлять доставкой писем внешние на внешний, внутренние на внутренний, то почитай о файле mailertable.
Хотя наверное это можно сделать и в конфиге sendmeail.
О втором домене.
Sendmeail надо объяснить, что он вообще обрабатывает такой домен, а уже потом настраивать маршрутизацию почты.
Думаю файлы local-host-names и virtusertable тебе помогут.
Вот посмотри http://www.freebsd.org/doc/ru_RU.KOI8-R ... dmail.html
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: настройка локального mail на роутере
что есть в
Код: Выделить всё
/etc/mail/aliases
Z301171463546 - можно пожертвовать мне денег
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
Вот именно эту доку и изучал последние 2 дняGloft писал(а):Еще раз посмотрел параметр MASQUERADE_AS, и убедился, что он используются именно для исходящей почты.
Вот почитай http://www.intuit.ru/department/interne ... /11/6.html.

Да, сейчас для проверки добавил на почтовике роутер в доверенные хосты - письма на него с роутера приходят, причем в поле "от" действительно домен прописанный в MASQUERADE_AS, а вот received from: router.mysite.ru
Видимо поле received как раз и отбрасывается как неизвестный домен, так что скорее это вопрос в ДНС почтовика, а с sendmail все в порядке.
Зачем? У меня днс раздает разные ip для внешних и внутренних, а sendmail'у и знать про них не положено. Или не так?Gloft писал(а):Если хочешь управлять доставкой писем внешние на внешний, внутренние на внутренний, то почитай о файле mailertable.
Хотя наверное это можно сделать и в конфиге sendmeail.
Хандбук как раз тоже читал, только пока mailertable пытаюсь подключить, и никакого эффекта, наверно что-то не так делаю...Gloft писал(а):О втором домене.
Sendmeail надо объяснить, что он вообще обрабатывает такой домен, а уже потом настраивать маршрутизацию почты.
Думаю файлы local-host-names и virtusertable тебе помогут.
Вот посмотри http://www.freebsd.org/doc/ru_RU.KOI8-R ... dmail.html
В aliases только root: user@gmail.com , остальное все по дефолту.zingel писал(а):что есть вКод: Выделить всё
/etc/mail/aliases
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
Точно, оказалось что тупо в днс не был прописан хост router для этой зоныiltmpz писал(а):Видимо поле received как раз и отбрасывается как неизвестный домен, так что скорее это вопрос в ДНС почтовика, а с sendmail все в порядке.

Прописал, письма принимаются.
Теперь осталось только разобраться со 2-м доменом...
- Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Re: настройка локального mail на роутере
Очень полезная опция в сендмыле:
Я рекомендую таки не отправлять письма с роутера, так как могут быть проблемы. У вас же внешний адрес роутере используется для нат-а внутреннего почтовика. Лучше использовать централизованный почтовый сервер, дабы потом в логах легче разбираться и не наткнутся на возможные грабли с нат-ом и с ДНС (уже).
Удачи.
Код: Выделить всё
define(`SMART_HOST', `host1.dom.com')
Удачи.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
Laa писал(а):Очень полезная опция в сендмыле:Я рекомендую таки не отправлять письма с роутера, так как могут быть проблемы. У вас же внешний адрес роутере используется для нат-а внутреннего почтовика. Лучше использовать централизованный почтовый сервер, дабы потом в логах легче разбираться и не наткнутся на возможные грабли с нат-ом и с ДНС (уже).Код: Выделить всё
define(`SMART_HOST', `host1.dom.com')
Удачи.
Именно принимает, а мне надо, чтобы хост указывался в качестве отправителя.SMART_HOST. С ее помощью объявляется удаленный хост, который принимает все почтовые сообщения, адресованные удаленным хостам.
Я решил использовать отдельный почтовик на роутере по следующим причинам:
- я-таки настроил отдельный внешний ip для корпоративного почтовика, благо провайдер дал нам пул адресов

(Настроил divert'ами на ipfw, так что это отдельная тема).
- в централизованный почтовик я лезть не хочу по организационным причинам: его настраивал не я, кроме того разбираться в его многокилометровых логах мне тоже не хочется.
- роутер будет использоваться для служебных целей, в том числе для отправки уведомлений админу, в том числе для уведомлений об отказе основного почтовика.
- основной почтовик вообще не используется как релей, открывать его как релей для роутера я не хочу
Итак, думаю, настройку sendmail'а можно считать законченной

Опишу по порядку для таких же новичков, как я (и чтобы самому потом не забыть)

Роутер у меня называется router.mysite.ru, есть 2 домена: mysite.ru и mysite1.ru
Корпоративный почтовик называется mail.mysite.ru
Не знаю как в linux, под freebsd 7.0 свой способ настройки конфигов, доки с intuit.ru тут не работают:
Код: Выделить всё
#cd /etc/mail
#make
собственно, именно это конфиги по умолчанию, для того, чтобы применить изменения настроек, надо выполнить: make install-cf
Итак, правим router.mysite.ru.mc.
Все что мне понадобилось, это добавить в router.mysite.ru.mc строку: MASQUERADE_AS(`mysite.ru')
после этого "make install-cf" и "/etc/rc.d/sendmail restart".
Замечу, что MASQUERADE_AS меняет поле "From" в заголовке письма, однако заголовки "Return-Path", "Received: from" остаются без изменений.
(кому-то это может и очевидно, а я несколько часов убил, пока понял).
Далее, пробуем отправить почту:
Код: Выделить всё
#mail user@mysite.ru
Аналогично на внешний адрес: user@gmail.com
Теперь отправляем почту на другой домен:
Код: Выделить всё
#mail user@mysite1.ru
Советы из официальной доки: http://www.sendmail.org/faq/section4#4.5 - прописать релей - не наш случай. Нам надо именно сказать нашему sendmail, что в домен mysite1.ru почта должна идти на тот же почтовик: mail.mysite.ru
Код: Выделить всё
#cp /etc/mail/mailertable.sample /etc/mail/mailertable
Именно так, без точки, т.е. не так: ".mysite1.ru smtp:mail.mysite.ru"
(тоже несколько часов убил)
Потом делаем в /etc/mail: makemap hash mailertable.db < mailertable
Или просто запускаем make.
Потом на всякий случай перезапускаем: /etc/rc.d/sendmail restart
И после этого у меня все заработало.
Для отправки писем с сайта настройка адреса отправителя (подозреваю, что и MASQUERADE_AS) не требуется, поскольку сайт сам может устанавливать поле From.
- Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Re: настройка локального mail на роутере
iltmpz , молодец!!! 

exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
-
- майор
- Сообщения: 2684
- Зарегистрирован: 2007-09-25 10:20:59
- Откуда: Сочи, Москва
- Контактная информация:
Re: настройка локального mail на роутере
статью?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru
http://www.itforum-sochi.ru
-
- ефрейтор
- Сообщения: 58
- Зарегистрирован: 2008-11-10 13:10:56
Re: настройка локального mail на роутере
Ну, на статью это конечно не тянет: пару моментов разобрал, из настроек только 2 параметра вписал и днс который вообще не по теме.
Часть параметров просто методом тыка нашел.
Но спасибо за доверие, может, разберусь когда-нить в тонкостях настройки, и статья получится
Часть параметров просто методом тыка нашел.
Но спасибо за доверие, может, разберусь когда-нить в тонкостях настройки, и статья получится
