仅对 localhost 和特定地址打开 mysql

仅对 localhost 和特定地址打开 mysql

我的配置: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-save , /etc/init.d/netwokring 重新启动...但我仍然可以从任何 IP 连接,有什么线索吗?

答案1

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

iptables -P INPUT DROP

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

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

答案2

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

答案3

也许你的 iptables 默认策略是允许所有输入流量。这将允许来自任何 ip 的连接。将此策略更改为删除:

iptables -P INPUT DROP

相关内容