Я был бы признателен и благодарен, если бы кто-нибудь мог предложить мне следующую проблему, с которой я работаю в течение последних 7 дней.
Нынешнее состояние:
1 рабочий почтовый сервер (совместное размещение), на котором размещены 5 доменных имен (нет, мы не хостинговая компания, но это доменные имена дочерней компании), который имеет 3 IP-адреса.
Текущий почтовый сервер хорошо работает с виртуальным пользователем / почтовым ящиком с 5 доменами, упомянутыми ранее, с очень хорошо работающим ограничением скорости постфикса, что не позволяет нам быть отмеченными как спам учетными записями gsuite, бизнес-письмами Yahoo или пользователями Microsoft 365.
Но есть эти новые интересные требования :)
Новое требование менеджмента:
gmail.com polite:
yahoo.com polite:
hotmail.com turtle:
live.fr turtle:
orange.fr turtle:
Что я успешно делал до сих пор:
Проблемы, которые я пытаюсь решить, задав ваше предложение:
Я не могу делать и то и другое одновременно, потому что когда я использую 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
Я не могу заставить их работать вместе, но я могу заставить каждого из них работать отдельно, когда один из них прокомментирован. Я не знаю и не уверен, что это постфиксное поведение, потому что обычно с постфиксом все возможно :) ... всегда есть способ (я верю в постфикс)
Следуя предложению хорошего человека по имени @Ward, вот как я решил проблему, указанную выше.
Краткий ответ на мой предыдущий вопрос:
К сожалению, мы не можем ограничить исходящие сообщения (smtp) с помощью transport_maps, пока включен sender_dependent_default_transport_maps. (Буууууууууууу ... да я знаю). Это должен быть один из активных элементов, даже если вы выполнили постфиксную проверку и не обнаружили ошибок, но это не работает.
Кроме того, если вы чувствуете, что не тратите больше времени, чтобы прочитать этот длинный ответ, и хотите узнать больше, как я его придумал, тогда прочтите следующий ответ ... Я знаю, это довольно долго, но оно того стоит. Я заметил в основном во время своих пробных ошибок, и когда нашел способ опубликовать его здесь, чтобы мотивировать себя продолжать и не отказываться от этой настройки Postfix: P.
[ОБНОВЛЕНИЕ 27 ОКТЯБРЯ 2018 г.] В ЭТОМ ВОПРОСЕ ИСПОЛЬЗУЕТСЯ ПОМОЩЬ, НО ПО ПРОГРЕССУ КУРСА:
Итак, я следил за предложением @PeterZhabin установить еще один экземпляр постфикса, который я успешно установил для второго экземпляра запущенного постфикса.
И прежде чем продолжить, я хотел бы сообщить вам, что я решил не использовать sender_dependent_default_transport_maps. Я думал, что не имеет смысла снова использовать его в среде, где запущено несколько экземпляров postfix, где каждый из экземпляров postfix может иметь свои собственные main.cf и master.cf. И поэтому я отказался от возможности использовать sender_dependent_default_transport_maps и использовать transport_maps для обоих экземпляров postfix.
Да, установка прошла успешно, надеюсь, еще несколько сбоев ... сбои были из-за того, что я тоже использую Amavisd, так что мне все еще нужны советы от вас, ребята, о том, как это запустить.
Спасибо, что продолжаете читать это и продолжаете помогать мне, я хочу, чтобы вы знали, что я действительно ценю это.
Итак, продолжим процесс ...
МНОЖЕСТВЕННЫЙ ЭКЗЕМПЛЯР 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 (второй экземпляр постфикса):
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:
Изменена строка, чтобы она не конфликтовала с первым экземпляром постфикса прямо в строке, где:
127.0.0.1:10025 inet n - - - - smtpd
в
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);
ОБНОВЛЕНИЕ DNS И СОЗДАНИЕ ОБРАТНОГО DNS, СООТВЕТСТВУЮЩЕГО mail2.thecompany.com
Затем я перезапустил Amavisd и Postfix, зашел в свою панель DNS и создал новую запись A в DNS thecompany.com:
mail2.thecompany.com A 1.2.3.4.5.22
Затем я создал обратный 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 и увидел в журнале, из которого оно пришло постфиксная секунда / smtp, тогда я подумал, что все в порядке, пока не понял, что следующие строки пришли туда, где сказано, что оно было отправлено постфикс / smtp to 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?
[ОБНОВЛЕНИЕ 28 ОКТЯБРЯ 2018] НАКОНЕЦ, ЭТО РАБОТАЕТ!
Я хотел бы подтвердить, что конфигурация выше 27 октября 2018 г. работала после того, как я отключил content_filtering во 2-м экземпляре postfix, например:
в /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
И да, письмо было отправлено и его тоже можно было получить :).
Теперь, чтобы ответить на мой собственный вопрос: как установить ** domain5.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 отключен для ВНУТРЕННИХ сетей.
Однако меня не устраивает такой подход, потому что Amavis нужно делать то, что он должен делать, для защиты обоих экземпляров Postfix, работающих на одной машине.
Если для Amavis включена фильтрация содержимого, то Amavis будет пересылать smtp первому экземпляру postfix после того, как он завершит сканирование.
Хотя amavisd можно настроить для прослушивания нескольких портов TCP, к сожалению, он поддерживает только один метод $ notify_method и $ forward_method, который фактически пересылает все письма, отправленные из 2-го экземпляра постфикса, обратно в 1-й экземпляр постфикса. И поэтому IP изменился обратно на 1.2.3.4.11 (первый IP), когда электронное письмо было отправлено из второго экземпляра.
Единственный способ сохранить отправку Postfix 1 с IP 1, Postfix 2 посылать с IP 2 - это ОБХОДИТЬ Amavis для фильтрации содержимого во ВНУТРЕННИЕ сети. Однако это также означало бы, что когда вредоносные программы внедрили наш сервер, у нас не было бы безопасности, чтобы хотя бы удерживать их от отправки электронных писем на другие серверы, а это маловероятно (по крайней мере, для меня).
Наконец, я применил подход виртуализации сервера вместо создания постфикса в другом экземпляре.
Надеюсь, это поможет кому-то, у кого такая же проблема, как у меня.
Cheerio!