Centos

OpenVPN 允許兩個客戶端在不使用全域客戶端到客戶端的情況下相互連接

  • January 4, 2021

我在 CentOS 6 上執行 OpenVPN 2.3.7。我正在使用路由(tun)並且有兩個 OpenVPN 實例。在第二個實例中,有兩個客戶端我希望彼此可見,即 ping、訪問埠等。它們都在同一個子網中,所以應該相當簡單,它們通過靜態地址配置CCD。

我希望兩個客戶端能夠通過他們的 OpenVPN LAN IP 地址看到對方,而無需client-to-client在 server.conf 中啟用。

我很確定它可以用 iptables 來完成,我用它作為我的防火牆,雖然我使用 CSF,但它是 iptables 的包裝器。

這些是客戶端的 IPv4 地址:

OpenVPN Client #1: 10.8.2.14 
OpenVPN Client #2: 10.8.2.17

我需要客戶端 #1 才能訪問客戶端 2 上執行的服務,如果需要響應,我猜為了兼容性客戶端 #2 可以看到客戶端 #1。

我在 OpenVPN 伺服器上嘗試了幾個 FORWARD 鏈規則,但我無法在兩個客戶端之間進行任何通信。OpenVPN伺服器明顯可以ping通兩個客戶端,客戶端可以ping通OpenVPN伺服器網關,客戶端不能明顯看到對方。

我已經嘗試過但沒有奏效的一些規則:

iptables -A FORWARD -s 10.8.2.14 -d 10.8.2.17 -j ACCEPT
iptables -A FORWARD -s 10.8.2.17 -d 10.8.2.14 -j ACCEPT

我正在尋求 iptables 的幫助,以使兩個客戶端彼此可見,而無需啟用客戶端到客戶端,請參閱這是兩個客戶端的特殊要求,在其他任何地方都不需要。

另一種方法是通過 NAT 公開 VPN 客戶端上的服務,但出於安全考慮,我寧願避免這樣做。

任何見解都會有所幫助!

謝謝,

詹姆士

我建議你做相反的事情:啟用client-to-client然後使用 iptables 來阻止所有客戶端,但你希望允許彼此交談的兩個客戶端除外。

我知道這個問題很老,但只是為了向可能仍在訪問此頁面的新使用者澄清這一點:

如果你使用client-to-client你實際上不能使用防火牆,伺服器甚至根本看不到這些數據包,因為它們永遠不會從 OpenVPN 伺服器返回,所以,由於它們沒有到達主機層,你將無法使用防火牆,因為它不會被訪問,並且您的規則以這種方式將毫無用處。

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