iptables 規則不起作用

iptables 規則不起作用

我不明白為什麼我的 iptable 規則阻止訪問,https://example.com:9700儘管accept添加了規則

我先清理一切

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

然後刪除所有內容,添加 ssh 和我的 9700 連接埠的例外

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9700 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

該服務在清除後工作,並在第二組規則後停止工作。

請注意,SSH 規則運行得很好。新增規則後,我可以透過 SSH 重新連接到我的伺服器

DNS問題 根據其中一個答案,已驗證的 DNS 無法運作。但這並不能解釋為什麼我仍然無法透過 IP 位址存取它:https://xx.xxx.xx.x:9700

答案1

您能解析 example.com 的名稱嗎?如果您封鎖對任何名稱服務的訪問,您的電腦將無法存取 example.com - 您必須在 /etc/hosts 中新增主機 example.com 及其 IP 位址,或為您的 DNS 新增 iptables 例外。

正如發布的這裡,DNS 查找的一個例外是:

iptables -A INPUT -p udp --source-port 53 -j ACCEPT

編輯

既然你排除了 DNS 問題,我更深入地研究了你的規則,根據我對 iptables 的理解,它不起作用。您允許目標連接埠 9700(在您的電腦上!)上輸入流量(到您的電腦),並允許來自本機連接埠 9700 的輸出流量(從您的電腦到外部)。

你想要的是完全相反的(或者我錯了?):你希望你的機器到達端口 9700 上的外部伺服器,並且你希望該伺服器能夠回答你。

所以你的最後兩條規則應該是:

iptables -A OUTPUT -p tcp -m tcp --dport 9700 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

這允許從計算機上的任何端口(因為您無法控制協議將用於傳出流量的端口)開始的流量發送到端口9700 上的任何其他計算機,並允許從世界上任何其他計算機發送到您的計算機的流量(如果)這些資料包是已建立的連線的一部分。

答案2

嘗試:

iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

iptables -t filter -A INPUT -i lo -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 9700 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 9700 -m state --state ESTABLISHED -j ACCEPT

我假設解析 example.com IP 位址的 DNS 伺服器不是同一台機器。

另外,我認為將 OUTPUT 鏈的策略設為 ACCEPT 並不是真正的問題。試試看。

這套規則對我有用。它應該也適合你。

此致!

相關內容