Смена IP адреса в EXIM для отдельного домена

суббота, 25 августа 2012 г.

Есть выделенный сервер, на котором кроме основного IP есть несколько дополнительных. Управление сервером лежит на плечах ISPManager Lite. И вот встала задача - один конкретный домен "повесить" на отдельный дополнительный IP. Средствами ISPManager это делается легко, но загвоздка вот в чем была: при отправке писем через exim (стандартной функцией mail() в php) получатель видел в заголовках информацию об основном IP адресе, а не о том, который фактически привязан к домену.

То есть.
1.1.1.1 - основной IP сервера, maindomain.ru - домен, привязанный к основному IP сервера.
2.2.2.2 - дополнительный IP. mydomain.ru - домен на этом доп. IP.

Отправляю почту с mydomain.ru, а в заголовках видим следующее:
Received: from maindomain.ru (mydomain.ru. [1.1.1.1])
А надо, что бы информации о 1.1.1.1 не было.


ISPManager имеет возможность привязки отдельных доменов к отдельным IP только в версии Pro, а у меня версия Lite. Но задачу решить можно.

1. Открываем файл /etc/exim4/exim4.conf.template
2. Находим блок remote_smtp, где видим параметр interface. Он должен быть вот таким:

interface = <;${extract{1}{:}{${lookup{$sender_address_domain}lsearch{/etc/exim4/domainips}}}}

Видим, что IP интерфейса может браться из файла /etc/exim4/domainips, где формат должен быть следующим:
mydomain.ru:2.2.2.2
anotherdomain.ru:3.3.3.3
*:1.1.1.1  #указывается основной IP, на случай если связка домен:IP не найдена.
4. Открываем файл /etc/exim4/domainips и прописываем необходимые связки как указано выше.
5. Перезагружаем exim /etc/init.d/exim4 restart
6. Пробуем отправить себе почту с домена mydomain.ru
mail('maymail@gmail.com', 'Subject', 'Exim4 IP test');
Где смотрим оригинал письма и видим инфомрацию:
Received: from maindomain.ru (mydomain.ru. [2.2.2.2])
То есть, информация об основном IP отсутствует, а прописан именно тот, на который привязан домен.

Еще есть возможность убрать информацию о maindomain.ru, но об этом в другой раз напишу.
Подчеркиваю - этот способ работает при установленном ISPManager Lite, другие варианты я не рассматривал. 

2 коммент.:

Анонимный комментирует...

Приветствую. А как убрать информацию о maindomain.ru ?

Спасибо

GIN комментирует...

Вам понадобится написан собственный блок received_header_text, в котором вы сможете сами определить какая информация должна быть указана и в каком виде. Например, можно убрать информацию об использовании Exim или его версии и многое другое.

http://www.exim.org/exim-html-current/doc/html/spec_html/ch-main_configuration.html - найдите там блок с описанием и примером конфигурации.

Copyright © 2010 WEB IT blog