將 HTTP(s) 流量重新導向到另一台伺服器

將 HTTP(s) 流量重新導向到另一台伺服器

我正在嘗試為無線平台的研究/逆向工程設置測試環境。

我有一個路由器 AP 廣播我的網絡,我正在研究的硬體連接到該網絡,AP 將從那裡將所有流量重定向到伺服器進行分析。

我在 AP 上用於重定向流量的 iptables nat 規則是:

iptables -t nat -A PREROUTING -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8880
iptables -t nat -A PREROUTING -p tcp --dport 443 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8443
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

AP 和伺服器也都啟用了 IP_FORWARD。

在我的伺服器上,我有 sslsplit、mitmproxy 或其他軟體,它們可以取得流量並允許我對其進行分析。

問題是,當我以這種方式重定向流量時,我的伺服器上的軟體出於某種原因一直想要連接到自身,而不是連接到正確的連接埠/網域。

例如,如果我的伺服器IP是1.1.1.1:8443;當連接到我的 AP 的硬體 192.168.0.100 訪問解析為 2.2.2.2:443 的網站時,iptables 規則將我的所有流量重定向到 2.2.2.2:443 到 1.1.1.1:8443 進行分析。這一切都很好,但是當軟體嘗試將連接轉發到遠端http 伺服器以完成請求/獲取回應時,它不會將流量傳遞到2.2.2.2:443 以獲得回應,而是將其發送到1.1.1.1 :8443 (又稱其本身)。

這是我的 iptables 規則的錯誤還是某種軟體問題?當以他的遠端處理方式使用少數軟體時,也會發生相同的結果,因此我相信這是我重定向流量的方式的問題。

這樣的流量重定向是否可能,或者是否必須以其他方式完成?

設定為客戶端 (192.168.0.100) -> AP -> 路由器 -> 網際網路 -> 資料處理伺服器 (1.1.1.1:8443) -> 網際網路 -> Web 主機 (2.2.2.2:443)

任何建議將不勝感激。

答案1

從您的伺服器到2.2.2.2:443(原始目的地)的流量是否經過AP?

在這種情況下,將套用轉換,因此請變更 DNAT 規則,以便從 DNAT 轉換中排除源自伺服器的流量。

iptables -t nat -A PREROUTING -p tcp ! -s x.x.x.x --dport 80 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8880

相關內容