安全设置 Postfix IPTables 规则

安全设置 Postfix IPTables 规则

我使用这些规则的 IP 表来允许后缀使用 OpenDKIM 加密发送和接收,但它们是否太宽松了?

我不想成为一个中继机器人,或者让我的服务器处于危险之中。

  • 我不需要 POP3(110),因为我不存储邮件或管理邮箱。
  • 也不需要安全的 POP3(995)。
  • 我不需要 IMAP(143),因为我并没有尝试访问远程服务器上的邮件。
  • 也不需要安全 IMAP(993)。
  • 我确实需要 SMTP(25),因为我要发送电子邮件,
  • 我需要安全的 SMTP(465) ---

通过端口 53 验证 txt 签名的 OpenDKIM DNS 查找规则是可以的。

我目前正在为 Postfix 使用这些规则

$IPT -A INPUT -p tcp -m multiport --dports 25,465,587 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp -m multiport --dports 25,465,587 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

INPUT 25 用于接收和发起可能提升为 587 的 SMTP 请求。NEW
有意义,ESTABLISHED 是必要的吗?

INPUT/OUTPUT 465 本来是用于接收 SSL/SMTP 但显然它被 IANA 重新分配给了一项新服务,所以我将其删除。

INPUT 587 是用于 TLS/SMTP,也就是我们想要的加密邮件。NEW
有意义,ESTABLISHED 是必需的吗?

OUTPUT 25 用于发送纯 SMTP OUTPUT 587 用于发送 TLS/SMTP NEW 是有意义的,但是 ESTABLISHED 呢?

任何帮助都值得感激...

答案1

在所有情况下,您都需要允许ESTABLISHED流量。否则,任何连接尝试都不会完成。必须在所有链上允许此操作,例如INPUTOUTPUTFORWARD(如果您正在使用它)。

如果你不允许,你需要双倍的允许的每个连接的规则都是双向的(连接及其回复以及通过切换 IP/端口)。

此外,ESTABLISHED每条链一个规则就足够了。您不需要为每个 IP/端口都设置一个规则。以下是示例:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 25,465,587 -m conntrack --ctstate NEW -j ACCEPT

相关内容