====== Пример почтового сервера на 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}}