https 和 ssh 從 Windows 存取 OpenVPN

https 和 ssh 從 Windows 存取 OpenVPN

我最近在遠端 CentOS 7 Web 伺服器上安裝了 OpenVPN。我可以透過輸入從本地 CentOS 7 devbox 連接到它openvpn --config /path/to/client.ovpn。連線建立後,我就可以ssh透過鍵入 來透過 VPN 連線到伺服器,並且透過在 Web 瀏覽器中 鍵入,我可以透過 VPN 查看遠端伺服器上 apache 託管的 Web 應用程式。ssh [email protected]https : / / 10.8.0.1那麼,我的非技術最終用戶如何從 Windows 建立相同的 https 連線?

我下載並安裝了適用於 Windows 的 SecurePoint OpenVPN 用戶端。然後,我能夠為伺服器建立配置,包括 .crt 和 .key 檔案的連結以及client.ovpnLinux 中檔案中定義的其他參數的定義。然後,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 連線時,透過瀏覽器的所有其他 Internet 存取似乎都會被阻止,因為所有頁面要求都被拒絕。此外,VPN 在 Windows wifi 網路清單中顯示為「無法識別網路」且「無法存取網際網路」。當我使用 SecurePoint 中斷與 VPN 的連線時,「未知的網路」就會消失。您可以看到 VPN 連線處於活動狀態時的樣子點擊此連結

我還能嘗試什麼?

答案1

確認 CentOS 伺服器上的防火牆(internal如果設備所在的區域tun0)可以https作為服務使用。

您應該能夠10.8.0.1從 Windows 電腦 ping 通伺服器。如果這有效,那麼您的 VPN 已啟動並正在運行,並且可能是 CentOS 伺服器的防火牆阻止了您。

如果 ping 不起作用,那麼在查看https頁面之前您還有更深層的潛在問題需要解決。

對於後者,請發佈在 Windows 電腦上運行ìpconfig /all和的輸出。route print

官方 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複選框(我取消勾選)以及(當然)金鑰和憑證之外,我將所有內容保留為預設值。

相關內容