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

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


examples:postfix_multi_external_domains_and_lan_relay

Это старая версия документа!


Пример почтового сервера на Postfix с несколькими внешними доменами и переключающим сервером

Интернет
Внешние домены Внешний домен 1 Внешний домен 2 Внешний домен n
Переключающий сервер
Локальная сеть

FIXME

Пример реализован на Postfix с применением технологии работы с несколькими экземплярами программы.

Внешний домен

FIXME

Сначала нужно содать структру папок по технологии работы с несколькими экземплярами программы.

postmulti -I postfix-domain1 -G in -e create
postmulti -i postfix-domain1 -e enable
/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

Также в файл /etc/postfix/postfix-domain1/main.cf нужно вставить следующие настройки:

/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
/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

Таблицы:

/etc/postfix/postfix-domain1/transport
domain1.ru smtp:АДРЕС_ПЕРЕКЛЮЧАЮЩЕГО_СЕРВЕРА
/etc/postfix/postfix-domain1/virtual
test:          info@domain1.ru

Скрипт для компиляции таблиц:

/etc/postfix/postfix-domain1/!update_db.sh
#!/bin/bash
 
postmap transport
postalias virtual

Переключающий сервер

Сначала нужно содать структру папок по технологии работы с несколькими экземплярами программы.

postmulti -I postfix-mx -G in -e create
postmulti -i postfix-mx -e enable
/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

Таблицы:

/etc/postfix-mx/table-in
@domain.ru smtp:mail.domain.ru:25
/etc/postfix-mx/table-out
@domain.ru [111.222.333.444]:25
/etc/postfix-mx/transport
domain.ru  smtp:mail.domain.ru:25
/etc/postfix/postfix-mx/virtual
test:          info@domain.ru

Скрипт для компиляции таблиц:

/etc/postfix/postfix-mx/!update_db.sh
#!/bin/bash
 
postmap transport table-in table-out
postalias virtual

Ссылки

examples/postfix_multi_external_domains_and_lan_relay.1592568293.txt.gz · Последние изменения: 2020-06-19 15:04 — GreyWolf