Linux

使用 CentOS FirewallD 將內部 LAN 暴露給 VPN

  • January 5, 2015

我有一個(tinc)VPN 設置,其中有多個客戶端連接到位於防火牆後面的 LAN 上的 VPN 伺服器。我想將該 LAN 暴露給該伺服器正在服務的 VPN。我在網上看到了一些如何配置 iptables 的範例,但我想使用 FirewallD 配置此設置,但尚未成功。

VPN 子網是 10.0.0.0/24 ,本地 LAN 是 192.168.178.0/24 。VPN 伺服器位於 10.0.0.60 和 192.168.178.47 。測試客戶端位於 10.0.0.17 。

我跑過:

firewall-cmd --permanent --zone=external --add-interface=vpn
firewall-cmd --permanent --zone=internal --add-interface=eth0
firewall-cmd --permanent --zone=external --add-masquerade
systemctl restart firewalld

在 VPN 伺服器和客戶端上:

route add -net 192.168.178.0 netmask 255.255.255.0 gw 10.0.0.60
ping 192.168.178.1

返回 100% 丟包率。有什麼我做錯了嗎?

PS:如果我在測試客戶端上執行“ping 192.168.178.47”,我會收到回复!只是不是區域網路的其餘部分。

另一端的客戶端也需要路由資訊,所以我相信你需要為他們設置一個網關,以便他們可以反過來交談,除非你的 VPN 伺服器目前充當 192.168.178.x 上的預設網關網路。

(如果您的防火牆設置正確),本地 LAN 上的機器將需要:

route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.178.47

如果可能的話,最好將此規則添加到您的預設網關,否則每台機器都需要靜態路由才能進行通信。

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