只打开mysql到localhost和一个特定的地址

我的configuration :ubuntu服务器9和msyql 5

my.cnf = bind-address = 0.0.0.0 

我的iptables脚本=

 iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp --destination-port 3306 -j ACCEPT 

我可以从任何地方连接到MySQL,不仅是IP。 我做了一个iptables保存,/etc/init.d/netwokring重启…但我仍然可以从任何IP连接,任何线索?

此规则允许来自99.88.77.66的连接,但不阻止来自其他地方的连接。 要做到这一点,您应该有一条规则,默认为所有传入连接的DROP

 iptables -P INPUT DROP 

然后继续只允许那些你明确想要的。 或者,您可以closures端口3306专门为非99.88.77.66的所有客户端

 iptables -A INPUT -i eth0 -s ! 99.88.77.66 -p tcp --destination-port 3306 -j DROP 

该规则允许从特定IP到端口3306 / TCP的stream量。 您需要稍后的规则(或默认策略)将所有其他stream量丢弃到该端口,因为默认的iptables策略是允许一切。

也许你的iptables的默认策略是允许所有的inputstream量。 这将允许从任何IP连接。 改变这个政策,放弃:

 iptables -P INPUT DROP