我有一个服务器,它既可以用作邮件服务器,也可以用作 Web 服务器。我想使用 iptables 来允许所有传入和传出连接,传入端口 25 除外。我只希望一个远程主机能够连接到端口 25(以便中继邮件)。
本质上,我想要一个完全开放的服务器,而不会将其变成垃圾邮件中继。有什么建议么?谢谢!
我有一个服务器,它既可以用作邮件服务器,也可以用作 Web 服务器。我想使用 iptables 来允许所有传入和传出连接,传入端口 25 除外。我只希望一个远程主机能够连接到端口 25(以便中继邮件)。
本质上,我想要一个完全开放的服务器,而不会将其变成垃圾邮件中继。有什么建议么?谢谢!
这听起来是一个相当简单的要求。话虽如此,我还是有点害怕告诉某人将他们的 SMTP 服务器配置为一个开放的中继。即使您限制了与机器的传入连接,您也确实应该使用某种身份验证来控制中继。甚至消费者 ISP 也不再允许从其网络内部进行未经身份验证的中继。
假设您的 INPUT 链设置为“接受”策略,并且当前允许新传入的数据包从链的末端脱落,只需执行以下操作:
为了完整起见,我最初的答案如下:
第一种方法具有使用单一规则的经济性,并且非常容易在视觉上解析,因为它都是独立的。第二个更容易添加额外的地址。
将源地址替换为“xxxx”。我怀疑你真的想要不止一次的来源,但你可以弄清楚。(您的 LAN 上可能有机器或您想与之交谈的其他客户端 - 但可能没有。)
(希望您在 INPUT 链的顶部有规则,以允许已建立的连接缩短链的其余部分并只是接受。除了最初的握手符合上述规则之外,您真的不想要任何东西。)
显然,将这些规则保存在您的发行版使用的任何 iptables 状态持久化装置中。
编辑:谢谢,womble。
如果您需要允许更多地址,这样的事情更具未来性。
从它转换到默认的拒绝策略也更容易,这总是一件好事。
此外,大多数邮件服务器允许您定义允许中继的地址列表,这可以增加另一个级别的保护。你没有说你使用的是哪个邮件服务器,但他们都应该有这个功能。