【问题标题】:How to allow mail through iptables?如何允许邮件通过 iptables?
【发布时间】:2012-05-27 02:19:52
【问题描述】:

我正在保护我的服务器(使用 iptables),以便只打开 http 和 ssh 端口,这很好,尽管我在某些应用程序中使用了mail 命令(服务器:CentOS 6.2),但它无法通过现在感谢 iptables 阻止了一切。

我允许它访问哪些端口?

邮件使用:echo "{{message}}" | mail -s "{{subject}}" me@mail.com

我尝试了标准邮件端口 25,但没有成功。 这是当前的设置:

iptables --flush

iptables -P INPUT DROP
iptables -P OUTPUT DROP

# incoming ssh
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

# outgoing ssh 
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

#HTTP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 

# mail (does not work)
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

(编辑)答案:有效的 iptables 规则:

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

【问题讨论】:

    标签: iptables


    【解决方案1】:

    OUTPUT 命令也应该引用--dport,而不是--sport。您还需要允许 NEW 传出数据包以启动与 SMTP 服务器的连接。

    然而,一般来说,由于OUTPUT 只控制您自己的系统生成的那些数据包,您可以将OUTPUT 策略设置为ACCEPT,除非您需要防止生成传出数据包。


    另外两个cmets:

    1. Jay D 建议“允许一切,然后开始阻止特定流量”是不安全的。 永远不要以这种方式配置iptables,因为您必须提前知道攻击者可能使用哪些端口并单独阻止它们。 总是尽可能使用白名单而不是黑名单。

    2. 来自战壕的提示:在调试iptables 时,-Insert 和-Appen 在每个链的开头和结尾记录消息通常很有帮助,然后清除计数器并运行实验。 (在您的情况下,发出mail 命令。)然后检查计数器和日志以了解数据包如何通过链迁移以及它们可能被丢弃的位置。

    【讨论】:

    • 啊是的,谢谢。我想我也会允许所有的 OUTPUT。
    • 有两种方法: 1. 当你做阻塞一切,然后开始为特定的协议流量打孔。 2. 允许一切然后开始阻止特定流量。我坚信 1. 是一个更好的策略。
    • @JayD:恕我直言,但#1不仅仅是比#2“更好的策略”; #2不安全到疏忽的程度。除了学习练习之外,不要永远推荐这种方法。
    • 感谢额外的 cmets。是的,我不太清楚为什么有人会为这种想法使用白名单。不知道日志消息 - 这是一个巧妙的小技巧。
    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    相关资源
    最近更新 更多