Задать вопрос
Angel2S2
@Angel2S2
пингвинёнок

Как разделать почтовый сервер на два отдельных (антиспам и почта)?

Добрый день, коллеги.

На данный момент мой почтовый сервер не справляется с нагрузкой. Поэтому хочу антиспам защиту вынести на отдельный сервер.

Что я хочу сделать / Как я вижу данную реализацию.
fw - файрвол, ему назначен внешний адрес (5.5.5.5, он же mx для внешних отправителей).
srv1 - антиспам - postfix, rspamd (адрес 10.1.1.1).
srv2 - почтовик - postfix, dovecot, web-морда, БД (адрес 10.1.1.2, он же mx для локальных пользователей).
IMAP, POP3, HTTP трафик идет напрямую на srv2.

Входящая из-вне почта попадает на srv1, проверяется на спам и передается на srv2 (10.1.1.1 -> 10.1.1.2), где раскладывается в ящики пользователей.
Внутренние пользователи подключаются только к srv2 (10.1.1.2). Он отправляет почту во-вне, минуя srv1.
5eea0e258675c336967515.png

На srv2, как я понимаю, нужно mysql открыть на интерфейсе 10.1.1.2, чтобы srv1 мог проверять есть ли адрес-получателя и в virtual_mailbox_maps на srv1 указать хост БД как 10.1.1.1. Или есть другой способ?

А вот дальше запутался... Не совсем понимаю, как это настроить в postfix. Вроде нужно правильно настроить master.cf, но что именно? Как postfix'у сказать, что на srv1 почту, после проверки rspamd, нужно передать на srv2 ? Подскажите пожалуйста.

Может я и вовсе не правильный подход выбрал? Поясните, как правильнее сделать. Настроить все на одном сервере не проблема, но вот как правильно разделить, не знаю.
  • Вопрос задан
  • 265 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 2
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Идея правильная, нужно чтобы srv1 всю принятую почту пересылал на srv2, который и будет ее разбирать. Антиспам-антивирус пусть работает на srv1, ему знать наличие ящика не обязательно - он все равно шлет все дальше.
Ответ написан
@MechanID
Админ хостинг провайдера
1 тут либо ходить в базу либо делать recipient verification, ходить в базу проще и надежнее, если нужно убрать нагрузку с базы на srv2 то делаете mysql репликацию srv2 -> srv1
2 тут есть варианты - самый простой указать в main.cf relayhost = srv2, или делать транспорты, или делать отдельную таблицу в базе с relay domains

Подход нормальный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы