我有这个iptable的规则列表
Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306 acctboth all -- 0.0.0.0/0 0.0.0.0/0 VZ_INPUT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306 Chain FORWARD (policy DROP) target prot opt source destination VZ_FORWARD all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy DROP) target prot opt source destination acctboth all -- 0.0.0.0/0 0.0.0.0/0 VZ_OUTPUT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
我只想要本地主机和我的IP访问TCP 3306.我可以删除所有其他规则,如上所示。 我不知道是否保留其中的任何一个
可能的目标大概是由bandmin自动放在那里的。 如果你删除它,它可能会回来。 你可以使用'chkconfig bandmin off'来禁用bandmin,但是除了count数据包之外,它确实不会做任何事情。
VZ_INPUT看起来像我不熟悉的防火墙软件包。
除此之外,你似乎有三个接受3306端口的所有stream量的条目,而一个只允许我假设的是你的ip的新连接。
我build议你删除INPUT中的最后4条规则,并将其replace为:
iptables -A INPUT -p tcp --dport 3306 -s 94.101.25.40 -j ACCEPT iptables -A INPUT -p tcp -i l0 --dport 3306 -j ACCEPT
有一个OUTPUT政策DROP是有点棘手,并可能搞砸了一堆东西,所以如果我是你,我会改变它接受:
iptables -p OUTPUT ACCEPT
如果你坚持保持你的方式,你只是让新的 SQL连接,所以删除规则,并添加:
iptables -A OUTPUT -p tcp -s 94.101.25.40 --sport 3306 -j ACCEPT iptables -A OUTPUT -p tcp -i l0 -sport 3306 -j ACCEPT
这假设94.101.25.40是机器自己的IP地址之一,而不是一些远程IP。
你如何访问你的服务器? 除非您的其他连锁店拥有它,否则我甚至不会在这里看到允许SSHstream量的规则。 你应该真的发布你的完整iptables -L输出。 有机会,你仍然可以访问你的盒子的唯一原因是因为在其他链条的规则。
如果您再次发布,请使用iptables -L -v。 这增加了一些有用的额外信息,例如规则操作的接口。