我的配置: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