Я был бы признателен и признателен, если бы кто-нибудь мог предложить мне по следующей проблеме, с которой я работаю последние 7 дней.
Текущее состояние:
1 рабочий почтовый сервер (совместное размещение), на котором размещено 5 доменных имен (нет, мы не хостинговая компания, но это доменные имена дочерней компании), который имеет 3 IP-адреса.
То, что я успешно делал до сих пор:
Проблемы, которые я пытаюсь решить, задав ваше предложение:
Я не могу сделать и то, и другое на в то же время, потому что когда я использую sender_dependent_default_transport_maps вместе с transport_maps , похоже, что Postfix игнорирует transport_maps , поэтому ограничение скорости не работает.
Мои вопросы:
Можно ли заставить sender_dependent_default_transport_maps работать вместе с transport_maps в main.cf?
Если это возможно, то как заставить его работать?
Пожалуйста, не поймите меня неправильно, что я раньше ничего не делал и не искал. Тот факт, что я искал и пробовал то и это в сети, но до сих пор не смог заставить их работать вместе, и поэтому я ищу здесь помощи (надеюсь!).
Большое спасибо!
В моем main.cf в основном нет relayhost, нет relay_domains, то, что я пытаюсь спросить, находится в этой строке здесь:
transport_maps = hash:/etc/postfix/transport
и
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_dependent_transport_maps
Я не могу заставить их работать вместе, но я могу заставить каждого из них работать отдельно, когда один из них комментируется. Я не знаю и не уверен, что это постфиксное поведение, потому что обычно с постфиксом все возможно :) ... всегда есть способ (я верю в postfix)
По предложению хорошего человека по имени @Ward, вот как я решил проблему, описанную выше.
Короткий ответ на мой предыдущий вопрос:
К сожалению, мы не можем ограничить исходящие сообщения (smtp) с помощью transport_maps, пока sender_dependent_default_transport_maps включена. (boooo ..., да, я знаю). Это должен быть любой из элементов, который активен, даже если вы сделали постфиксную проверку и не нашли ошибок, но так не работает.
Также, если вы чувствуете, что не тратите больше времени на чтение этого длинного ответа и хотите узнать больше о том, как я его придумал, то прочтите следующий ответ... Я знаю, он довольно длинный, но он того стоит. Я заметил, в основном, во время пробных ошибок и когда нашел способ разместить его здесь, чтобы мотивировать себя продолжать и не отказываться от этой установки Postfix :P.
.[ОБНАРУЖИВАНИЕ 27-ой ОКТ, 2018] STILL SEAKING HELP ДЛЯ ЭТОГО ИССЛЕДОВАНИЯ, но с ПРОГРЕССОЙ ИСПОЛЬЗОВАНИЯ:
Итак, я следовал предложению @PeterZhabin установить другой постфиксный экземпляр, который я успешно установил второй постфиксный экземпляр, запущенный.
И прежде чем продолжить, я хотел бы сообщить вам, что я решил не использовать sender_dependent_default_transport_maps. Я подумал, что нет смысла снова использовать его в окружении, где запущено несколько экземпляров постфиксов, где каждый из постфиксов может иметь свой собственный main.cf и master.cf. И поэтому я отказался от опции использовать sender_default_transport_maps и использовать transport_maps для обоих экземпляров постфиксов.
Да, установка прошла успешно, надеюсь, еще несколько глюков... глюки были из-за того, что я тоже использую Amavisd, так что мне все еще нужны советы от вас, ребята, как это сделать.
Спасибо, что продолжаете читать это и помогаете мне, я бы хотел, чтобы вы знали, что я действительно ценю это.
Итак, давайте продолжим процесс...
MULTIPLE INSTANCE OF POSTFIX
Ниже приведены конфигурации, которые я изменил только для этой темы:
Вот мой main.cf в /etc/postfix/main.cf (1-й постфиксный экземпляр):
inet_interfaces = 1.2.3.4.5.11
myhostname = mail.thecompany.com
multi_instance_wrapper = ${command_directory}/postmulti -p --
multi_instance_enable = yes
multi_instance_directories = /etc/postfix-second
А вот мой main.cf в /etc/postfix second/main. cf (2-й постфиксный экземпляр):
inet_interfaces = localhost, 1.2.3.4.5.22
myhostname = mail2.thecompany.com
syslog_name = postfix-second
#master_service_disable = inet
#authorized_submit_users =
multi_instance_group = postfix
multi_instance_name = postfix-second
multi_instance_enable = yes
smtp_bind_address = 1.2.3.4.5.22
И в /etc/postfix second/master.cf:
Изменили строку так, чтобы она не конфликтовала с 1-м постфиксным экземпляром прямо в строке, где:
127.0.0.1:10025 inet n - - - - smtpd
in
1. 2.3.4.5.22:10025 inet n - - - - - smtpd
так что теперь весь этот раздел в /etc/postfix second/master.cf выглядит следующим образом:
#127.0.0.1:10025 inet n - - - - smtpd
1.2.3.4.5.22:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8,1.2.3.4.5.22
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
Затем я добавил свой второй IP в /etc/amavisd/amavisd. conf, так что я не получу ошибку Blocked-MTA:
@inet_acl = qw( 127.0.0.1 [::1] 1.2.3.4.5.22);
UPDATING DNS AND CREATED A REVERSE DNS MATCHING THE mail2.thecompany.com
Далее я перезапустил Amavisd и Postfix, перешел в свою панель DNS и создал новую запись A Record на DNScompany.com:
mail2.thecompany.com A 1.2.3.4.5.22
Затем я создал Reverse DNS для сопоставления IP-адреса с адресом mail2.thecompany.com.
ДОБАВИТЬ НОВУЮ MX-запись на DOMAIN5.COM, КАК ВКЛЮЧЕН
Затем перейдите на панель DNS DOMAIN5.COM и добавьте еще одну MX-запись:
MX 10 mail.thecompany.com
MX 15 mail2.thecompany.com
После разрешения DNS я проверил ее, запустив Postfix, и никаких ошибок в почтовом блоге не обнаружено.
Затем в моем почтовом клиенте (Thunderbird) я настроил почту busythomas@domain5.com, используя настройки SMTP и IMAP:
IMAP
host: mail2.thecompany.com
username: busythomas@domain5.com
pass: mypass
SMTP
host: mail2.thecompany.com
username: busythomas@domain5.com
pass: mypass
Наконец, я отправил тестовое письмо в свой аккаунт gmail и увидел в журнале, что оно пришло из postfix second/smtp, затем я подумал, что все в порядке, пока не понял, что пришли следующие строки, где говорится, что оно было отправлено из postfix/smtp в gmail :(. ..Зайдя в gmail, я увидел заголовок письма и заметил, что письмо было отправлено с использованием IP по умолчанию, которым является 1.2.3.4.5.11, а не 1.2.3.4.5.22.
О, хорошей новостью является то, что остальные 4 домена, для которых они были установлены на mail.thecompany.com, так как IMAP и SMTP Настройки работают нормально, все письма приходят и уходят :).
Мой вопрос сейчас: Как установить domain5.com для отправки почты, используя IP 1.2.3.4.5.22, а не IP 1.2.3.4.5.11?
.[UPDATE OCT 28th, 2018] ФИНАЛЬНО, РАБОТАЕТ!
Хочу подтвердить, что конфигурация, описанная выше 27 октября 2018 года, работала после того, как я отключил функцию content_filtering во 2-м экземпляре постфикса, например:
в /etc/postfix second/main. cf Я прокомментировал строку:
#content_filter = smtp-amavis[1.2.3.4.5. 22]:10024
а также прокомментировал content_filter в /etc/postfix second/master.cf
smtp inet n - n - - smtpd
# -o content_filter=smtp-amavis:1.2.3.4.5.22:10024
Для того, чтобы действительно проверить, работает второй экземпляр или нет, я остановил все постфиксные экземпляры, а затем запустил только второй постфиксный экземпляр, используя следующую команду:
postmulti -i postfix-second -p start
И да, письмо было отправлено и также могло быть получено :).
Теперь, чтобы ответить на мой собственный вопрос: Как установить **домен5.com для отправки по IP 1.2.3.4.5.22, а не с IP 1.2.3.4.5.11?**
Я просто настраиваю SMTP / OUTGOING SERVER в почтовом клиенте(Thunderbird) на mail2.thecompany.com. Вот и все, и начинается отправка с предполагаемого IP, а когда я хочу вернуться назад, я устанавливаю SMTP сервер на Thunderbird на mail.thecompany.com, и все равно могу отправлять почту.
А преимущество такого подхода в том, что когда с mail2.thecompany.com что-то происходит (например, попадает в черный список), то даже сам пользователь может изменить SMTP настройки, чтобы вернуться на mail.thecompany.com, и почта снова заработает.
Для тех, кто почувствовал, что этого достаточно, можно остановиться на этом.
Но для себя я все равно хотел бы знать, как я могу заставить второй экземпляр постфикса работать вместе с включенной функцией content_filter. Но это будет еще один вопрос.
Пожелайте удачи.
[ОБНАРУЖИВАНИЕ 29 ОКТЯБРЯ 2018 ГОДА] ЗАКЛЮЧЕНИЕ И ОКОНЧАТЕЛЬНАЯ ОБНАРУЖИВАНИЕ:
На этом я завершаю данную задачу. Все требования от руководства выполнены, следовательно, это сделано. Теперь, когда домен domain5.com может быть отправлен с другого IP на том же сервере, когда фильтр содержимого Amavis является BYPASS-ed для INTERNAL сетей.
Однако я не согласен с таким подходом, потому что Amavis необходимо делать то, что он должен делать, чтобы защитить оба экземпляра Postfix, запущенных на одной машине.
Если бы контент-фильтр для Amavis был включен, то после сканирования Amavis пересылал бы smtp в первый экземпляр постфикса.
Хотя amavisd может быть настроен на прослушивание нескольких TCP портов, к сожалению, он поддерживает только один $notify_method и $forward_method, которые фактически пересылают все письма, отправленные из 2-го экземпляра постфикса обратно в 1-й экземпляр постфикса. И, следовательно, IP-адрес изменился обратно на 1.2.3.4.11 (первый IP-адрес), когда почта была отправлена из второй инстанции.
Единственный способ сохранить Postfix 1 отправку с IP-адреса 1, Postfix 2 отправку с IP-адреса 2, - это BYPASS Amavis для контент_фильтрации в INTERNAL-сетях. Однако, это также означает, что когда вредоносные программы внедряют наш сервер, у нас нет безопасности, по крайней мере, чтобы удержать их от отправки писем другим серверам, и это маловероятно (по крайней мере, для меня).
Наконец, я использовал подход Серверной Виртуализации, вместо того, чтобы создавать постфикс в другом экземпляре.
Надеюсь, это поможет кому-нибудь, у кого есть та же проблема, что и у меня.
Спасибо!
.