Классы адресов в Postfix
Введение
В Postfix версии 2.0 появилась концепция классов адресов (address classes).
Это нововведение позволяет группировать адреса получателей по
способу доставки почты. Идея классов адресов возникла в дискуссиях с Виктором Духовным (Victor Duchovni).
Несмотря на то, что данная концепция вносит некоторую несовместимость со старыми версиями, она
позволяет улучшить поддержку почтового хостинга (hosted domains)
и работу с неизвестными получателями (unknown recipients).
В этом документе охвачены следующие темы:
Зачем понадобились классы адресов? Это метод, с помощью которого Postfix
решает, какую почту принимать и каким образом ее доставлять. Иными словами, классы адресов
являются важным компонентом в работе Postfix.
Класс адресов состоит из трех элементов:
-
Список доменов, являющихся членами класса. Например,
все local domains или все relay domains.
-
Основной метод доставки. Например, локальный (local) или smtp агент доставки.
Это упрощает конфигурирование Postfix.
-
Список разрешенных адресов получателей для класса адресов.
SMTP сервер Postfix отклоняет недопустимые адреса получателей
с сообщением "User unknown in <name of address class here> table" (Пользователь неизвестен в таблице <имя класса адресов>).
Это способствует избавлению от засилия сообщений MAILER-DAEMON-а, информирующих о невозможности доставки в очереди Postfix.
Изначально список классов адресов жестко прописан в коде (hard coded), но
он рассчитан на то, чтобы стать расширяемым. Ниже приведен список классов
с коротким описанием предназначения каждого из них. Также указаны основные
конфигурационные параметры для каждого класса.
Класс локальных доменов (local domain class).
Класс виртуальных алиасов (virtual alias domain
class).
-
Цель: hosted domains, где каждый адрес получателя "алиасится" на
локальную учетную запись UNIX или на удаленный адрес.
Пример виртуального алиасинга (virtual alias example) содержится в документе VIRTUAL_README.
-
Имена доменов указаны в параметре virtual_alias_domains.
Значение по умолчанию - $virtual_alias_maps для совместимости с
Postfix 1.1.
-
Разрешенные адреса получателей указаны в параметре virtual_alias_maps.
SMTP сервер Postfix отклоняет недопустимые адреса получателей с сообщением
"User unknown in virtual alias table" (Пользователь неизвестен в таблице виртуальных алиасов). Значение по умолчанию -
$virtual_maps для совместимости с Postfix 1.1.
-
Нет параметра, указывающего транспорт для доставки. Почта для каждого адреса должна быть алиасом перенаправлена
на другой адрес.
Класс виртуальных почтовых ящиков (virtual mailbox domain
class).
Класс адресов для пересылки (relay domain class).
-
Цель: пересылка почты различным доменам, для которых ваш почтовый сервер
выполняет роль первичного или запасного MX хоста. Для ознакомления с основными моментами
конфигурации обратитесь к документу Базовая конфигурация Postfix.
Описание различий между canonical domains, hosted domains
и других дано в документе VIRTUAL_README.
-
Имена доменов указаны в параметре relay_domains.
-
Разрешенные адреса получателей указаны в параметре relay_recipient_maps.
SMTP сервер Postfix отклоняет недопустимые адреса получателей с сообщением
"User unknown in relay recipient table" (Пользователь неизвестен в таблице получателей для пересылки).
Если параметр relay_recipient_maps пуст,
то Postfix SMTP сервер принимает все адреса получателей, принадлежащие доменам из
relay_domains.
-
Транспорт для доставки почты указан в параметре relay_transport.
Значение по умолчанию relay является клоном агента доставки smtp(8).
Класс по умолчанию (default domain class).
-
Цель: отправка писем в интернет от авторизованных клиентов.
Для ознакомления с основными моментами конфигурации обратитесь к
документу Базовая конфигурация Postfix.
Описание различий между canonical domains, hosted domains
и других дано в документе VIRTUAL_README.
-
В этом классе нет таблицы доменов назначения.
-
Этот класс не содержит таблицы допустимых адресов получателей.
-
Основной способ доставки указан в параметре default_transport.
Значение по умолчанию smtp, т.е. доставка произодится
агентом smtp(8).
Введенные в Postfix 2.0 классы адресов сделали возможными следующие
улучшения по сравнению с более старыми версиями Postfix:
-
Вам больше не нужно указывать все виртуальные почтовые домены (virtual(8) mailbox
domains) в транспортной карте Postfix. Агент доставки virtual(8) теперь функционирует
для класса адресов, как агенты local(8) или smtp(8).
-
На почтовых гейтвеях классы адресов позволяют разделить траффик входящей ($relay_transport)
и исходящей почты ($default_transport). Это предотвращает возникновение ситуации,
когда не хватает ресурсов для приема почты в связи с огромным объемом исходящей корреспонденции.
-
SMTP сервер отклоняет неизвестные адреса получателей
более последовательным и согласованным образом, чем это было
возможно в Postfix версии 1. Это необходимо для того, чтобы
почтовая очередь не засорялась <отрикошеченной, bounced> почтой, которая не может быть доставлена.
Контролируется это параметром smtpd_reject_unlisted_recipient.
-
Что касается Postfix версии 2.1, то SMTP сервер также отклоняет
неизвестные адреса отправителя (т.е. те, которые Postfix бы отклонил, как неизвестные адреса получателя).
Эта возможность помогает в борьбе с распространением почтовых червей. Контролируется параметром
smtpd_reject_unlisted_sender.
Классы адресов, появившиеся в Postfix 2.0, добавляют несколько
несовместимых изменений в документированном поведении.
Для упрощения миграции новые параметры имеют обратно совместимые значения по умолчанию.
-
Параметр virtual_maps заменен параметром virtual_alias_maps
(для поиска адресов) и параметром virtual_alias_domains (для того, что мы прежде называли
"Виртуальные домены в стиле Postfix").
Для обратной совместимости с Postfix версии 1.1 новый параметр
virtual_alias_maps имеет значение по умолчанию $virtual_maps,
а новый параметр virtual_alias_domains по умолчанию равен $virtual_alias_maps.
-
У параметра virtual_mailbox_maps теперь появился
сопутствующий параметр virtual_mailbox_domains (для имен доменов, обслуживаемых виртуальным
агентом доставки). Параметр virtual_mailbox_maps
теперь используется только для поиска адресов.
Для обратной совместимости с Postfix версии 1.1 новый параметр
virtual_mailbox_domains имеет значение по умолчанию $virtual_mailbox_maps.
-
Появился параметр relay_recipient_maps. Почтовый сервер
Postfix SMTP может использовать его для отклонения почты relay-получателю, которого нет.
Этот список пуст по умолчанию, т.е. Postfix принимает почту для всех relay-получателей.
-
Параметр local_recipient_maps теперь по умолчанию включен.
Postfix SMTP использует его для отклонения почты, адресованной локальным получателям, которых нет.
Подсказки и примеры в файле LOCAL_RECIPIENT_README.
-
Введен транспорт relay-доставки в файле master.cf.
Это помогает избежать проблем с входящей почтой на почтовых relay-серверах,
где велика нагрузка от исходящей почты, но, возможно, потребуется изменение
параметра "defer_transports".
|