Подмена адреса отправителя при форвардинге

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-21 10:01:13

Добрый день!
Коллеги, очень нужна помощь! Есть такая проблема: имеется адрес, с которого осуществляется форвардинг всех получаемых на этот адрес писем.
В списке форвардинга есть внешние адреса (находятся во внешнем домене). При отправке письма на этот адрес рассылки с адреса, находящегося во внешнем домене (совпадает с внешним адресом в списке форвардинга) письмо пересылается по списку от имени отправителя и если внешний домен отправителя совпадает с внешним доменом получателя, внешний сервер требует авторизацию, т.к. письмо отправлено с адреса которого нет в списке релеев или разрешенных IP для отправки без авторизации. Немного запутанно, но сейчас объясню на примере :-D

Адрес вида office@корппочта.ру использутся для форвардинга всех входящих на него писем. Есть список форрвардинга:
- user1@корппочта.ру
- user2@корппочта.ру
- user1@внешнийдомен.ру
- user2@внешнийдомен.ру
- user3@внешнийдомен.ру
При отправке на адрес office@корппочта.ру с адреса user4@внешнийдомен.ру письма нормально доставляются на адреса локального домена user1@корппочта.ру, user2@корппочта.ру. А на адреса вида user@внешнийдомен.ру выскакивает ошибка авторизации, т.к. сервер внешнийдомен.ру требует smtp авторизацию при отправке с адресов не включенных в список релеев, т.к. отправителем является user4@внешнийдомен.ру.

В такой ситуации приходит в голову 2 решения:
1) добавить домен корппочта.ру в список релеев внешнийдомен.ру (не выполнимо);
2) заменить отправителя если доменная часть адреса не равна локальному домену и равна домену отправителя.

Помогите плз реализовать второй вариант, либо посоветуйте другие возможные. Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-21 20:52:11

"Ничего не понял. Кто на ком стоял?"
IT voodoo blog https://kostikov.co

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-23 9:10:35

:-D
Попробую еще раз.
Есть ящик вида office@свойдомен.ру. У этого ящика есть список форвардинга user1@свойдомен.ру, user2@свойдомен.ру, user1@чужойдомен.com, user2@чужойдомен.com.
Когда пользователь user1@чужойдомен.com отправляет письмо на адрес office@свойдомен.ру происходит форвардинг этого письма согласно списку. На адреса вида userN@свойдомен.ру почта прилетает нормально, т.к. происходит локальная доставка в exim. Но при попытке доставить почту на адреса вида userN@чужойдомен.com происходит ошибка - удаленный сервер требует авторизацию, т.к. отправителем является юзер user1@чужойдомен.com.

В такой ситуации приходит в голову 2 решения:
1) добавить домен свойдомен.ру в список релеев чужойдомен.com (не выполнимо);
2) заменить отправителя на адрес office@свойдомен.ру, если доменная часть адреса отправителя не равна свойдомен.ру и равна домену получателя, т.е. как в описанном выше примере.

Помогите плз реализовать второй вариант, либо посоветуйте другие возможные. Спасибо.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-23 12:51:04

Понятно.
В Exim есть перезапись заголовков. Используйте её при форвардинге при доставке на внешний домен в соответствующем роутере.
http://www.exim.org/exim-html-current/d ... iting.html
IT voodoo blog https://kostikov.co

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-23 14:20:49

Ознакомился, спасибо. Не совсем понятно как написать проверку условия,что письмо первоначально отправлялось на адрес office@свойдомен.ру. И только после этого выполнить проверку - домен отправителя = домен получателя.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-23 15:14:22

А перенаправление у вас чем делается?
IT voodoo blog https://kostikov.co

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-24 9:17:45

Вот секция роутера в которой происходит форвардинг

Код: Выделить всё

aliases:
  driver = redirect
  headers_add = X-redirected: yes
  data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/domains$
  require_files = /etc/exim/domains/$domain/aliases
  redirect_router = dnslookup
  pipe_transport = address_pipe
  unseen

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-24 12:24:42

Понятно.
Тогда навскидку, проверять был ли форвардинг и если он на внешние домены, то делать реврайт.
IT voodoo blog https://kostikov.co

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-24 13:49:40

Спасибо. Но у меня настроен форвардинг и на других адресах на внешние домены. Нужно как-то отслеживать, что было отправлено письмо на office@свойдомен.ру. Есть идеи?

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-25 11:35:45

Добрый день! Вопрос с условием решил. Сделал проверку в роутере dnslookup на то, что домен отправителя и домен получателя равны и первоначальное письмо было послано на office@свойдомен.ру, и если соответствует, то вызывается транспорт в котором нужно перезаписать отправителя. Нужно чтобы письма уходили на удаленный почтовик от имени office@свойдомен.ру. Может знаете как грамотно перезаписать отправителя?

Отправлено спустя 1 час 23 минуты 49 секунд:
попробовал в транспорте сделать return_path = office@свойдомен.ру, удаленный сервер вернул ошибку 553 5.1.8 Sender address <office@свойдомен.ру> domain does not exist. Почему он ищет домен отправителя в своих локальных доменах?

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-25 14:44:05

Перезапись делается не так, а через headers_rewrite. Если вы меняете отправителя на адрес своего домена (что логично), то не забудьте сделать так, чтобы письмо было обработано с применением подписи DKIM и желательным удалением подписи реального отправителя, если вы ею пользуетесь.
Прочитайте раздел документации Exim по ссылке выше.
IT voodoo blog https://kostikov.co

manizzz
проходил мимо
Сообщения: 7
Зарегистрирован: 2017-01-21 9:35:25

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение manizzz » 2017-01-25 18:41:30

Спасибо. Разобрался, но остался один нюанс. Можно ли как-нибудь в транспорте получить адрес получателя письма? Хочу переписать заголовок To:

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1314
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Подмена адреса отправителя при форвардинге

Непрочитанное сообщение xM » 2017-01-25 19:07:39

manizzz писал(а): Можно ли как-нибудь в транспорте получить адрес получателя письма?
xM писал(а): Прочитайте раздел документации Exim по ссылке выше.
IT voodoo blog https://kostikov.co