從 Windows 訪問 OpenVPN 的 https 和 ssh
我最近在遠端 CentOS 7 網路伺服器上安裝了 OpenVPN。我可以通過鍵入從本地 CentOS 7 devbox 連接到它
openvpn --config /path/to/client.ovpn
。建立連接後,我可以ssh
通過 vpn 通過鍵入來訪問伺服器ssh username@10.8.0.1
,並且我可以通過在https : / / 10.8.0.1
Web 瀏覽器中鍵入通過 vpn 查看遠端伺服器上的 apache 託管的 Web 應用程序。 那麼我的非技術最終使用者如何從 Windows 建立相同的 https 連接?我下載並安裝了適用於 Windows 的 SecurePoint OpenVPN 客戶端。然後,我能夠為伺服器創建一個配置,包括指向 .crt 和 .key 文件的連結以及
client.ovpn
在 Linux 文件中定義的其他參數的定義。SecurePoint 客戶端然後強迫我使用遠端伺服器上的作業系統帳戶的使用者名和密碼(也許更好),但不允許我連接到伺服器上執行的 Web 應用程序。具體來說,https : / / 10.8.0.1
在 Web 瀏覽器中輸入會導致“無法顯示此頁面”,即使我的 Linux devbox 允許內容從伺服器通過 vpn 提供給客戶端,如前一段所述。 我究竟做錯了什麼?我怎樣才能讓它工作?編輯
根據@garethTheRed 的建議,我輸入
sudo firewall-cmd --list-all --zone=internal
並得到以下結果:internal (active) interfaces: tun0 sources: services: dhcpv6-client https ipp-client mdns samba-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: rule family="ipv4" source NOT address="10.8.1.1" service name="ssh" reject
然後我在 SecurePoint GUI 中點擊“連接”,在它說與伺服器的連接已建立後,我打開 cmd.exe 並鍵入
ping 10.8.0.1
並得到以下結果:Pinging 10.8.0.1 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 10.8.0.1: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
取消選中使用者/身份驗證選項刪除了使用者名/密碼登錄要求。
請注意,當 SecurePoint 連接時,通過瀏覽器的所有其他網際網路訪問似乎被阻止,因為所有頁面請求都被拒絕。此外,VPN 在 wifi 網路的 windows 列表中顯示為“未辨識的網路”和“無法訪問網際網路”。當我使用 SecurePoint 與 VPN 斷開連接時,“身份不明的網路”消失了。您可以通過點擊此連結查看VPN 連接處於活動狀態時的外觀
我還能嘗試什麼?
確認您在 CentOS 伺服器上的防火牆(
internal
如果tun0
設備所在的區域是區域)https
作為服務可用。您應該能夠
10.8.0.1
從 Windows 機器上 ping 伺服器。如果這行得通,那麼您的 VPN 已啟動並正常工作,可能是 CentOS 伺服器的防火牆阻止了您。如果 ping 不起作用,那麼在查看
https
頁面之前,您需要解決更深層次的潛在問題。在後者的情況下,將執行
ìpconfig /all
和route print
在 Windows 機器上的輸出發布。官方 OpenVPN 客戶端
作為一個實驗,您也可以
openvpn
在 Windows 機器上安裝並以與您在 CentOS 客戶端上使用類似配置文件的方式類似的方式執行它。它可能會為正在發生的事情提供線索:從此處下載適用於 Windows 的 OpenVPN 客戶端,然後安裝它。在安裝結束時,您應該會看到一個複選框,提示您啟動客戶端。確保客戶端未啟動。
將您的
*.ovpn
文件從 CentOS 機器(以前工作的機器)複製到 Windows 機器。如果您正在傳輸文件,您可能會遇到 Unix/DOS 行終止符的問題。該dos2unix
軟體包有一個名為的轉換器unix2dos
,可以為您將文件轉換為 DOS 格式。以管理員身份打開
notepad
(右鍵點擊並選擇“以管理員身份執行”)並編輯*.ovpn
文件,將路徑更改為密鑰和兩個證書,記住在路徑中使用兩個反斜杠(例如C:\\Users\\Bloggs\\key.pem
)。將此文件保存到C:\Program Files\OpenVPN\config
.從開始菜單啟動 OpenVPN 客戶端,方法是右鍵點擊它並選擇“以管理員身份執行”(這僅在您第一次執行時需要)。如果上述方法有效,您應該能夠右鍵點擊工作列中的圖示並連接。如果沒有連接選項,請檢查上述內容。
一到三秒鐘後,您會看到一個彈出視窗,告訴您您已連接。試試你的
https
網頁。基本 Windows 兼容配置
作為測試,備份您目前的伺服器配置並嘗試以下操作:
port 1194 proto udp dev tun ca /etc/pki/openvpn/cacerts/CA.crt cert /etc/pki/openvpn/public/OpenVPN_Server.crt key /etc/pki/openvpn/private/OpenVPN_Server.pem # This file should be kept secret dh /etc/pki/openvpn/dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3
它可以在我的伺服器上使用 Linux 和 Windows 客戶端(OpenVPN 和 SecurePoint)之一。它不會提供您的伺服器所需的功能,但它可以幫助您找到問題所在。當然,您可能需要調整文件的路徑。
作為參考,這是
*.ovpn
我使用的文件:client dev tun proto udp remote <IP or FQDN of server> 1194 resolv-retry infinite nobind persist-key persist-tun verb 3 ca C:\\Users\\gareth\\ca.crt cert C:\\Users\\gareth\\client.pem key C:\\Users\\gareth\\key.crt
對於 SecurePoint 客戶端,除了
Auth user/pass
我未勾選的複選框以及(當然)密鑰和證書之外,我將所有內容都保留為預設設置。