Инструменты пользователя

Инструменты сайта


examples:postfix_multi_external_domains_and_lan_relay

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
examples:postfix_multi_external_domains_and_lan_relay [2020-06-19 11:48]
GreyWolf создано
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|Переключающий сервер]] обеспечивает взаимодействие между внешними почтовыми доменами и доменами внутри локальной сети.
 +
 +
 +Пример реализован на [[postfix:​postfix|]] с применением [[postfix:​postfix#​postmulti|технологии работы с несколькими экземплярами программы]].
 +
 +{{anchor:​external}}
 +====== Внешний домен ======
 FIXME FIXME
  
-Пример реализован на [[postfix:​postfix|]].+Сначала нужно содать структру папок по [[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>​
  
-====== Ссылки ====== 
  
  
examples/postfix_multi_external_domains_and_lan_relay.1592556480.txt.gz · Последние изменения: 2020-06-19 11:48 — GreyWolf