====== Пример почтового сервера на Postfix с несколькими внешними доменами и переключающим сервером ======
~~TOC wide~~
|WAN|WAN{border-color:silver;background-color:silver;}=**Интернет**
||!@1|
||!@4|F|~|~|~|~|~|~|~|~|~|~|~|~|7|
|Ext||Ext_1| |Ext_2| |Ext_n|:|Ext{border-color:#a9c}=**[[#external|Внешние домены]]**|Ext_1=Внешний домен 1|Ext_2=Внешний домен 2|Ext_n=Внешний домен n
||!@1|L|~|~|~|~|~|~|~|~|~|~|~|~|J|
||!@4|
|MX|MX{border-color:#a9c}=**[[#mx|Переключающий сервер]]**
||!@1|
||!@4|
|LAN|LAN{border-color:silver;background-color:silver;}=**Локальная сеть**
На одном сервере обслуживаются (взаимодействуют с WAN) несколько [[#external|внешних почтовых доменов]] (SMTP MTA), почтовые серверы которые обеспечивают работу этих доменов с пользователями находятся в локальной сети (LAN).
\\ [[#mx|Переключающий сервер]] обеспечивает взаимодействие между внешними почтовыми доменами и доменами внутри локальной сети.
Пример реализован на [[postfix:postfix|]] с применением [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]].
{{anchor:external}}
====== Внешний домен ======
FIXME
Сначала нужно содать структру папок по [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]].
postmulti -I postfix-domain1 -G in -e create
postmulti -i postfix-domain1 -e enable
unknown_local_recipient_reject_code = 550
readme_directory = no
inet_protocols = ipv4
recipient_delimiter = +
compatibility_level=2
multi_instance_enable = yes
multi_instance_group = special
multi_instance_name = postfix-domain1
data_directory=/var/lib/postfix-domain1
queue_directory = /var/spool/postfix-domain1
mynetworks = 127.0.0.0/8 АДРЕС_И_МАСКА_ЛОКАЛЬНОЙ_СЕТИ
myhostname = mail.domain1.ru
smtpd_proxy_ehlo = mail.domain1.ru
smtpd_banner = $myhostname ESMTP
inet_interfaces = 111.222.333.444
smtp_bind_address = 111.222.333.444
mydestination = domain1.ru
relayhost =
delay_warning_time = 4h
virtual_alias_maps =
hash:/etc/postfix-domain1/virtual
ldap:/etc/postfix-domain1/ldap-users.cf
ldap:/etc/postfix-domain1/ldap-groups.cf
receive_override_options = no_address_mappings
transport_maps = hash:/etc/postfix-domain1/transport
Также в файл ''/etc/postfix/postfix-domain1/main.cf'' нужно вставить следующие настройки:
* [[postfix:postfix#security|Безопасность Рostfix]]
* [[dkim:dkim#postfix|DKIM]]
bind = yes
version = 3
server_host = ldap.domain1.ru
search_base = ou=groups,dc=domain1
query_filter = (&(|(mail=%s)(mailRoutingAddress=%s))(objectclass=mailGroup))
special_result_attribute = member
result_attribute = maildrop
bind = yes
version = 3
server_host = ldap.domain1.ru
search_base = ou=users,dc=domain1
query_filter = (&(!(l=disabled)) (|(mail=%s)(maildrop=%s))(objectclass=mailUser))
result_attribute = maildrop
Таблицы:
domain1.ru smtp:АДРЕС_ПЕРЕКЛЮЧАЮЩЕГО_СЕРВЕРА
test: info@domain1.ru
Скрипт для компиляции таблиц:
#!/bin/bash
postmap transport
postalias virtual
{{anchor:mx}}
====== Переключающий сервер ======
Сначала нужно содать структру папок по [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]].
postmulti -I postfix-mx -G in -e create
postmulti -i postfix-mx -e enable
unknown_local_recipient_reject_code = 550
readme_directory = no
inet_protocols = ipv4
recipient_delimiter = +
compatibility_level=2
multi_instance_enable = yes
multi_instance_group = special
multi_instance_name = postfix-mx
data_directory=/var/lib/postfix-mx
queue_directory = /var/spool/postfix-mx
delay_warning_time = 4h
myhostname = ИМЯ_ХОСТА
smtpd_proxy_ehlo = ИМЯ_ХОСТА
#smtp_helo_name = $myhostname
smtpd_banner = $myhostname ESMTP (MX)
mynetworks = 127.0.0.0/8 АДРЕС_И_МАСКА_ЛОКАЛЬНОЙ_СЕТИ
inet_interfaces = АДРЕС_В_ЛОКАЛЬНОЙ_СЕТИ
smtp_bind_address = АДРЕС_В_ЛОКАЛЬНОЙ_СЕТИ
relay_domains = СПИСОК_ДОМЕНОВ
receive_override_options = no_address_mappings
relay_recipient_maps = hash:/etc/postfix-mx/table-in
sender_dependent_relayhost_maps = hash:/etc/postfix-mx/table-out
transport_maps = hash:/etc/postfix-mx/transport
disable_dns_lookups = yes
Таблицы:
@domain.ru smtp:mail.domain.ru:25
@domain.ru [111.222.333.444]:25
domain.ru smtp:mail.domain.ru:25
test: info@domain.ru
Скрипт для компиляции таблиц:
#!/bin/bash
postmap transport table-in table-out
postalias virtual
{{tag>Examples Linux Debian Email}}