更改本地邮件传送到的端口?

更改本地邮件传送到的端口?

我已禁用 sendmail 守护进程(通过在 /etc/sysconfig/sendmail 中设置 DAEMON=no)。它没有监听端口 25。

相反,我使用自定义 SMTP 服务器。

  • 之前:它监听端口 25。它接受来自外部和本地的邮件(正如我想要的那样)。但是以 root 身份运行不好。
  • 之后:我只是将其改为监听端口 25252,并使用 iptables 将流量从 25 重定向到 25252。

这对于连接到端口 25 的其他机器来说很有效;它被重定向到 25252。

但是本地发送的邮件(例如 cron、monit)仍然尝试连接端口 25,但那里已经没有任何内容了。

要将本地邮件路由到我的替换 SMTP 服务器,似乎有两个选择:

  1. 更改本地邮件发送以连接端口 25252。
  2. 使 iptables 处理本地流量并将其从 25 重定向到 25252。

我更喜欢 2(如果可能的话),因为它扩展了我已经使用的方法(而 sendmail mc 文件让我头晕目眩)。但无论哪种方式,1 或 2,我都会感谢任何能帮助我学习如何做到这一点的人。谢谢。

答案1

您能否尝试一下:

iptables -t nat -A OUTPUT -p tcp -o lo --dport 25 -j DNAT --to-destination :25252

或者:

iptables -t nat -A OUTPUT -p tcp -o lo --dport 25 -j DNAT --to-destination IP:25252

其中 IP 是 sendmail 用于监听的 IP。您可以使用以下命令找到它:

sudo netstat -tlnp|grep sendmail

答案2

问题:您不能以 root 身份将自定义 SMTP 服务器绑定到端口 25/tcp 吗?然后放弃其特权?

相关内容