iptables - sendmail 仅发送出去

iptables - sendmail 仅发送出去

我环顾四周并尝试了许多方法。

如果我想要一个(centos)服务器只能发送电子邮件(通知我)但不能访问其他互联网,那么 iptables 是什么。

我已尝试过,但没有用,只有当 iptables 停止时才会发送电子邮件。

   iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p udp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
   iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
   iptables -A OUTPUT -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp --dport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp -m tcp -j REJECT

有任何帮助/知识吗?

Sendmail 日志显示:当 iptables 处于活动状态时,stat=Deferred: Connection denied by [127.0.0.1]

更新:以下规则似乎有效:

   iptables -A INPUT  -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
   iptables -A OUTPUT  -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp -m tcp -j REJECT

答案1

Sendmail-8.12+ 通过 127.0.0.1:25 传递“命令行电子邮件”。这样做是为了避免被安装为 set root uid。

您可以让 sendmail 仅在 127.0.0.1(环回接口)上接受传入的 SMTP 连接。它应该阻止传入的外部 SMTP 连接。
将以下行添加到 sendail.mc 并将其重新复制到 sendmail.cf 中[1]

DAEMON_OPTIONS(`Addr=127.0.0.1,Port=smtp,Name=MTA')

您也可以尝试以下 iptables 规则:

iptables -A INPUT -p tcp --dport 25 -d 127.0.0.1 -i lo -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j REJECT 
iptables -A INPUT -p tcp --dport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -j REJECT

相关内容