Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
examples:postfix_multi_external_domains_and_lan_relay [2020-06-19 11:50] GreyWolf [Пример почтового сервера на Postfix с несколькими внешними доменами и переключающим сервером] |
examples:postfix_multi_external_domains_and_lan_relay [2020-06-19 15:47] (текущий) GreyWolf [Ссылки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Пример почтового сервера на Postfix с несколькими внешними доменами и переключающим сервером ====== | ====== Пример почтового сервера на Postfix с несколькими внешними доменами и переключающим сервером ====== | ||
+ | ~~TOC wide~~ | ||
+ | |||
+ | <diagram> | ||
+ | |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;}=**Локальная сеть** | ||
+ | </diagram> | ||
+ | |||
+ | На одном сервере обслуживаются (взаимодействуют с WAN) несколько [[#external|внешних почтовых доменов]] (SMTP MTA), почтовые серверы которые обеспечивают работу этих доменов с пользователями находятся в локальной сети (LAN). | ||
+ | \\ [[#mx|Переключающий сервер]] обеспечивает взаимодействие между внешними почтовыми доменами и доменами внутри локальной сети. | ||
- | FIXME | ||
Пример реализован на [[postfix:postfix|]] с применением [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]]. | Пример реализован на [[postfix:postfix|]] с применением [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]]. | ||
+ | {{anchor:external}} | ||
+ | ====== Внешний домен ====== | ||
+ | FIXME | ||
+ | |||
+ | Сначала нужно содать структру папок по [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]]. | ||
+ | <code bash> | ||
+ | postmulti -I postfix-domain1 -G in -e create | ||
+ | postmulti -i postfix-domain1 -e enable | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix/postfix-domain1/main.cf> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | Также в файл ''/etc/postfix/postfix-domain1/main.cf'' нужно вставить следующие настройки: | ||
+ | * [[postfix:postfix#security|Безопасность Рostfix]] | ||
+ | * [[dkim:dkim#postfix|DKIM]] | ||
+ | |||
+ | |||
+ | <code ini /etc/postfix/postfix-domain1/ldap-groups.cf> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix/postfix-domain1/ldap-users.cf> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | Таблицы: | ||
+ | <code ini /etc/postfix/postfix-domain1/transport> | ||
+ | domain1.ru smtp:АДРЕС_ПЕРЕКЛЮЧАЮЩЕГО_СЕРВЕРА | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix/postfix-domain1/virtual> | ||
+ | test: info@domain1.ru | ||
+ | </code> | ||
+ | |||
+ | Скрипт для компиляции таблиц: | ||
+ | <code bash /etc/postfix/postfix-domain1/!update_db.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | postmap transport | ||
+ | postalias virtual | ||
+ | </code> | ||
+ | |||
+ | {{anchor:mx}} | ||
+ | ====== Переключающий сервер ====== | ||
+ | |||
+ | Сначала нужно содать структру папок по [[postfix:postfix#postmulti|технологии работы с несколькими экземплярами программы]]. | ||
+ | <code bash> | ||
+ | postmulti -I postfix-mx -G in -e create | ||
+ | postmulti -i postfix-mx -e enable | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix/postfix-mx/main.cf> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Таблицы: | ||
+ | <code ini /etc/postfix-mx/table-in> | ||
+ | @domain.ru smtp:mail.domain.ru:25 | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix-mx/table-out> | ||
+ | @domain.ru [111.222.333.444]:25 | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix-mx/transport> | ||
+ | domain.ru smtp:mail.domain.ru:25 | ||
+ | </code> | ||
+ | |||
+ | <code ini /etc/postfix/postfix-mx/virtual> | ||
+ | test: info@domain.ru | ||
+ | </code> | ||
+ | |||
+ | Скрипт для компиляции таблиц: | ||
+ | <code bash /etc/postfix/postfix-mx/!update_db.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | postmap transport table-in table-out | ||
+ | postalias virtual | ||
+ | </code> | ||
- | ====== Ссылки ====== | ||