Iptables

當 Iptables 僅允許埠 22 時,本地埠轉發不起作用

  • July 19, 2016

我正在嘗試使用 SSH 隧道進行本地埠轉發。

機器1: iptables的規則是:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

機器 2: ssh 伺服器 (sshd) 接受來自埠 22 的流量。

SSH 命令:

ssh lub2@10.0.2.6 -L 8080:209.188.89.221:80

其中:209.188.89.221 是一個隨機的 HTTP 網頁,10.0.2.6 是機器 2 的 IP(而 lub2 是使用者名)

這樣我應該能夠使用http://127.0.0.1:8080作為 URL(來自機器 1)訪問網頁(209.188.89.221) ,但是它載入並且沒有結果。

簡而言之,如果我打開機器 1 上的所有埠,則埠轉發工作,但是當我只打開 22(並且所有其他埠關閉)時,它不會。你有解釋嗎?

乾杯

您的OUTPUT鏈將數據包丟棄到除 80 之外的所有埠。當您在 載入網頁時,其目標是埠 8080,鏈http://127.0.0.1:8080中不允許使用該埠。OUTPUT

您可以localhost使用以下線路允許來自/到的所有流量:

iptables -I INPUT 1 -i lo -j ACCEPT
iptables -I OUTPUT 1 -o lo -j ACCEPT

這不會影響您電腦的外部安全性。

引用自:https://serverfault.com/questions/790666