【问题标题】:iptables --sport vs --dport. INPUT vs OUTPUTiptables --sport 与 --dport。输入与输出
【发布时间】:2015-03-09 14:59:57
【问题描述】:

我在理解 iptables 时遇到了一些麻烦。我知道它起到了过滤器的作用,但有些东西没有点击,因为它没有按照我认为的方式工作。首先让我说我正在创建一个白名单,因此所有策略(INPUT、FORWARD、OUTPUT)都默认为 DROP。

我有以下与 SMTP 相关的规则:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p tcp --dport 25 -j ACCEPT -A OUTPUT -p tcp --dport 25 -j ACCEPT //needed for receiving? -A OUTPUT -p tcp --sport 25 -j ACCEPT //needed for sending?

*这 3 行也逐字存在于端口 587 和 465

如果我删除第一个 OUTPUT 行,那么我的服务器将不会收到电子邮件,如果我删除最后一行,它将不会发送电子邮件。我不明白为什么。不应该:

-A INPUT -p tcp --dport 25 -j ACCEPT -A OUTPUT -p tcp --sport 25 -j ACCEPT

足以让一切通过吗? AFAIK 所有 SMTP 通信都应该超过 25、587 或 465。我目前的理解是 SMTP 数据包应该始终符合这两个规则之一。所有输入数据包都应该到端口 25,所有输出数据包都从 25 发送?我错过了什么?

【问题讨论】:

    标签: linux iptables


    【解决方案1】:

    对于 SMTP,您不需要任何 --sport 规则。源和目标不依赖于方向 - 它们在数据包的源端口和目标端口上匹配。每个连接都会有一个随机的源端口,所以没有什么可以匹配的。

    如果我删除第一个 OUTPUT 行,那么我的服务器将不会收到电子邮件;如果我删除最后一行,它将不会发送电子邮件。

    这是错误的。只有 INPUT 行对接收电子邮件很重要。此外,只有 OUTPUT --dport 25 行对发送电子邮件很重要。所以这些规则应该足够了:

    -A INPUT -p tcp --dport 25 -j ACCEPT
    -A OUTPUT -p tcp --dport 25 -j ACCEPT
    

    问题可能是您将 OUTPUT 设置为默认 DROP,但只允许在 INPUT 上建立连接。通常人们将 OUTPUT 默认设置为 ACCEPT。如果您想继续为 OUTPUT 使用白名单,您必须添加:

    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    

    另外,请阅读 SMTP 端口。您列出的其中一些仅用于电子邮件提交和不推荐使用的加密,而不用于服务器到服务器的通信。这可能会改变您计划规则的方式。

    【讨论】:

      【解决方案2】:

      以前的答案状态:此外,只有 OUTPUT --dport 25 行对发送电子邮件很重要。

      这并不总是正确的。例如,某些系统被配置为智能主机,MTA 成为客户端。在这种情况下,MTA 将使用 SASL 身份验证在提交端口 (587) 上连接到远程服务器以发送邮件。

      要恢复,客户端通过远程服务器发送邮件,远程服务器本身通过 SASL 身份验证通过端口 587 连接到另一台远程服务器。

      在这种情况下,以下 iptable 规则适用(对于智能主机)

      iptables -I OUTPUT -p -tcp -dport 597 -j ACCEPT
      iptables -I INPUT -p -tcp -sport 587 -j ACCEPT
      

      【讨论】:

      • 是的。我的意思是在服务器-服务器场景中发送电子邮件很重要。但对于用户服务器或自定义转发,可能还不够。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2019-10-13
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多