特定 IP 地址上的 postfix 虚拟域

特定 IP 地址上的 postfix 虚拟域

我们postfix目前正在使用单个域(example.com)运行,并且我们有适当的PTR记录。

现在我们想再添加一个域,但我想完全隔离该域,甚至我PTR也想隔离记录。所以我们public在同一服务器中添加了新的IP地址并将PTR条目添加到abc.com

  1. example.com - 1.1.1.1
  2. abc.com - 2.2.2.2

我如何告诉 postfix 在1.1.1.1ip 地址上运行 example.com 并在 abc.com 上运行2.2.2.2

因此,如果有人从外部尝试在 25 端口上远程登录,他会获得相关 IP 的不同的适当域。

$ telnet mail.example.com 25
Trying ::1...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix

对于 abc.com

$telnet mail.abc.com 25
Trying ::1...
Connected to mail.abc.com.
Escape character is '^]'.
220 mail.abc.com ESMTP Postfix

答案1

以下应该适用于等于或高于的后缀2.7

您需要修改/etc/postfix/master.cf,将该行更改 smtp inet n - n - - smtpd为如下内容:

domain1 unix -       -       n       -       -       smtp
      -o syslog_name=postfix-mail.example.com
      -o smtp_helo_name=mail.example.com
      -o smtp_bind_address=1.1.1.1

domain2 unix -       -       n       -       -       smtp
      -o syslog_name=postfix-mail.abc.com     
      -o smtp_helo_name=mail.abc.com
      -o smtp_bind_address=2.2.2.2
#...

然后,/etc/posfix/main.cf您需要删除旧的运输地图(如果有),然后添加sender_dependent_default_transport_maps以下示例:

sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport

/etc/postfix/sender_transport你需要添加:

@example.com    domain1:
@abc.com    domain2:
#...

然后您需要使用sender_transport命令从文件创建一个哈希数据库:

postmap hash:/etc/postfix/sender_transport

重新启动 postfix 以获取更改。

您还可以将传输映射移动到数据库并为域等创建一个表。这只是一个基本设置,但它应该会给您一些想法。

相关内容