|
|
|
|
Какое нам дело до классов адресов? Классы адресов опеределяют то, как 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/
|
|
|
|
|
2.
|