Linux

Linux充當路由器 - 埠轉發

  • July 21, 2021

嘗試設置一個小 AWS Box (Debian Linux) 作為路由器,獲取公共流量(eth0 - 單一網路介面)並將其重定向到不同的公共 IP 地址、不同的埠,然後將流量發送回客戶端。

埠映射(TCP & UDP): Src-IP、Src-Port、Dest-IP、Dest-Port

全部,27106,168.119.149.150,27015

全部,8000,168.119.149.150,7777

全部,8001,168.119.149.150,7778

我想要發生的事情:

流量輸入: 公共 IP(客戶端應用程序)

$$ 27106,8000,8001 $$-> Linux Box -> 目標公共伺服器 (AA)$$ 27015,7777,7778 $$ 返回流量: 公共伺服器 (AA)

$$ 27015,7777,7778 $$-> Linux Box -> 公共 IP(客戶端應用程序)$$ 27106,8000,8001 $$ /etc/iptables/rules.v4 目前為:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 27106 -j DNAT --to-destination 168.119.149.150:27015
-A PREROUTING -p udp -m udp --dport 27106 -j DNAT --to-destination 168.119.149.150:27015
-A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT --to-destination 168.119.149.150:7777
-A PREROUTING -p udp -m udp --dport 8000 -j DNAT --to-destination 168.119.149.150:7777
-A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 168.119.149.150:7778
-A PREROUTING -p udp -m udp --dport 8001 -j DNAT --to-destination 168.119.149.150:7778
-A POSTROUTING -p tcp -m tcp --dport 27015
-A POSTROUTING -p udp -m udp --dport 27015
-A POSTROUTING -p tcp -m tcp --dport 7777
-A POSTROUTING -p udp -m udp --dport 7777
-A POSTROUTING -p tcp -m tcp --dport 7778
-A POSTROUTING -p udp -m udp --dport 7778
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

cat /proc/sys/net/ipv4/conf/eth0/forwarding回報1

AWS 防火牆端點配置為接受所有流量

$$ TCP/UDP $$- 所以不是這樣,我只能認為我沒有錯誤地設置規則文件? 問題是,它似乎沒有像我期望的那樣工作 - 任何人都可以就我做錯了什麼給出一些指示嗎?

出於安全考慮,AWS 不允許這樣做。

Amazon EC2 實例無法發送欺騙性網路流量。AWS 控制的、基於主機的防火牆基礎設施將不允許實例使用其自身以外的源 IP 或 MAC 地址發送流量。

PDF 源

您可以嘗試 nat 出站流量。

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