OpenVPN 允許兩個客戶端在不使用全域客戶端到客戶端的情況下相互連接
我在 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 伺服器返回,所以,由於它們沒有到達主機層,你將無法使用防火牆,因為它不會被訪問,並且您的規則以這種方式將毫無用處。