防火墙规则仅允许 Postfix 通过端口 25 上的 SMTP 发送电子邮件

防火墙规则仅允许 Postfix 通过端口 25 上的 SMTP 发送电子邮件

正如建议的那样如何检测网络上的垃圾邮件机器人?我如何设置防火墙规则以仅允许 Postifx 使用端口 25 上的 SMTP 发送电子邮件并禁止所有其他应用程序通过端口 25 发送?

我想要控制单台机器的电子邮件服务器。

正在讨论相关事宜这里但不确定 Iptables 规则。

答案1

做两件事:

  1. 在其自己的用户帐户下运行 Postfix。它应该在任何健全的系统上,已经这样做了。

  2. 设置与该帐户的 uid 匹配的 iptables 规则,该规则阻止不是来自该用户的到目标端口 25 的传出流量。

    例如:这里我们假设用户名是postfix,但在您的系统上它可能有所不同。

    iptables -I OUTPUT -m owner ! --uid-owner postfix -m tcp -p tcp --dport 25 -j REJECT --reject-with icmp-admin-prohibited
    ip6tables -I OUTPUT -m owner ! --uid-owner postfix -m tcp -p tcp --dport 25 -j REJECT --reject-with icmp6-adm-prohibited
    

    请注意,当您保存规则时,用户名将转换为数字 uid。

答案2

如果您只想控制单个 Linux 系统的行为,@MichaelHampton 的答案非常好。您链接的 serverfault 页面的标题指的是网络。从您的帖子中无法清楚看出这是否是您需要做的一部分。

您可以通过限制发送到网络外的端口 25 来解决这个问题,这样它只能由该网络中的单个 IP 访问。该 IP 可能与一个锁定的系统(可能是虚拟的或容器化的)相关联,该系统仅运行邮件中继。另一方面,如果您有可以从该 IP 发送的不受信任的进程,那么请返回 @MichaelHampton 的答案以了解如何锁定它。

相关内容