所以我有一個網頁伺服器和一個(Mysql)資料庫伺服器。兩者都有 2 個接口,1 個具有公共 IP,1 個具有內部 IP。
我希望這兩者僅透過預設 MySQL 連接埠 3306 上的內部 IP 進行通訊。
這是我的資料庫伺服器的 iptables 設定:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F
ACCEPT tcp -- *My HQ* 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- *Internal IP webserver* 0.0.0.0/0 tcp dpt:3306
這是我的網頁伺服器上的 iptables:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- *ip nagios server* 0.0.0.0/0 tcp dpt:5666
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F
ACCEPT tcp -- *My HQ* 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW,ESTABLISHED
ACCEPT tcp -- *My HQ* 0.0.0.0/0 tcp dpt:10081 state NEW,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:36512 state NEW,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- *Internal IP Database server* 0.0.0.0/0 tcp dpt:3306
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:36512 state NEW,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465 state NEW,ESTABLISHED
ACCEPT tcp -- *Internal IP Database Server* 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
我也將 MySQL 綁定到內部 IP 上。
然而,當我嘗試一些簡單的事情時:
mysql -h *internal ip db server* -u root -p
我收到錯誤:
ERROR 2003 (HY000): Can't connect to MySQL server on '*internal db server ip*' (110)
有什麼我忘記的或 IPTABLES 設定有什麼問題嗎?
我使用的是 CentOS 7.2.1511 機器和 MySQL 版本 5.7。
注意:這一 iptables 設定很可能存在多個問題。因為我只是為了學習而嘗試這個。