我正在尝试设置iptables
Ceph 集群。我目前正在为其中一台监控服务器制定规则。
监视器守护程序侦听tcp/6789
(IP 地址已删除,因为它是公共地址):
# netstat -tunlp | grep ceph-mon
tcp 0 0 X.X.X.X:6789 0.0.0.0:* LISTEN 2612/ceph-mon
如果我允许连接到 tcp 端口 6789 并删除其他所有内容,则监视器将被集群的其余部分标记为关闭:
iptables -F INPUT
iptables -A INPUT -p tcp --dport 6789 -j ACCEPT
iptables -A INPUT -j DROP
令人困惑的是,如果我断开与 tcp 端口 6789 的所有连接,集群仍然运行:
iptables -F INPUT
iptbales -A INPUT -p tcp --dport 6789 -j DROP
如果我允许与源tcp 端口 6789 的连接并删除集群运行的所有其他内容:
iptables -F INPUT
iptables -A INPUT -p tcp --sport 6789 -j ACCEPT
iptables -A INPUT -j DROP
这对我来说没有意义,因为守护进程正在监听端口 6789,所以 tcp 段的目标端口应该是 6789。
如果我tcpdump
对源端口 6789 执行操作,我可以看到目标端口为 56052 和源端口为 6789 的传入数据包。这对我来说更没有意义,因为在监控服务器上没有监听端口 56052。
我在这里错过了什么吗?我使用的是 SLES12 和 ceph 12.2.7,FORWARD 和 OUTPUT 链没有规则,所有链上的策略都是 ACCEPT