OpenVPN是一個基于OpenSSL庫的應用層VPN實現。和傳統VPN相比,它的優點是簡單易用。
這里簡單介紹一下基于 CA ,采用數字證書認證,可以劃分多個網段的 OpenVPN 配置方法。
Note 1: VNN 和 OpenVPN 很像。
Note 2: 這個東西對于突破國內網絡封鎖,保護通信自由很有意義,值得大力推廣。
安裝 OpenVPN
Linux 下的安裝
首先,Kernel 必須支持 TUN/TAP 設備。在 2.6.x 內核中,對應的 Kernel 選項是 “Universal TUN/TAP device driver support”。
確認 Kernel 支持 TUN/TAP 后,可以下載 OpenVPN 編譯并安裝。這一步很 easy,不多說了。
Windows 下的安裝
從 http://www.openvpn.se (http://www.openvpn.se/) 下載安裝包安裝,這里的安裝包帶一個 Client GUI 工具,很好用。
配置 OpenVPN
配置 OpenVPN Server
只說明在 Linux 下的配置。Windows 類似。創建 /etc/vpn/server.conf,內容如下:
|
|
那么 VPN Server 就會自動給 abc 用戶分配 10.1.1.5 這個地址。注意第一個IP地址 的最后一個數字(這里是 5)必須是 4*n + 1 的數。
問題是,VPN Server 怎么知道哪個用戶是 abc 呢?它是 Client 數字證書中的 Common Name 域來判斷的。就是說,在連接協商時如果 Client 端數字證書的 Common Name 是 abc,那么 VPN Server 就找配置目錄下 abc 這個文件。
配置 OpenVPN Client
在 Client 機器上 OpenVPN 安裝目錄的 config 目錄下建立如下 client.ovpn 文件:
|
修改 remote 一行填上對應 VPN Server 的 IP 和 端口。ca.crt 和服務端 ca.crt 一樣,必須把這個 ca.crt 也放在 config 目錄下。
關鍵是 cryptoapicert "SUBJ: abc" 這行。這一行指定客戶端的數字證書從 Windows 證書 Store 里取。在 IE 的“選項 -> 內容 -> 證書”頁面能看到你的個人數字證書。
SUBJ:abc 指明選擇證書主題中含有 abc 的證書??蛻舳藬底肿C書也可以用以前貼的 ca 工具生成,如果要給用戶 abc 簽發數字證書,只用指明 Common Name 是 abc 即可,然后把生成的 abc.p12 傳給 abc 用戶并告訴導入口令。abc 導入這個數字證書后,VPN Client 就可以工作了。
啟動 OpenVPN
服務端啟動
在 /etc/vpn 目錄下,執行:
|
客戶端啟動
OpenVPN 帶一個 GUI 小工具,會裝在系統托盤里。點菜單里的 connect 即可。
常見問題
無法得到 IP 地址
通常是因為 DHCP Client 服務沒有啟動。在服務管理里啟動即可。
來源: Dream4ever.org