OpenVPN不通過預設路由路由
我為子網 10.8.0.0/24 設置了一個 OpenVPN 伺服器,它對內部網路的訪問受到限制。此外,我想使用靜態 IP 為選定的客戶端手動配置 10.8.1.0/24,以賦予它們額外的權限(例如 SSH 訪問)。
訪問控制通過 iptables 完成並按預期工作。
現在,我將路由推送到外部 IP(在本例中為 10.10.10.10),並在埠 80 和 443 上執行網路伺服器。
在沒有客戶端特定配置的情況下連接到 VPN 並因此獲得 10.8.0.0/24 IP 時,我訪問 10.10.10.10 上的網路伺服器沒有問題。我可以看到包進入 tun0 並將伺服器留在 p4p1(外部介面)上。當使用客戶端特定配置連接到 VPN 並因此獲得 10.8.1.0/24 IP 時,我能夠 ping 所有內部伺服器,但指定為 10.10.10.10 的包不會中繼到 VPN 伺服器上的任何物理介面(檢查 TCP 轉儲)。
關於這一點,摘自 OpenVPN 伺服器配置:
server 10.8.0.0 255.255.255.0 push "route 10.10.10.10 255.255.255.255" client-config-dir /etc/openvpn/ccd route 10.8.1.0 255.255.255.0 client-to-client comp-lzo persist-key persist-tun
客戶端配置 /etc/openvpn/ccd/some-client:
ifconfig-push 10.8.1.133 10.8.1.134
由於流量通過列出到內部介面 (p1p1) 的任何特定路由工作,我猜 OpenVPN 沒有正確地將流量重定向到進入介面 p4p1 的預設路由,但我不知道它為什麼會這樣做以及它是如何做到的固定的。
有什麼建議麼?
正如 Diamant 所說,網路伺服器也需要通過 VPN 伺服器返回到 10.8.1.0/24 的路由。或者,需要將 VPN 伺服器配置為對網路伺服器的請求執行 NAT。此外,我不確定這一點,但您可能需要添加
push "route 10.8.0.0 255.255.0.0"
到您的伺服器配置中。編輯:伺服器配置中的網路遮罩困擾著我。而不是上面的建議,嘗試刪除
server 10.8.0.0 255.255.255.0
伺服器配置中的行並添加它:mode server tls-server ifconfig 10.8.0.1 255.255.254.0 # different netmask to support 10.8.1.0/24 range ifconfig-pool 10.8.0.0 10.8.0.253 route-gateway 10.8.0.1 push "route-gateway 10.8.0.1"
EDIT2:添加了缺少的配置行