Я недавно мигрировал на новый сервер (работает постфикс 3.3.0) и заметил , что установка smtp_bind_address в master.cf не оказывает никакого эффекта. Рассматриваемый сервер имеет 10 адресов ipv4, и важно, чтобы исходящая почта направлялась через правильный адрес. Вот фрагмент того, что у меня есть (192.168.100.1 - только пример - реальный ip - это реальный wan-адрес):

smtp      inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1
smtps     inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1

У меня также есть amavis и postsrsd, работающие вместе с этим почтовым сервером, поэтому почта передается от одного сервиса к другому, и, честно говоря, я немного запутался в цепочке событий, но ранее эта конфигурация работала отлично.

Я попытался переместить smtp_bind_address в main.cf, и это сработало, но возникли другие проблемы, поскольку amavis и postsrsd ожидают, что почта будет отправлена через 127.0.0.1.

Как я могу привязать исходящую почту к определенному адресу в сочетании с моими фильтрами контента?

1 ответ1

0

Исходящие соединения smtp/relay контролируются этими линиями в master.conf

smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp

Таким образом, вы можете добавить -o smtp_bind_address=192.168.100.1 к тому, что вам нужно.

Также вы можете использовать эту комбинацию в main.conf

inet_interfaces = 127.0.0.1 192.168.100.1
smtp_bind_address = 192.168.100.1

Это позволяет приложениям подключаться к 127.0.0.1, в то время как исходящий smtp привязывается к определенному адресу по умолчанию.

Не забывайте, что брандмауэр может переопределять все эти конфигурации, например, это простое правило:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

преобразует адрес источника любого исходящего соединения (из интерфейса eth0) в основной (по умолчанию) адрес этого интерфейса. С другой точки зрения, вы можете установить адрес источника SMTP-соединения с помощью брандмауэра (без настройки postfix):

iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -j SNAT --to-source 192.168.100.1

Но это не гибко, и я бы сделал это только в крайнем случае (например, у вас нет прав на изменение настроек постфикса).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .