僅向 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 restart...但我仍然可以從任何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

相關內容