Выбором исходящих IP адресов в Exim для доменов

По умолчанию EXIM отправляет всю почту через ip и домен на которые установлен сервер (MTA)

В заголовках мы видим ip и домен на который был установлен сервер, при этом отправка была с добавленного домена и ip.

Received-SPF: pass (mx306.i.mail.ru: domain of domainSENDER.ru designates 00.000.00.001 as permitted sender) client-ip=00.000.00.001; envelope-from=domainSENDER.ru; helo=domainMTA.ru;
Received: from domainMTA.ru ([00.000.00.001]:60808)

Задача:  указать EXIM с какого домена и ip требуется отсылать почту.

Список доступных IP-адресов для отправки исходящей почты определяется параметром interface в секции конфигурационного файла TRANSPORTS CONFIGURATION

remote_smtp:
   driver = smtp
   interface = .......ЗНАЧЕНИЕ.......

По умолчанию он отсутствует.

Вариант 1 — ротация ip адресов

Например, у нас имеется подсеть IPv4 1.2.3.240/28, что даёт нам 14 свободных IP-адресов c 1.2.3.241 по 1.2.3.254 для использования.

Для случайной ротации этого набора можно использовать следующее выражение в параметре interface транспорта smtp.

...
remote_smtp:
  driver                = smtp
  interface             = 1.2.3.${eval:${randint:14}+241}
...

Ротация адреса по времени. К примеру, последовательно один раз в секунду.

...
remote_smtp:
  driver                = smtp
  interface             = 1.2.3.${eval:$tod_epoch%14+241} 
...

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

...
remote_smtp:
  driver                = smtp
  interface             = <;${extract{${eval:${randint:4}+1}}{;}{1.2.3.4;5.6.7.8;9.0.1.2;3.4.5.6}}
...

Вариант 2 — каждому домену — свой ip адрес

Можно также задать свой набор IP-адресов для каждого из доменов-отправителей, перечислив их соответствие в списке в отдельном файле.

файл ifaces nano /etc/exim/ifaces

"domainMTA.ru"  00.000.00.001
"domainSENDER.ru" 00.000.00.002

добавляем в конфигурацию /etc/exim значение interface

...
begin transports
...
remote_smtp:
  driver  = smtp
  interface = <;${lookup{$sender_address_domain}lsearch{/etc/exim/ifaces}{$value}{1.2.3.4;5.6.7.8;2000:1:2:3::4;2000:5:6:7::8}} 
...

В этом примере в файле ifaces производится поиск соответствующего домену-отправителю списка IP-адресов, а в случае их отсутствия используется общий их список.

В итоге видим следующее:

Received-SPF: pass (mx177.mail.ru: domain of domainSENDER.ru designates 00.000.00.002 as permitted sender) client-ip=00.000.00.002; envelope-from=buonce@domainSENDER.ru; helo=domainMTA.ru;
Received: domainSENDER.ru ([00.000.00.002]:35304 helo=domainMTA.ru)

Изменить Helo отправителя

Как мы видим из примера выше, нам удалось указать ip домена отправителя, при этом helo остался прежним (домена установленного MTA)

Добавляем дополнительное значение в конфигурацию /etc/exim

... 
begin transports 
... 
remote_smtp: 
   driver = smtp 
   interface = <;${lookup{$sender_address_domain}lsearch{/etc/exim/ifaces}{$value}{1.2.3.4;5.6.7.8;2000:1:2:3::4;2000:5:6:7::8}}
   helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}
...

получаем следующий вывод в заголовках:

Received-SPF: pass (mx177.mail.ru: domain of domainSENDER.ru designates 00.000.00.002 as permitted sender) client-ip=00.000.00.002; envelope-from=domainSENDER.ru; helo=domainSENDER.ru;
Received: from domainSENDER.ru ([00.000.00.002]:35304)
Received: from ***************** ([************])
	by domainMTA.ru with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
	(Exim 4.92)

 

0

my-mails.ru

Всегда On-Line

Авторизация
*
*

Капча загружается...


Регистрация
*
*
*
*

Капча загружается...


Генерация пароля

Капча загружается...


51276208