Openvpn

OpenVPN不通過預設路由路由

  • October 12, 2017

我為子網 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:添加了缺少的配置行

引用自:https://serverfault.com/questions/877752