我正在设置 Postfix 来为不支持身份验证的内部设备转发邮件。我们将拥有多台设备。有没有更简单的方法来列出设备,而不是只用逗号分隔它们?随着时间的推移,这个列表可能会变得很长,因为子网不同。任何关于如何更好地管理这个列表的建议都会有所帮助。
mynetworks = 192.168.1.5, 192.168.1.62, 192.168.1.64
谢谢!Eric
答案1
根据您的要求,最简单的方法可能是简单地列出整个范围,例如您提供的所有 IP 都是 RFC1918(不可路由)空间,因此您可以使用类似
mynetworks = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12(如果您不熟悉它,每个 IP 范围末尾的 /XX 表示范围有多大 - /24 是 C 类)
如果您只有这些范围内的 IP 地址,即,您可以将一个主机设为 192.168.1.3,将另一个主机设为 192.168.20.44,并且两者都将被覆盖,因为它们是更大的非路由块的一部分。(但不要对可路由的 IP 地址执行此操作)。
另一种让生活更轻松的方法可能是使用哈希表、mysql 表或正则表达式列表(就像您可能对其他选项所做的那样)将此信息放入单独解析的文件中。请参阅DATABASE_README.html#类型获取查找表类型的列表
答案2
我创建了一个名为 auth_mailers 的文件:
#HQ Wired
172.16.2.2 any_value
#HQ Wireless
172.16.3.2 any_value
创建哈希表:
postmap auth_mailers
编辑我的 main.cf
mynetworks = hash:/etc/postfix/auth_mailers
重新加载后缀:
sudo /etc/init.d/postfix reload
这似乎有效,但我会做更多的测试。
答案3
如果要使用带有掩码值的网络符号,如 192.168.0.0/16,则应使用 cidr 类型,而不是哈希类型。格式相同
192.168.0.0/16 any_value
10.0.0.0/8 any_value