OpenVPN 社群限制子網路訪問

OpenVPN 社群限制子網路訪問

我已經設定了一個 OpenVPN 伺服器並且到目前為止它正在運行。我的網路中有以下子網路 、10.200.1.0/2410.200.2.0/2410.200.3.0/24。當我連接到 VPN 時,我可以 ping 通所有 3 個子網,沒有問題。如何限制伺服器端的子網路存取?我不需要ccd配置,因為適用於所有客戶端。我只想限制對子網路10.200.1/2410.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

答案1

您的 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 插件來完成,但實現起來要困難得多。

相關內容