Назад | Перейти на главную страницу

Postfix как ретранслятор только для определенных сетей

У меня странная проблема с постфиксом, из-за которой я немного скучаю по стене, поскольку, кажется, работает в 50% случаев, но без изменений.

Чего я хочу добиться:

У меня есть несколько виртуальных серверов в нескольких разных внешних сетях, например. 1.2.3.4/24 10.20.30.40/24 11.22.33.44/24

Я установил 4 сервера postfix с циклическим DNS, все они имеют один и тот же файл конфигурации main.cf.

Я хочу, чтобы только серверы в этих внешних подсетях могли ретранслировать через почтовые серверы, имя пользователя или пароль не требуются.

Я немного почитал, и мне показалось, что вариант mynetworks был подходящим вариантом, однако он работает только в 50% случаев, даже если я уберу остальные 3 сервера из картины и оставлю 1 почтовый сервер, работающий на 50% время, когда я получаю ошибки отказа реле.

вот используемая конфигурация:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no

readme_directory = /usr/share/doc/postfix

smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = relay.example.co.uk
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = relay.example.co.uk, localhost.example.co.uk, , localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks = 1.2.3.4/24
mynetworks = 10.20.30.40/24
mynetworks = 11.22.33.44/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
smtpd_error_sleep_time = 2s
smtpd_hard_error_limit = 20
smtpd_recipient_restrictions = permit_mynetworks

Я подозреваю, что мое предназначение может сыграть здесь свою роль, но любая помощь приветствуется?

Согласно справочной странице postconf (5):

Когда один и тот же параметр определяется несколько раз, запоминается только последний экземпляр.

Это означает, что определение вашего mynetworks переменная должна выглядеть примерно так:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 1.2.3.4/24 10.20.30.40/24      11.22.33.44/24

или

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 1.2.3.4/24
 10.20.30.40/24
 11.22.33.44/24

или

mynetworks = 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128,
 1.2.3.4/24,
 10.20.30.40/24,
 11.22.33.44/24,