假設有主機A
和B
。A
允許B
基於其 IP 位址進行 SSH 存取。現在考慮另一個主機C
。C
無權訪問B
,但如果我們可以路由其流量A
,則C
可以訪問B
。問題是,這種位址轉換怎麼做呢?沒有兩台主機位於同一 LAN 上。
我的第一個想法是使用 iptables 進行 SNAT A
:
iptables -t nat -A POSTROUTING --protocol tcp --source C --destination B --sport 7777 --dport 22 -j SNAT A
這意味著C
應該嘗試連接,A:7777
但我意識到在 SNAT 之前路由資料包會破壞一切,因此地址轉換應該在 PREROUTING 中完成——不幸的是這是不可能的。另一個想法是設定VPN,但我認為這太複雜了。有沒有一種巧妙的方法來做到這一點,最好使用像 iptables 這樣乾淨的東西?