Openvpn
OpenVPN 社區限制子網訪問
我已經設置了一個 OpenVPN 伺服器,它目前正在執行。我的網路中有以下子網
10.200.1.0/24
、10.200.2.0/24
、 和10.200.3.0/24
。當我連接到我的 VPN 時,我可以 ping 所有 3 個子網,沒問題。如何限制伺服器端的子網訪問?我不需要ccd
配置,因為它適用於所有客戶端。我只想限制對子網10.200.1/24
和10.200.2/24
全域的訪問(如果已連接)。下面的配置適用於客戶端在連接時無法訪問
10.200.3/24
的情況,因為伺服器沒有將路由推送到客戶端。但是當客戶手動將路由添加到他們的機器時,他們可以在技術上連接到它。如何從伺服器端強制允許訪問哪個子網?
伺服器配置文件
local 10.200.0.8 port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem auth SHA512 tls-crypt tc.key topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 10.200.1.0 255.255.255.0" push "route 10.200.2.0 255.255.255.0" keepalive 10 120 cipher AES-256-CBC user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem explicit-exit-notify
您的 VPN 伺服器是一個 IP 路由器(進行數據包轉發),其中可能會過濾數據包(轉發或不轉發)。這是通過防火牆完成的。例如,如果伺服器是 Linux,則添加:
iptables -I FORWARD 1 -s 10.8.0.0/24 -d 10.200.3.0/24 -j REJECT
將
-I ... 1
在鏈中的任何其他內容之前安裝規則,我這樣製作它以確保它可以按原樣正常工作,無論防火牆中已經存在什麼。這可能不是最優的。請根據需要調整規則。只要確保它出現在任何匹配來自 VPN 客戶端的數據包的允許規則之前。這種過濾也可以通過 OpenVPN 外掛來完成,但實現起來要困難得多。