PostFix “inet_interfaces”究竟是什么意思?

yam*_*_HD 2 email linux ubuntu email-server postfix

我正在安装 Postfix Server,有人说我必须更改

inet_interfaces = allinet_interfaces = loopback-only

所以,现在我想知道,是什么inet_interfaces恰恰意味着(以及它正在做什么),什么是之间的区别allloopback-only

Jac*_*ans 5

联机帮助页

inet_interfaces (default: all) 此邮件系统接收邮件的网络接口地址。指定“all”以在所有网络接口上接收邮件(默认),并指定“loopback-only”仅在环回网络接口上接收邮件(Postfix 2.2 及更高版本)。该参数还控制向 user@[ip.address] 发送邮件。

注意1:当这个参数改变时,你需要停止和启动Postfix。

注2:地址信息可以包含在[]中,但这里不需要这个表格。

当 inet_interfaces 仅指定一个不是环回地址的 IPv4 和/或 IPv6 地址时,Postfix SMTP 客户端将使用此地址作为出站邮件的 IP 源地址。Postfix 2.2 及更高版本支持 IPv6。

在具有独立 Postfix 实例侦听“内部”和“外部”接口的多宿主防火墙上,这可以防止每个实例能够访问防火墙“另一侧”的远程 SMTP 服务器。将 smtp_bind_address 设置为 0.0.0.0 避免了 IPv4 的潜在问题,将 smtp_bind_address6 设置为 :: 解决了 IPv6 的问题。

多宿主防火墙的更好解决方案是将 inet_interfaces 保留为默认值,而是在 master.cf SMTP 服务器定义中使用显式 IP 地址。这通过确保防火墙的每一侧都知道另一个 IP 地址仍然是同一主机来保留 Postfix SMTP 客户端的循环检测。当每个 IP 地址服务于不同的域(并且具有不同的 $myhostname 设置)时,将 $inet_interfaces 设置为单个 IPv4 和/或 IPV6 地址主要用于辅助 IP 地址上的域的虚拟托管。

另请参阅 proxy_interfaces 参数,了解通过代理或地址转换器转发到 Postfix 的网络地址。

例子:

inet_interfaces = all (DEFAULT) inet_interfaces = loopback-only (Postfix version 2.2 and later) inet_interfaces = 127.0.0.1 inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later) inet_interfaces = 6.1927

这什么时候有用?

您可以操作 master.cf 文件并将端口 25 绑定到多个 IP 地址,以获得略有不同的配置。

我什么时候会使用仅环回

当您只想使用 postfix 将电子邮件排队以将您的应用程序转发到另一个电子邮件系统时,在应用程序中处理 smtp 很容易,处理队列、延迟和加密就不那么容易了。许多开发人员会添加 postfix 来为您处理这个问题,类似于使用 nginx 进行 SSL。

这也可以防止没有额外防火墙的系统(Centos 与 Ubuntu)来防止其他本地网络系统使用您的中继发送垃圾邮件/网络钓鱼。

您不会在 docker 中使用此设置,因为您通常会将它们与 docker-compose 链接起来,并且不想进行此更改,因为它不再仅是本地的。