Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 17:

Почтовые псевдонимы и преобразование адресов

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >

Преобразование адресов (маскарадинг)

Как и на обычном маскараде, адреса электронной почты или IP-адреса могут "притворяться" другими. Звучит это немного странно, но смысл преобразования адресов лучше всего передается словом маскарад (по-английски masquerade — притворяться, надевать маску). В профессиональных кругах вместо словосочетаний "преобразование адресов" или "подстановка адресов" чаще употребляется термин "маскарадинг". В этом разделе мы рассмотрим методики, которые могут использоваться программой sendmail, для приема и отправки сообщений электронной почты с подставными адресами.

Преобразование адреса одного хоста

В "Подключение почтового сервера к провайдеру Internet" , "Подключение почтового сервера к провайдеру Internet", уже демонстрировалось возможное применение преобразованного адреса хоста. Например, очень часто желательно настроить почтовый сервер для приема и передачи сообщений с доменным именем, без имени самого почтового сервера в адресной части. Как правило, почтовый сервер на базе ОС Linux принимает и передает электронную почту, адресованную определенному хосту. Если имя хоста, на котором находится почтовый сервер mail1, то весь обмен сообщениями будет осуществляться по полному доменному имени mail1.smallorg.org. Для того чтобы направить письмо пользователю этого сервера, необходимо указать в адресе электронной почты полное имя хоста:

username@mail1.smallorg.org

Чтобы почтовый сервер на базе ОС Linux мог принимать сообщения, адресованные на доменное имя без указания имени хоста, необходимо сделать две вещи. Во-первых, МХ -запись в DNS для этого домена должна указывать на определенный почтовый сервер — либо на сервер провайдера, либо на локальный почтовый сервер вашей компании, в зависимости от способа подключения к сети Internet. Таким образом удаленные хосты информируются о том, что почтовый сервер будет принимать почту на доменное имя (в нашем случае это smallorg.org ). База данных сервера DNS, содержащая сведения о доменах сети Internet, рассмотрена нами в "DNS и доменные имена" , "DNS и доменные имена". Запись в DNS о почтовом сервере под управлением ОС Linux, который обслуживает домен, выглядит примерно так:

smallorg.org IN MX 10 mail1.smallorg.org

По этой записи вся почта от удаленных хостов, направленная в домен smallorg.org, будет передаваться прямо на хост mail1.smallorg.org (локальный почтовый сервер). Так решается проблема с приемом входящей почты.

Вторая часть этой головоломки — исходящая почта, отправляемая с локального почтового сервера. Несмотря на то что теперь ваш почтовый сервер может принимать сообщения из Internet, адресованные в домен smallorg.org, исходящие сообщения посылаются с полным именем хоста в поле обратного адреса. Это может привести к неустойчивой работе системы электронной почты. Здесь на помощь приходит преобразование адресов.

Преобразование почтовых адресов при работе sendmail позволяет изменять содержимое полей заголовков исходящих сообщений, в частности поля, где указывается обратный адрес. Содержимое этого поля заголовка должно быть изменено таким образом, чтобы обратный адрес указывал на нужный домен, а не на имя хоста в домене. Таким образом, даже если сообщение будет послано непосредственно с локального почтового сервера, в поле обратного адреса все равно будет указано имя домена, а не хоста. Для разрешения преобразования адресов в программе sendmail необходимо настроить соответствующим образом файл конфигурации sendmail.

Как уже отмечалось в "Установка и конфигурирование sendmail" , "Установка и конфигурирование sendmail", для изменения настроек в файле конфигурации sendmail создается файл макросов. Затем для создания нового файла конфигурации запускается макропроцессор GNU m4. Директива, с помощью которой в программе sendmail включается преобразование адресов, представлена ниже:

MASQUERADE_AS(domain),

где domain — доменное имя, которое sendmail должна использовать в качестве обратного адреса в заголовках исходящих сообщений. Обратите внимание: эта директива изменяет только обратные адреса в заголовках сообщений. Если нужно изменить все заголовки сообщений с учетом маскарадинга доменного имени, то воспользуйтесь настройкой:

FEATURE('masquerade_envelope')

Для более тонкой настройки преобразования адресов на почтовом сервере можно использовать другие опции. В табл. 17.1 приведен список настроек, которые можно применять в программе sendmail для преобразования адресов электронной почты.

Таблица 17.1. Настройки для преобразования адресов в sendmail
Настройка Описание
masquerade_envelope Преобразование адресов отправителя и получателя в конверте сообщения
allmasquerade Принудительное преобразование всех адресов получателей
limited_masquerade Избирательное преобразование адресов
masquerade_entire_domain Преобразование адресов для нескольких доменных имен, определенных в настройке MASQUERADE_DOMAIN

Преобразование адресов нескольких хостов

В крупных офисах иногда целесообразно распределять различные функции почтового сервера между несколькими хост-компьютерами. Идея мультисерверной сети заключается в том, что один сервер выступает в роли центрального почтового узла (его еще называют почтовым хабом), в то время как другие серверы обслуживают клиентов почтовой системы, которые отправляют и получают почтовые сообщения. Благодаря этому снимается нагрузка на центральный почтовый сервер, но если вы имеете дело с сотнями и даже тысячами пользователей, то такая схема работы почтовой системы, скорее, затруднит ее функционирование. Конечно же, бывают ситуации, когда поддержание нескольких почтовых серверов продиктовано, скорее, политическими, а не техническими соображениями. На рис. 17.2 представлен пример мультисерверной системы электронной почты.

Мультисерверная почтовая система

Рис. 17.2. Мультисерверная почтовая система

На центральном почтовом сервере под управлением ОС Linux используется одна из стандартных схем подключения к провайдеру Internet, описанных в "Подключение почтового сервера к провайдеру Internet" . Вспомогательные почтовые серверы должны быть сконфигурированы для работы с центральным сервером, который выступает в роли интеллектуального хоста. Кроме того, на вспомогательных серверах в программе sendmail должны быть включены настройки для преобразования адресов, что позволит изменять обратные адреса в исходящих сообщениях пользователей на доменное имя.

Применение такой конфигурации упрощает исходящие сообщения, поскольку, к какому из вспомогательных серверов не был бы подключен пользователь, адрес его электронной почты будет одним и тем же (если, конечно, на двух вспомогательных серверах нет пользователей с одним и тем же именем). Однако при работе по данной схеме возникают некоторые проблемы с входящей почтой. Предположим, что на вспомогательном почтовом сервере с именем spoke1.smallorg.org имеется пользователь frank. Все исходящие сообщения от сервера spoke1.smallorg.org посылаются через центральный почтовый сервер провайдеру Internet. Если используется преобразование адресов, обратный адрес пользователя frank будет frank@smallorg.org. На рис. 17.3 иллюстрируется этот пример.

Пример отправки сообщения через вспомогательный почтовый сервер

Рис. 17.3. Пример отправки сообщения через вспомогательный почтовый сервер
< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно