Iptables
iptables:如何阻止網關 LAN 端設備之間的 UDP(使用 dd-wrt 韌體)
目標:阻止 UDP 流量到此網關 LAN 端的設備(使用 dd-wrt 韌體),這些設備與網際網路和彼此通信,以測試每個設備上執行的特定通信應用程序。
例外:允許支持這些設備的基本網路操作所需的最低 UDP 繼續與網際網路和彼此通信(例如:通過 TCP)。
到目前為止我已經嘗試過:在此路由器/網關上添加了規則(通過 SSH 會話):
iptables -I FORWARD -p udp -j DROP iptables -I INPUT -p udp -j DROP
觀察到(什麼運作良好):
- 該規則
iptables -I FORWARD -p udp -j DROP
成功阻止 LAN 端的設備通過 UDP 與 WAN 端的設備進行通信,這已通過無法使用實用程序在這些設備之間進行通信來驗證ncat -u
。觀察到(什麼不起作用):
LAN 端的設備可以使用 UDP 相互通信:
- 在設備 1(在 LAN 端):
ncat -lvu
# 在預設埠 31337 上使用 UDP 啟動 ncat 偵聽器- 在設備 2 上(在 LAN 端):
ncat -vu <ip-addr-device-1>
# 在預設埠 31337 上使用 UDP 啟動 ncat 呼叫程序期望(期望的結果):
- 設備 2 上的 ncat 呼叫方無法使用 UDP 與設備 1 上的 ncat 偵聽器進行通信。
- 設備 2 上的 ncat 呼叫者能夠使用 TCP 與設備 1 上的 ncat 偵聽器進行通信,但不使用 ncat 參數
-u
。附加資訊:
- 使用命令
iptables -I INPUT -p udp -j DROP
會影響太多其他通信,但無論如何都要使用,以證明此規則在阻止這兩個設備之間的 UDP 通信方面無效。- 使用硬體:tp-link AC1750(Archer C7 v5)
- 使用韌體:dd-wrt,設置“Operating Mode = Gateway”
- 網關後面的設備是 UWP、iOS、Android。此處給出的範例使用 UWP (Windows 10) 設備。
- 我已經看到如何阻止 UDP 同時仍然允許與 iptables 的出站 UDP 連接?,但在我的情況下似乎沒有效果,正如嘗試所證明的那樣
iptables -I INPUT -p udp -j DROP
。
您很可能無法干擾 LAN 到 LAN 的流量。我所知道的所有執行 DD-WRT / OpenWRT 的設備都有一個集成交換機,可以直接在第 2 層的 LAN 設備之間切換流量。
只有需要轉發的流量才會傳遞到系統的路由器部分(第 3 層),Netfilter 可以在其中攔截流量。
您可以嘗試使用多個乙太網適配器設置 Linux 機器,然後將這些適配器橋接在一起。然後您可以使用
br_netfilter
強制 L2 流量通過 Netfilter,允許攔截流量。