我正在嘗試為現有網絡設計一個訪客 wifi 網絡,但當接入點包含在父網絡中時,我不確定如何保護訪客 wifi 接入點免受父網絡的影響。
我嘗試過搜尋這個,但我只是從消費性硬體中得到結果,上面寫著“單擊此配置”,並且通常假設主路由器也是 wifi 接入點本身,這使得邏輯隔離變得更加容易。
+----------+
| Internet |
+----+-----+
|
|
+-------+------+
| Linux Router | 10.0.0.0/24
+----------+ +--------------+
| | 10.0.0.1 | |
| +-------+------+ |
| Device A - 10.0.0.5 |
| |
| Linux Guest Wifi Router - 10.0.0.200 |
| + |
| | |
+----------------------------------------+
|
|
| Guest Subnet 10.0.1.0/24
+----+--------------------------+
| |
| Guest Device X - 10.0.1.5 |
| |
+-------------------------------+
主路由器是一個雙網卡(ext/int)linux 盒子(帶有 iptables 的 Debian 7),僅此而已。訪客 wifi 接入點將是我訂購的銼刀 PI,並且我假設必要的配置將包含在訪客 wifi 盒中。
但我不確定如何在 PI 上配置 iptables(nftables?) 以確保父網路無法訪問,除非路由到互聯網。
- 「訪客設備 X」如何到達主路由器閘道器 (10.0.0.1),同時被拒絕存取設備 A (10.0.0.5)。
- 我如何知道主路由器不會將對 10.0.0.5 的任何請求發送回 10.0.0.0/24 子網路?我需要在主路由器上設定 iptables 才能與 wifi 路由器協同工作嗎?
10.0.1.5 的預期結果:
- $ ping 10.0.0.5 - 目的地無法到達/沒有到主機的路由等。
- $ ping 8.8.8.8 - 好的
- $ ping 10.0.0.1 - (假設沒問題?)
- $ ping 10.0.0.200 - 未知?
以下討論替代的潛在解決方案:
- 一個建議是在主路由器上建立第二個 IP,並將訪客 WiFi 路由到該 IP。所以我查閱了文件並發現了這個:
這將使事情看起來像這樣:
Internet
|
Linux Router
(eth1 10.0.0.1) (eth1:1 10.0.1.1)
| |
Reg Network Guest Wifi Router (10.0.1.2)
(DHCP) |
Guest Device (10.0.?.?)
所以目前我不確定一些事情
- 如何設定主路由器的路由表以阻止從 10.0.1.1 到 10.0.0.0/24 子網路的流量?還是這是主路由器上的 iptables 規則?我不確定我是否看到這與 10.0.0.0/24 上的訪客 wifi 路由器有何不同,因為主路由器仍然能夠路由到該網路上的其他設備? )
- 我假設訪客 wifi 路由器需要為訪客設備提供 DHCP 伺服器。但是,訪客設備會使用 10.0.1.1 作為網關的 10.0.1.0/24 子網,還是會為訪客設備設定另一個子網路 10.0.2.0/24?
答案1
回顧一下情況,以驗證我是否理解正確:
訪客 AP 作為專用 LAN 或 WLAN 的一部分連接到主路由器。最重要的是,您需要一個與專用網路分開的訪客網絡,但必須使用專用網路來存取主路由器。
可能的解決方案的簡要概述:
使其安全工作的唯一方法是讓主路由器意識到有兩個網絡,並用iptables
規則將它們正確分開。因此,您希望主路由器看到兩個網路接口,一個用於專用網段,其接口為 10.0.0.0/24,另一個網路接口為訪客網段,其接口為 10.0.0.1/24。鑑於評論,我假設您知道如何設定主路由器。
這意味著從訪客 AP (RaspPi) 到主路由器的連接應使用某種隧道。最簡單的變體是虛擬區域網,它在您的專用 LAN 上「覆蓋」(可能是多個)虛擬 LAN。
具體來說,在 RaspPi 和 Debian 盒子上添加一個虛擬網路接口,類似於
ip link add link eth0 name eth0.55 type vlan id 55.
(選擇 VLAN 標記),然後eth0.55
像普通網路介面一樣使用和設定。一旦它起作用,您可以進行調整/etc/network/interfaces
以使其自動出現。
編輯
對於防火牆,您需要iptables
阻止介面eth0
和eth0.55
相互通訊的規則,因此類似於
#!/bin/bash
PRIVIF=eth0
GUESTIF=eth0.55
iptables -P FORWARD ACCEPT
iptables -F FORWARD
iptables -A FORWARD -i $PRIVIF -o $GUESTIF -j DROP
iptables -A FORWAD -i $GUESTIF -o $PRIVIF -j DROP
(未經測試)。或者使用 DROP 的預設轉發策略使其更加安全,然後枚舉您允許的所有轉發,同時保留路由器的 NAT 功能(如果有)。
關於防火牆的線上教學有很多iptables
,只需選擇您最喜歡的一個即可。