You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

8.7 KiB

Какое нам дело до классов адресов? Классы адресов опеределяют то, как Postfix принимает решения какие письма принимать и куда их доставлять. Класс адреса определяется тремя вещами:

  • список доменов,
  • список действительных адресов получателей,
  • транспорт доставки по умолчанию.

Можно считать, что класс адресов - это правило, применяемое к полю Кому: конверта элекронного письма. Правило имеет вид:

user@domain -> agent(user, domain),

которое применяется, если истинно, что:

user ∈ USERS,
domain ∈ DOMAINS,
agent ∈ AGENTS.

По умолчанию определён следующий список классов адресов:

  • local domain class (локальные почтовые ящики),
  • virtual mailbox domain class (виртуальные почтовые ящики),
  • virtual alias domain class (виртуальные псевдонимы),
  • relay domain class (адреса транзитных smtp серверов),
  • default domain class (адреса по умолчанию).

Для локальных (local domain class) и виртуальных (virtual mailbox class) почтовых ящиков пустое множество в USER = {} означает, что проверка пользователей отключена, то есть подходит любое имя пользователя.

Для разрешения псевдонимов в адреса в классе virtual alias domain class (виртуальные псевдонимы) агент не используется AGENTS = {}.

1. local domain class (domain ∈ mydestination inet_interfaces proxy_interfaces)

Доставка последней мили до почтовых ящиков пользователей в canonical доменах, имеющих аккаунты в UNIX системе. Имена user определяются параметром local_recipient_maps. По умолчанию заничение равно proxy:unix:passwd.byname $alias_maps, то есть /etc/passwd и /etc/aliases.

Адрес получателя локальный, если его домен совпадает с mydestination, inet_interfaces или proxy_interfaces.

agent = local из local_transport
USERS = /etc/passwd  /etc/aliases
DOMAINS = mydestination  inet_interfaces  proxy_interfaces
AGENTS = service names ∈ /etc/postfix/master.cf

2. virtual mailbox domain class (domain ∈ virtual_mailbox_domains)

Доставка последней мили до почтовых ящиков пользователей в hosted доменах, чьи пользователи не имеют аккаунтов в UNIX системе. Адреса почтовых ящиков вида user@domain ищутся в одной или нескольких таблицах указанных в параметре virtual_mailbox_maps.

agent = virtual из virtual_transport
USERS = virtual_mailbox_maps
DOMAINS = virtual_mailbox_domains
AGENTS = service names ∈ /etc/postfix/master.cf

3. virtual alias domain class (виртуальные псевдонимы)

  • Назначение: хостинговые домены, в которых каждый адрес получателя псевдонимом привязан к учётной записи локальной UNIX-системы или к удаленному адресу. Пример виртуального псевдонима приведен в файле VIRTUAL_README.

  • Доменные имена перечисляются в virtual_alias_domains. Для совместимости с Postfix 1.1 по умолчанию используется значение $virtual_alias_maps.

  • Действительные адреса получателей перечисляются в параметре virtual_alias_maps. SMTP-сервер Postfix отклоняет недействительных получателей с сообщением "Пользователь неизвестен в таблице виртуальных псевдонимов". Для совместимости с Postfix 1.1 по умолчанию используется значение $virtual_maps.

  • Транспортный параметр доставки почты отсутствует. Каждый адрес должен быть псевдонимом для какого-либо другого адреса.

agent = 
USERS = virtual_alias_maps
DOMAINS = virtual_alias_domains
AGENTS = {}

4. relay domain class (адреса транзитных smtp серверов)

  • Назначение: переадресация почты на удаленные адреса, в которых ваша система указана в качестве основного или резервного MX-хоста. Для обсуждения основных деталей конфигурации см. документ BASIC_CONFIGURATION_README. Обсуждение различий между каноническими доменами, размещенными доменами и другими доменами см. в файле VIRTUAL_README.

  • Доменные имена перечисляются с помощью параметра relay_domains.

  • Действительные адреса получателей перечисляются с помощью параметра relay_recipient_maps. SMTP-сервер Postfix отклоняет недействительных получателей с сообщением "User unknown in relay recipient table". Если значение этого параметра пустое, то SMTP-сервер Postfix принимает всех получателей для доменов, перечисленных в параметре relay_domains.

  • Транспорт доставки почты задается параметром relay_transport. По умолчанию используется значение relay, которое является клоном агента доставки smtp(8).

agent = relay из relay_transport
USERS = relay_recipient_maps
DOMAINS = relay_domains
AGENTS = service names ∈ /etc/postfix/master.cf

5. default domain class (адреса по умолчанию)

  • Назначение: пересылка почты в Интернет от имени авторизованных клиентов. Для обсуждения основных деталей конфигурации см. файл BASIC_CONFIGURATION_README. О различиях между каноническими доменами, размещенными доменами и другими доменами см. файл VIRTUAL_README.

  • У этого класса нет таблицы доменов назначения.

  • Этот класс не имеет таблицы действительных адресов получателей.

  • Транспорт доставки почты задается параметром default_transport. По умолчанию используется значение smtp для доставки с помощью агента доставки smtp(8).

agent = smtp из default_transport
USERS = relay_recipient_maps
DOMAINS = relay_domains
AGENTS = service names ∈ /etc/postfix/master.cf

Анекдот про выбор протокола шифрования в STARTTLS:

А: Давай по SSL 2.0.
Б: Могу только по SSL 3.0.
А: Тогда предлагаю по TLS 1.0.
Б: У меня TLS 1.1.
А: А TSL 1.2 нет?
Б: Могу без шифрования
А: Договорились

Возможные структуры почтовой системы:

  • Postfix, Dovecot имеют доступ к списку пользователей и работают параллельно, разделяя доступ к почтовым ящикам пользователей.
  • Dovecot является «бэкендом» для доступа к почтовым ящикам пользователей. При этом подходе, расположение почтовых ящиков, список пользователей, известен только Dovecot.

Источники:

  1. https://habr.com/ru/articles/258279/