阻止来自Localhost外部的SMTP连接

我有一个网站,需要发送电子邮件确认订单,并提醒某些事件的订阅用户。 由于其他原因,我不需要通过服务器发送电子邮件,所以我想阻止本地主机以外的任何人连接到SMTP端口25。 我试图这样做:

sudo iptables -A INPUT -p tcp -s 0.0.0.0 --dport 25 -j DROP 

但是我仍然可以telnet到端口25并从另一台计算机inputSMTP命令。 我究竟做错了什么? 另外,有没有更好的方法来实现我想要的? 澄清:我想要的是一台机器,可以发送电子邮件(通过SMTP),但只有源于机器上运行的脚本。 而且任何configuration都必须通过重新启动来“活”。

我在Ubuntu上使用Postfix(哈代)。

我认为如果你不想从外面接收电子邮件,更好的解决办法是告诉postfix,在master.cf文件中replace:

 smtp inet n - n - - smtpd 

这通常是第一个非注释行,但是您的行驶里程可能会有所不同,具体取决于您的供应商修改的后缀是:

 127.0.0.1:smtp inet n - n - - smtpd 

我相信你不想要-s 0.0.0.0子句。 你只是拒绝从0.0.0.0地址访问。

你可能需要像这样的东西:

 sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 25 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 25 -j DROP 

这将接受来自本地主机(即从回送范围 – 127.0.0.1-127.255.255.255)的任何传入连接,并放弃所有其他。