
Недавно я перешел на новый сервер (работающий под управлением Postfix 3.3.0) и заметил, что настройка smtp_bind_address
вмастер.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
Исходящие соединения 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
Но это не гибко, и я бы применял это только в крайнем случае (например, у вас нет прав на изменение настроек Postfix).