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