VPN 是否應該從所有客戶端訪問所有網路?
我有一個 OpenVPN 伺服器和許多客戶端連接。VPN 設置包括
port 443 dev tun proto tcp
當我將客戶端添加到我的 VPN 時,我必須使用 apaches proxypass 才能訪問單個客戶端的本地資源,但不能訪問 VPN 網路。
例如:
-伺服器在 10.8.0.1
-客戶端在 10.8.0.4
-另一個客戶端在 10.8.0.7
客戶端10.8.0.4也在工作網路上,它可以連接到內部 url 10.82.54.11/internal_url(因為它的網路適配器之一在子網 10.82.54.0 上)。
這個客戶端有一個 apache proxypass 設置,所以當他們在家時,他們可以通過打開10.8.0.4:84連接到****10.82.54.11/internal_url。
最近有人告訴我,VPN 上的所有客戶端都應該可以訪問所有網路,這是否正確(或者甚至可能對我非常有用)?
所以基本上只要客戶端10.8.0.4連接到 VPN,他仍然可以在家中將瀏覽器指向10.82.54.11/internal_url。
我已經嘗試
dev tap0
過伺服器和所有客戶端(認為我可能也需要乙太網橋接)但沒有樂趣。請幫忙
OpenVPN 提供了一個連結。如果在 tun(推薦)模式下執行,它會為 IP 流量提供一個連結。如果在 Tap 模式下執行,它會為乙太網流量(包括 IP,但也包括各種其他東西)提供連結。
如果您在 Tap 模式下執行,則需要將 OpenVPN Tap 介面橋接到乙太網介面。您可以使用 來執行此操作
brctl
,但通常我不建議您這樣做,除非您需要非 IP 協議才能工作。它的速度較慢(成本更大),並且可能會出現嚴重問題,具體取決於延遲。$$ OK, you could treat it as a separate network segment and use IP routing, but then you should switch to tun mode. $$ 當您在 tun 模式下執行時(這聽起來像是,而且應該如此),您需要讓您的 IP 路由正確。在這種情況下,我猜您的客戶端不知道到 10.82.54.11 的流量需要通過 VPN 路由。您需要讓客戶知道這一點。您可以在客戶端手動設置靜態路由,或執行路由協議,或使用 OpenVPN 提供的內置功能,方法是將此行添加到您的 OpenVPN 伺服器配置:
push "route 10.82.54.0 255.255.255.0"
push
向遠端端發送一個選項。因此客戶端將添加選項route 10.82.54.0 255.255.255.0
,這意味著添加靜態路由以通過 VPN 路由 10.82.54.0/24。您需要做的下一件事是確保反向路由也是正確的。您的伺服器 10.82.54.11(或者,更有可能是充當其預設網關的路由器或防火牆)需要知道到 10.8.0.0/24 的路由是通過 VPN 網關。可能你只有一個路由器/防火牆,所以伺服器也在防火牆後面,也就是 VPN 伺服器,在這種情況下,你可能只需要在你的 OpenVPN 配置中添加這樣的東西(如果你還沒有的話):
route 10.8.0.0 255.255.255.0
這應該看起來很熟悉,並且做同樣的事情——只是在伺服器端,而不是客戶端,因為缺少
push
.(根據您的網路調整所有網路遮罩。我假設 /24,但當然您可能正在使用任何東西。)
$$ Note: I’m assuming you’re using OpenVPNs multi-client mode, not its point-to-point mode. If you’re using point-to-point, then the IP addresses in the route commands may be different. $$