我在 VM VirtualBox(具有靜態 IP 的橋接乙太網路)上有一個 CentOS 7 映像,我嘗試設定iptables
過濾器表,但遇到以下問題:
無論我做什麼在連接埠 80 上開啟 Apache 都不起作用(相反,如果我停止 iptables 服務,我可以毫無問題地載入網頁)。我在某個地方發現一個可能的解決方案是編寫一條規則來啟用橋接。這是真的嗎?無論如何,我在機器中找不到任何橋接配置。
我刪除了連接埠 22 的預設規則,現在我甚至無法從 SSH 登錄,即使我認為我已恢復它。
這是 iptables 檔案:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j ACCEPT
-A INPUT -p tcp -m tcp --sport 137:139 --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport --ports 445 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
*mangle
:PREROUTING ACCEPT [48:5579]
:INPUT ACCEPT [47:5507]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [39:4446]
:POSTROUTING ACCEPT [54:7320]
COMMIT
*nat
:PREROUTING ACCEPT [23:1557]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [7:548]
:POSTROUTING ACCEPT [7:548]
COMMIT
答案1
問題是這樣的:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
## More rules
iptables 按順序遍歷所有規則,它發現您首先拒絕所有 INPUT 包,即使您稍後接受它們。重新排序您的規則,以便拒絕位於最後,而您的接受位於最頂部。另外,刪除重複的條目。那麼它應該可以工作。
您無法同時存取 80 和 22 連接埠就是因為這個原因。