Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FAQ по Exim MTA #2

Автор: idiMAN
Дата сообщения: 03.03.2014 13:09
Доброго времени суток!

Подскажите пожалуйста, как реализовать доставку почты через два ISP для Exim (version 4.82)?

На компьютере с установленным Exim имеем два сетевых интерфейса. Один интерфейс с ip-адресом x.x.x.x - смотрит на первого провайдера, а другой интерфейс с ip-адресом y.y.y.y - на второго провайдера.

В настоящее время транспорт на Exim настроен так:

remote_smtp:
driver = smtp
interface = x.x.x.x

Что необходимо сделать, чтобы в случае отсутствия связи с первым провайдером, почта уходила через второго (соответственно через интерфейс y.y.y.y)?
Автор: vlary
Дата сообщения: 03.03.2014 14:48
idiMAN Подразумеваю, что вопросы с маршрутизацией для двух провайдеров решены,
в противном случае это отдельная тема: Маршрутизация в локалку с нескольких провайдеров
Вижу 2 варианта решения.
1. Убрать сервер с Exim вообще за НАТ, и пусть ответная почта уходит через активного
в данный момент провайдера средствами НАТ.
2. Создать два транспорта, отдельно для первого и второго провайдера.
Мониторить соединение какой-либо кастом коммандой, которая будет возвращать,
скажем 1 или 2, в зависимости от активного провайдера.
И выбирать транспорт в зависимости от результата в routers:

Код: .................
begin routers
dnslookup1:
condition = ${run{<command> <args>}{1}{fail}}
driver = dnslookup
domains = ! +our_domains
transport = remote_smtp1

dnslookup2:
condition = ${run{<command> <args>}{2}{fail}}
driver = dnslookup
domains = ! +our_domains
transport = remote_smtp2
....................
begin transports
remote_smtp1:
driver = smtp
interface = x.x.x.x
remote_smtp2:
driver = smtp
interface = y.y.y.y
Автор: Alukardd
Дата сообщения: 03.03.2014 19:53
А откуда вообще такие сложности?
Зачем exim'у заботиться о том, что есть 2 ISP? Его дело письмами заниматься, а куда слать пакет пускай решает ОСь в момент маршрутизации трафика.
Автор: Serggg
Дата сообщения: 04.03.2014 13:23

Цитата:
SMTP data timeout (message abandoned) on connection from mail-oa0-f67-google.com


в общем проблему решил, вывел сервер из NAT на прямую в инет.
Автор: vlary
Дата сообщения: 04.03.2014 15:56
Serggg
Цитата:
в общем проблему решил, вывел сервер из NAT на прямую в инет.
Как говорил один из моих бывших начальников,
"из каждого безвыходного положения есть хотя бы один позорный выход".
Хотя я тоже считаю, что почтовому серверу лучше находиться снаружи.
Тем не менее в одном из филиалов почтарь работает из-под НАТа за циской,
и гугломыло на него не жалуется. Видимо, НАТ нужно правильно готовить.
Но это уже совсем другая тема.

Автор: Serggg
Дата сообщения: 04.03.2014 22:04

Цитата:
Как говорил один из моих бывших начальников,
"из каждого безвыходного положения есть хотя бы один позорный выход".


Спасибо что ответили, это мой первый сервер на EXIM (захотелось разобраться) , а так 5 штук в филиалах стоит на постфиксе и все за НАТом. А тут не смог я побороть....увы. И как не странно все филиалы перевел на МИКРОТИКИ и только тут наступил на такие грабли. (может еще вернусь к этому вопросу чуток позже ..отпишусь)
Автор: try09
Дата сообщения: 26.03.2014 13:07
Здравствуйте, помогите с проблемой...в логах exim 4 появляется сообщение "Accept message without spamd and antivirus check because LA > 3" в это время обычно подвисает отправка.
Раньше просто отрубало с сообщением "too many smtp connections", после этого увеличил "smtp_accept_max = 1000".
Знаю что это много, но не знаю, сколько будет нормой. Почтовик крутиться в инете, на нем ящиков около 200, частые рассылки...
На сколько понимаю, нужно крутить
#smtp_accept_max_per_host = хх
#smtp_accept_reserve = хх
#smtp_reserve_hosts = хх
может приведет кто примеры, как у вас...
если есть соображения что еще крутить, подскажите ...
Автор: vlary
Дата сообщения: 26.03.2014 15:38
try09
Цитата:
может приведет кто примеры, как у вас...
Лично у меня эти параметры стоят "по дефолту", нагрузка примерно такая же, все работает отлично.
Попробуй провести тестовую сессию аналогично повисающей, с помощью
exim -bh айпи_хоста_с_затыком, посмотри обработку акцесс-листов
Автор: sypersava
Дата сообщения: 02.04.2014 14:25
Добрый день, есть такая проблема, переходим на exim, но еще часть пользователей на sendmail, есть несколько доменов, но настроены как алиасы, как сделать чтобы при отправке письма адрес получателя менялся, например - юсер1@домен1 на юсер1@домен2? Спасибо.
Автор: vlary
Дата сообщения: 02.04.2014 16:02
sypersava
Цитата:
есть несколько доменов, но настроены как алиасы
Может, как-то через виртуальные домены?
Ссылка
Автор: sypersava
Дата сообщения: 02.04.2014 16:11
Извеняюсь, подменять нужно адрес получателя, у нас единая база пользователей на 4 почтовых домена, тоесть наши домены - домен1, домен2, домен3, домен4, я сделаю так что новый сервер - домен1, и буду потихоньку в него пользователей перетягивать, но наши пользователи когда друг другу пишут - особо не обращают внимание на домен, потому хочется чтобы когда с нового сервера пользователь писал письмо - оно попадало на старый сервер (то есть если получатель будет домен1, мы поменяем на домен2), а если у него есть логин на новом сервере - оно по переадресации попадет на новый сервер...
Автор: vlary
Дата сообщения: 02.04.2014 16:35
sypersava Ну тогда пробуй это:
Chapter 31 - Address rewriting
Автор: sypersava
Дата сообщения: 03.04.2014 08:48
Огромное спасибо!



P.S.
ммм... сделал так -
*@новый.домен $1@старый.домен Tbcrt

если писать с новый.домен и пользователя на новом сервере нету - все нормально, но если писать пользователю на ноый.домен - оно подставляет старый домен и письмо бегает по кругу... Может я плохо ситуацию объяснил, сейчас попробую еще раз описать.

Есть 2 сервера почтовых, старый - сендмайл бородатого года, пользователи заведены как системные, алиас на 4 домена (то есть на какойбы домен не писали из четырех - попадает 1 пользователю, пользователи так привыкли и происходит полная котовасия с доменами ). Новый - exim,dovecot, домены виртуальные, будет 1 пользователь в домене, оставлю только 2 домена. Теперь стоит задача прозрачно перевести пользователей, мысль такая - новый сервер назвали mail1.новый.домен, на старом делаем перадресацию (alias) на юзер@mail1.новый.домен, на новом есть виртуальный домен - новый.домен (и для него алиасом есть хост - mail1.новый.домен). Приходит почта нормально. Возникает проблема при отправке с нового сервера пользователю с адресом юзерстарыйсервер@новый.домен, который есть на старом сервере, но нету на новом, но MX для нового сервера является старый сервер. То етсь новый сервер знает, что это его локальный пользователь, и знает что пользователя нету, и честно об этом заявляет. То есть я хочу чтоб для пользователей которых еще нету на новом сервере почта уходила на старый... Помогите пожалуйста, я уже сам запутался.
Автор: vlary
Дата сообщения: 03.04.2014 11:18
sypersava Ну почитай еще про это:
Chapter 22 - The redirect router
Chapter 20 - The manualroute router
Комбинируя их последовательность и выставляя условия, можно добиться,
что сначала по $local_part будет поиск локального юзера,
если такового нету - редирект на другой почтовик.
Автор: sypersava
Дата сообщения: 09.04.2014 08:15
Почитал... Видимо exim непользуется большой популярностью, может кто уже делал такое у себя?
Автор: vlary
Дата сообщения: 09.04.2014 10:40
sypersava
Цитата:
Видимо exim непользуется большой популярностью
Тут ты сильно ошибаешься.
А вот те финты с адресами, которые ты пытаешься делать, явно большой популярностью не пользуются.

Автор: sypersava
Дата сообщения: 09.04.2014 11:56
если тебе нечего ответить - лучше молчать
Автор: vlary
Дата сообщения: 09.04.2014 13:51
sypersava
Цитата:
если тебе нечего ответить - лучше молчать
Хорошо. Я записал твой ник, и теперь тебе больше отвечать не буду.

Автор: sypersava
Дата сообщения: 09.04.2014 15:23
Спасибо, подождем, может кто еще ответит
Автор: try09
Дата сообщения: 14.04.2014 13:38
vlary - спасибо за ответ, проблема была в mysql, по расписанию в нее писались данные, соответственно грузился сильно сервер, LA-зашкаливал. Решение - тюнить конфиг mysql. Нужно было более детально мне описывать ситуацию.
Автор: maxya
Дата сообщения: 20.05.2014 20:40
Люди подскажите плз
как настроить exim на freebsd чтобы
smtp.mailfrom= и setup smtp.helo= выставляло адрес отправителя?

ставит адрес сервера
Автор: Alukardd
Дата сообщения: 20.05.2014 21:00
maxya
Что-то я не очень понял о чём Вы говорите.
Может я туплю, но не могли бы Вы по русски описать, что Вы пытаетесь сделать? Что должен посылать клиент и что требуется от сервера?
Автор: vlary
Дата сообщения: 20.05.2014 22:20
maxya
Цитата:
как настроить exim  на freebsd чтобы  
smtp.mailfrom= и setup smtp.helo= выставляло адрес отправителя?
Ну ты можешь указать в SMTP транспорте любое helo_data,
вплоть до vasya.pupkin, но зачем оно тебе нужно?
Для EHLO/HELO существуют простые правила, которые нужно помнить и соблюдать.
1. EHLO/HELO может, но никаким боком не обязано соответствовать почтовому домену.
2. EHLO/HELO должно соответствовать FQDN почтового сервера.
3. PTR запись для IP сервера должна соответствовать его FQDN.
Если твой сервер удовлетворяет этому условию, то может отправлять почту
для 100500 почтовых доменов, и никто тебе поганого слова не скажет
(пример - гугловские почтовики, на которых хостится туева хуча корпоративных почтовых доменов).
А smtp.mailfrom тут вообще не при делах, оно соответствует заголовку Reply-To,
который формирует почтовый клиент.
Если по каким-то причинам Reply-To не имеет домена, то это фиксится параметром qualify_domain
Автор: maxya
Дата сообщения: 21.05.2014 00:36
Суть в том, что в служебных заголовках указывает неправильную информацию

From root@server Wed May 21 01:27:09 2014
Return-path: <root@server>
Authentication-Results: mxs.mail.ru; spf=none () smtp.mailfrom=root@server smtp.helo=server;
     dkim=pass header.i=domain

а должно быть:

From user@domain Wed May 21 01:06:20 2014
Return-path: <user@domain>
Authentication-Results: mxs.mail.ru; spf=pass (mx74.mail.ru: domain of domain designates ip as permitted sender) smtp.mailfrom=user@domain smtp.helo=domain;
     dkim=pass header.i=domain

Вот есть 2 сервера, на обоих стоит exim
На Freebsd вот такая петрушка неправильная.
На Centos все правильно работает. Никак не могу найти что поменять.
На сервере несколько движков и отправляется почта с mail админа. Вот нужно чет сделать ёпта...
Автор: vlary
Дата сообщения: 21.05.2014 16:34
maxya
Цитата:
На сервере несколько движков и отправляется почта с mail админа.
Так это косяки скриптов, а не Эксима.
Собственно, при использовании в PHP скриптах функции mail() From обычно системой
игнорируется, вместо этого указывается юзер, из-под которого запущен скрипт.
Используйте скрипты на основе PHPMailer, который работает по SMTP,
и ставьте любой нужный вам Return-path:
Автор: maxya
Дата сообщения: 21.05.2014 23:25

Цитата:
Так это косяки скриптов, а не Эксима.

Ну как бЭ и там и там стоит один и тот же движок форума smf
Файлы идентичны...
Логи я скинул с разных серваков и одного движка.
Автор: Alukardd
Дата сообщения: 22.05.2014 08:45
vlary
Цитата:
3. PTR запись для IP сервера должна соответствовать его FQDN.
А вот это не совсем точное заявление. Верно будет так:
Полученное при PTR запросе имя, должно разрешать при запросе A записи в тот же самый ip адрес
В целом-то Вы вроде верно сказали, но возможно двоякое восприятие фразы.
Автор: vlary
Дата сообщения: 22.05.2014 10:43
maxya
Цитата:
Ну как бЭ и там и там стоит один и тот же движок форума smf
Почитай внимательно этот раздел доки: 2. Trusted and admin users
Цитата:
The trusted users are root, the Exim user, any user listed in the trusted_users configuration option, and any user whose current group or any supplementary group is one of those listed in the trusted_groups configuration option. Note that the Exim group is not automatically trusted.

Trusted users are always permitted to use the -f option or a leading “From ” line to specify the envelope sender of a message that is passed to Exim through the local interface (see the -bm and -f options below). See the untrusted_set_sender option for a way of permitting non-trusted users to set envelope senders.

For a trusted user, there is never any check on the contents of the From: header line, and a Sender: line is never added. Furthermore, any existing Sender: line in incoming local (non-TCP/IP) messages is not removed.

Trusted users may also specify a host name, host address, interface address, protocol name, ident value, and authentication data when submitting a message locally. Thus, they are able to insert messages into Exim’s queue locally that have the characteristics of messages received from a remote host. Untrusted users may in some circumstances use -f, but can never set the other values that are available to trusted users.
Нужно разобраться с настройкой прав для того юзера, из-под которого запускаются скрипты.

Alukardd
Цитата:
В целом-то Вы вроде верно сказали, но возможно двоякое восприятие фразы.
Ну это мы уже забираемся в дебри семантики, структурной лингвистики и формальной логики.
"Мушка на стволе не стальная, а из того же металла, что ствол"

Автор: maxya
Дата сообщения: 22.05.2014 12:15

Цитата:
Так это косяки скриптов, а не Эксима.


Вы абсолютно правы. Нашел все же отличия
if (!mail(strtr($to, array("\r" => '', "\n" => '')), $subject, $message, $headers, sprintf("-oi -f %s", $webmaster_email)))

Автор: bga83
Дата сообщения: 02.06.2014 16:55
Упрощенно ситуация такая: почтовая система реализована в виде 2-х серверов. Один релей, второй непосредственно хранение пользовательской почты. Все на Exim. На релее прописаны вот такие настройки роутеров:


Код:
smarthost_our:
driver = manualroute
domains = +our_domains
transport = remote_smtp
route_list = * 192.168.100.196
no_verify
no_more

dnslookup:
driver = dnslookup
domains = ! +local_domains
condition = $<условие>{no}{yes}}
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
headers_remove = received
no_more

Страницы: 123456789101112131415161718192021

Предыдущая тема: Посоветуйте девайс для орг-ии VPN


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.