回答:
OpenVPN是一個基于SSL加密的應用層VPN協議。
OpenVpn的技術核心是虛擬網卡,其次是SSL協議實現。
虛擬網卡是使用網絡底層編程技術實現的一個驅動軟件,安裝后在主機上多出現一個網卡,可以像其它網卡一樣進行配置。服務程序可以在應用層打開虛擬網卡,如果應用軟件向虛擬網卡發送數據,則服務程序可以讀取到該數據,如果服務程序寫合適的數據到虛擬網卡,應用軟件也可以接收得到。虛擬網卡在很多的操作系統下都有相應的實現,這也是OpenVpn能夠跨平臺一個很重要的理由。
該VPN可在Windows、Linux環境下搭建,或者通過網絡設備、第三方軟件搭建。
開源VPN(OpenVPN)是一個功能齊全的 SSL VPN 解決方案,為遠程訪問等企業級場景提供了許多選項來控制 VPN 客戶端的安全性,同時也能保護服務器安全。其最大優勢在于位不同系統平臺提供出色的穩定性和可擴展性。
隧道加密
OpenVPN 使用 OpenSSL 庫加密數據與控制信息:它使用了 OpesSSL 的加密以及驗證功能,意味著,它能夠使用任何 OpenSSL 支持的算法。它提供了可選的數據包 HMAC 功能以提高連接的安全性。此外,OpenSSL 的硬件加速也能提高它的性能。
驗證
OpenVPN 提供了多種身份驗證方式,用以確認參與連接雙方的身份,包括:預享私鑰,第三方證書以及用戶名/密碼組合。預享密鑰最為簡單,但同時它只能用于建立點對點的 VPN; 基于 PKI 的第三方證書提供了最完善的功能,但是需要額外的精力去維護一個 PKI 證書體系。OpenVPN2.0 后引入了用 戶名/口令組合的身份驗證方式,它可以省略客戶端證書,但是仍有一份服務器證書需要被用作加密。
網絡
OpenVPN 所有的通信都基于一個單一的 IP 端口,默認且推薦使用 UDP 協議通訊,同時TCP也被支持。OpenVPN 連接能通過大多數的代理服務器,并且能夠在 NAT 的環境中很好地工作。服務端具有向客戶端“推送”某些網絡配置信息的功能,這些信息包括:IP地址、路由設置等。OpenVPN 提供了兩種虛擬網絡接口:通用 Tun/Tap 驅動,通過它們,可以建立三層 IP 隧道,或者虛擬二層以太網,后者可以傳送任何類型的二層以太網絡數據。傳送的數據可通過 LZO 算法壓縮。IANA(Internet Assigned Numbers Authority)指定給 OpenVPN 的官方端口為 1194。OpenVPN 2.0 以后版本每個進程可以同時管理數個并發的隧道。
OpenVPN 使用通用網絡協議(TCP與UDP)的特點使它成為 IPsec 等協議的理想替代,尤其是在 ISP(Internet service provider)過濾某些特定 VPN 協議的情況下。在選擇協議時候,需要注意2個加密隧道之間的網絡狀況,如有高延遲或者丟包較多的情況下,請選擇 TCP 協議作為底層協議,UDP 協議由于存在無連接和重傳機制,導致要隧道上層的協議進行重傳,效率非常低下。
安全
OpenVPN 與生俱來便具備了許多安全特性:在用戶空間運行,無須對內核及網絡協議棧作修改; 初始完畢后以 chroot 方式運行,放棄 root 權限; 使用 mlockall 以防止敏感數據交換到磁盤。
OpenVPN 通過 PKCS#11 支持硬件加密標識,如智能卡。
免責聲明:本網站部分文章、圖片等信息來源于網絡,版權歸原作者平臺所有,僅用于學術分享,如不慎侵犯了你的權益,請聯系我們,我們將做刪除處理!