需要協助找出 iptables 規則

需要協助找出 iptables 規則

我有這個 iptable 規則列表

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  127.0.0.1            0.0.0.0/0           tcp dpt:3306
acctboth   all  --  0.0.0.0/0            0.0.0.0/0
VZ_INPUT   all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
ACCEPT     tcp  -- 94.101.25.40      0.0.0.0/0           state NEW tcp dpt:3306

Chain FORWARD (policy DROP)
target     prot opt source               destination
VZ_FORWARD  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy DROP)
target     prot opt source               destination
acctboth   all  --  0.0.0.0/0            0.0.0.0/0
VZ_OUTPUT  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  94.101.25.40      0.0.0.0/0           state NEW tcp dpt:3306

我只想 localhost 和我的 ip 存取 tcp 3306。我不知道我是否要保留其中任何一個

答案1

acctboth 目標可能是由 bandmin 自動放置在那裡的。如果你刪除它,它可能會回來。您可以使用“chkconfig bandmin off”來停用 bandmin,但它除了計算資料包之外實際上不會執行任何操作。

VZ_INPUT 看起來像是我不熟悉的防火牆包。

除此之外,你似乎有三個接受的條目全部連接埠 3306 的流量,並且只允許來自我假設是您的 IP 的新連線。

我建議您刪除 INPUT 上的最後 4 條規則並替換它們:

iptables -A INPUT -p tcp --dport 3306 -s 94.101.25.40 -j ACCEPT
iptables -A INPUT -p tcp -i l0 --dport 3306 -j ACCEPT

擁有 DROP 的 OUTPUT 策略有點棘手,並且可能會搞亂一堆東西,所以如果我是你,我會將其更改為 ACCEPT:

iptables -p OUTPUT ACCEPT

如果你堅持保持現有的東西,你只是讓新的SQL連線斷開,因此刪除規則並新增:

iptables -A OUTPUT -p tcp -s 94.101.25.40 --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -i l0 -sport 3306 -j ACCEPT

這裡假設 94.101.25.40 是機器自己的 IP 位址之一,而不是某些遠端 IP。

您如何存取您的伺服器?除非你的其他鏈之一有它,否則我什至沒有看到允許 SSH 流量進入這裡的規則。您確實應該發布完整的 iptables -L 輸出。您仍然可以訪問您的盒子的唯一原因很可能是因為其他鏈中的規則。

如果您再次發帖,請使用 iptables -L -v。這添加了一些有用的額外信息,例如規則在哪個介面上運行。

相關內容