如何通过特定 IP 发送电子邮件?

如何通过特定 IP 发送电子邮件?

我们有 3 个 IP 连接到一个接口。我希望电子邮件流量通过特定 IP 发出,而不是默认 IP。(这是因为我们一直被 Spamhaus 屏蔽,所以我想将电子邮件流量与出站 Wi-Fi 流量等分开。)

现有的 iptables 规则块如下所示:

#Email
/sbin/iptables -A FORWARD -j ACCEPT -p tcp --dport 25
/sbin/iptables -t nat -A PREROUTING -i enp3s0 -p tcp --dport 25 -j DNAT --to [server's LAN IP]:25
/sbin/iptables -A FORWARD -j ACCEPT -p tcp --dport 110
/sbin/iptables -t nat -A PREROUTING -i enp3s0 -p tcp --dport 110 -j DNAT --to [server's LAN IP]:110
/sbin/iptables -A FORWARD -j ACCEPT -p tcp --dport 143
/sbin/iptables -t nat -A PREROUTING -i enp3s0 -p tcp --dport 143 -j DNAT --to [server's LAN IP]:143

enp3s0是外部网卡,enp6s0如果重要的话,是内部网卡。

我可以添加/修改什么以使出站流量通过非默认的特定 IP?

答案1

您可以使用并更改表链iptables中的源 IP ,或者使用高级路由并创建一个附加路由表,在其中设置属性的地址。POSTROUTINGnatip rulesrc

iptables

/sbin/iptables -t nat -A POSTROUTING \
    -o "$wan_if" -p tcp --dport 25 -j SNAT --to-source "$mail_ip"

策略路由

# just once
echo '25    smtp' >>/etc/iproute2/rt_tables

# after each boot
ip route add "$next_hop_network" dev "$wan_if"
ip route add default via "$next_hop" src "$mail_ip" table smtp
ip rule add prio 100 ipproto tcp dport 25 lookup smtp

相关内容