CentOS 中用于 GCM 命令的 Iptables 配置

CentOS 中用于 GCM 命令的 Iptables 配置

我计划为我的 CentOS VM 启用 iptables。已配置以下规则。但对于 GCM(Google Cloud Messaging)命令,它无法从 GCM 服务器收到回复。如果我禁用 iptables,它就可以正常工作。

iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5228 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5229 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 5230 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -j ACCEPT

有人能告诉我 GCM 工作的确切端口吗?我在很多地方都看到过 5228、5229 和 5230,但是它们不起作用。

答案1

如果你要连接正在监听端口 5228、5229 和 5230 的服务,则相关iptables规则应该是--sport <port>,而不是--dport <port>,因为你要接受来自服务到您的机器,并且这些端口将具有您所连接的源端口,以及为传出连接选择的随机高端口的目标端口。

执行此类操作的更常见方法是允许所有相关/已建立的连接流量返回,并让 conntrack 处理棘手的部分。鉴于您正在运行默认接受链OUTPUT,我认为您并不太担心运行严格的策略,因此我想不出任何您不想通过 conntrack 运行返回流量的理由。

相关内容