如果我的服务器应该阻止除显示端口之外的所有端口,那么我不太明白如何连接到端口 3306 上的数据库。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 193K 12M DROP all -- eth0 * 0.0.0.0/0 0.0.0.0/0 state NEW recent: UPDATE seconds: 60 hit_count: 12 name: DEFAULT side: source mask: 255.255.255.255
2 1934 118K all -- eth0 * 0.0.0.0/0 0.0.0.0/0 state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255
3 531K 189M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
4 3 192 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
5 17 1262 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6 66 6255 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
7 2 420 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:500
8 1 376 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:4500
9 1928 117K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 524K 149M ACCEPT all -- * * 10.10.10.0/24 0.0.0.0/0 policy match dir in pol ipsec proto 50
2 413K 659M ACCEPT all -- * * 0.0.0.0/0 10.10.10.0/24 policy match dir out pol ipsec proto 50
3 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
我唯一的想法是,该ESTABLISHED
选项可能在防火墙设置之前允许端口通过。但是,端口 3306 肯定出现在某个地方。否则,它如何在重新启动后仍然知道先前建立了哪些端口?
答案1
除非出站规则中明确拒绝,否则允许到 MySQL RDS 实例的出站流量。
答案2
mysql 通常会监听“localhost”或“127.0..0.1”,此地址通常分配给设备lo
。查看你的规则
num pkts bytes target prot opt in out source destination
1 193K 12M DROP all -- eth0 * 0.0.0.0/0 0.0.0.0/0
这将丢弃到达 eth0 接口的所有数据包。
num pkts bytes target prot opt in out source destination
5 17 1262 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
这允许所有数据包到达 lo 接口。您的 mysql 正在监听与 lo 接口 (127.0.0.1) 关联的 IP 地址,因此数据包可以到达正确的目的地。