浙江福彩3d走势图
我們來自五湖四海,不為別的,只因有共同的愛好,為中國互聯網發展出一分力!

Linux下OpenVPN比較詳細安裝

2012年01月17日01:56 閱讀: 26515 次

標簽: Linux, OpenVPN, 詳細安裝

什么是VPN

 

IP機制仿真出一個私有的廣域網"是通過私有的隧道技術在公共數據網絡上仿真一條點到點的專線技術。所謂虛擬,是指用戶不再需要擁有實際的長途數據線路,而是使用Internet公眾數據網絡的長途數據線路。
 
OpenVPN的功能
 

可以將兩個不同的網段打通一條通道,可以互相訪問,對于運維人員來說主要是為了安全,因為OpenVPNssl加密機制,增加了密碼的安全度,運維人員可以自定義ip段進行管理服務器,簡單點說,安全方便。

 

SSL VPN原理

 

      如果把SSL 和VPN 兩個概念分開,大家對他們的含義應該都非常清楚,但是作為一種新技術,它們之間是如何結合起來的大家也許還不是很了解。從學術和商業的角度來講,因為他們代表的含義有所不同,因而常常會被曲解。
      SSL(安全套接層)協議是一種在Internet上保證發送信息安全的通用協議。它處于應用層。SSL用公鑰加密通過SSL連接傳輸的數據來工作。 SSL協議指定了在應用程序協議(如HTTP、Telnet和FTP等)和 TCP/IP協議之間進行數據交換的安全機制,為TCP/IP連接提供數據加密、服務器認證以及可選的客戶機認證。SSL協議包括握手協議、記錄協議以及警告協議三部分。握手協議負責確定用于客戶機和服務器之間的會話加密參數。記錄協議用于交換應用數據。警告協議用于在發生錯誤時終止兩個主機之間的會話。
      VPN(虛擬專用網)則主要應用于虛擬連接網絡,它可以確保數據的機密性并且具有一定的訪問控制功能。VPN是一項非常實用的技術,它可以擴展企業的內部網絡,允許企業的員工、客戶以及合作伙伴利用Internet訪問企業網,而成本遠遠低于傳統的專線接入。過去,VPN 總是和IPSec 聯系在一起,因為它是VPN 加密信息實際用到的協議。IPSec 運行于網絡層,IPSec VPN 則多用于連接兩個網絡或點到點之間的連接。

      所謂的SSL VPN,其實是VPN設備廠商為了與IPsec VPN區別所創造出來的名詞,指的是使用者利用瀏覽器內建的Secure Socket Layer封包處理功能,用瀏覽器連回公司內部SSL VPN服務器,然后透過網絡封包轉向的方式,讓使用者可以在遠程計算機執行應用程序,讀取公司內部服務器數據。它采用標準的安全套接層(SSL)對傳輸中的數據包進行加密,從而在應用層保護了數據的安全性。高質量的SSL VPN解決方案可保證企業進行安全的全局訪問。在不斷擴展的互聯網Web站點之間、遠程辦公室、傳統交易大廳和客戶端間,SSL VPN克服了IPSec VPN的不足,用戶可以輕松實現安全易用、無需客戶端安裝且配置簡單的遠程訪問,從而降低用戶的總成本并增加遠程用戶的工作效率。而同樣在這些地方,設置傳統的IPSec VPN非常困難,甚至是不可能的,這是由于必須更改網絡地址轉換(NAT)和防火墻設置。

      首先,我所購買的vps是基于OpenVZ類型,無法配置標準的VPN(無測試過),部分手機可能無法支持,但OpenVZ支持pptp和openVPN

       ok!在安裝之前請確認一下你購買的vps是否開啟了tun/tap的支持,burst vps默認是不開啟tun/tap的,可以使用cat /dev/net/tun 進行檢查

 

 

 

      如果是沒有權限的話可以發個ticket要求客服為你開啟tun/tap

 

 

出現File descriptor in bad state說明tun/tap已經開啟,可以開始進行openVPN的安裝配置

 

我的vps安裝的系統為CentOS release 5.5 (Final),下面一系列安裝和配置都在此vps上進行配置

 

一、服務端安裝

 

現在開始在vps上安裝和配置openVPN,需要的有下列的軟件
gcc g++ [gcc g++為系統需要的編譯工具]
lzo庫 [Lzo庫的功能是對虛擬鏈路進行壓縮]
openssl [囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議]
openvpn

 

1.安裝編譯工具gcc g++ 

# yum install gcc
# yum install gcc-c++

 

2.安裝lzo庫

# cd /home/download/
# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
# tar -xvzf lzo-2.03.tar.gz
# cd lzo-2.03
# ./configure -prefix=/usr/local/lzo && make && make install
# vi /etc/ld.so.conf


編輯完ld.so.conf,執行

# ldconfig

使動態庫生效

 

3.安裝openssl

# cd /home/download/
# wget http://www.openssl.org/source/openssl-0.9.8.tar.gz
# tar -xvzf openssl-0.9.8.tar.gz
# ./config -prefix=/usr/local/openssl && make && make install

 

4.安裝openvpn

# cd /home/download/
# wget http://www.openvpn.net/release/openvpn-2.0.9.tar.gz
# tar -xvzf openvpn-2.0.9.tar.gz
# cd openvpn-2.0.9
# ./configure -prefix=/usr/local/openvpn && make && make install

二.配置

 

1.創建配置環境

 

# mkdir /etc/openvpn
# cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn
# cd /etc/openvpn/easy-rsa/2.0/
# ls
total 112
-rwxr-xr-x 1 root root 121 Oct 26 03:14 build-ca
-rwxr-xr-x 1 root root 354 Oct 26 03:14 build-dh
-rwxr-xr-x 1 root root 190 Oct 26 03:14 build-inter
-rwxr-xr-x 1 root root 165 Oct 26 03:14 build-key
-rwxr-xr-x 1 root root 159 Oct 26 03:14 build-key-pass
-rwxr-xr-x 1 root root 251 Oct 26 03:14 build-key-pkcs12
-rwxr-xr-x 1 root root 270 Oct 26 03:14 build-key-server
-rwxr-xr-x 1 root root 215 Oct 26 03:14 build-req
-rwxr-xr-x 1 root root 160 Oct 26 03:14 build-req-pass
-rwxr-xr-x 1 root root 430 Oct 26 03:14 clean-all
-rwxr-xr-x 1 root root 1459 Oct 26 03:14 inherit-inter
-rwxr-xr-x 1 root root 297 Oct 26 03:14 list-crl
-rw-r--r-- 1 root root 422 Oct 26 03:14 Makefile
-rwxr-xr-x 1 root root 7768 Oct 26 03:14 openssl-0.9.6.cnf
-rwxr-xr-x 1 root root 8230 Oct 26 03:14 openssl.cnf
-rwxr-xr-x 1 root root 12068 Oct 26 03:14 pkitool
-rw-r--r-- 1 root root 8864 Oct 26 03:14 README
-rwxr-xr-x 1 root root 894 Oct 26 03:14 revoke-full
-rwxr-xr-x 1 root root 180 Oct 26 03:14 sign-req
-rwxr-xr-x 1 root root 1602 Oct 26 03:14 vars
-rwxr-xr-x 1 root root 190 Oct 26 03:14 whichopensslcnf


結果是程序以及腳本,這個簡要的說明一下

 

vars 腳本,是用來創建環境變量,設置所需要的變量的腳本
clean-all 腳本,是創建生成CA證書及密鑰 文件所需要的文件和目錄
build-ca 腳本,生成CA證書(交互)
build-dh 腳本,生成Diffie-Hellman文件(交互)
build-key-server 腳本,生成服務器端密鑰(交互)
build-key 腳本,生成客戶端密鑰(交互)
pkitool 腳本,直接使用vars的環境變量設置直接生成證書(非交互)

 

2.生成CA證書及密鑰

# cd /etc/openvpn/easy-rsa/2.0/
# ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys

注:如果你執行了./clean-all,系統將刪除/etc/openvpn/easy-rsa/2.0/keys下的文件

修改vars文件


# 定義你所在的國家,2個字符
export KEY_COUNTRY=CN
# 你所在的省份
export KEY_PROVINCE=”SH”
# 你所在的城市
export KEY_CITY=”SHANGHAI”
# 你所在的組織
export KEY_ORG="OpenVPN ORG"
# 你的單位
export KEY_OU="OpenVPN"
# 你的郵件地址
export KEY_EMAIL="[email protected]"


#. ./vars (注意有兩個點,兩個點之間有空格)
 

初始化keys文件


# ./clean-all #[注:刪除/etc/openvpn/easy-rsa/2.0/keys下的文件]
# ./build-ca #[注:生成一個a 1024 bit RSA的密鑰,writing new private key to 'ca.key']


一路按回車就可以

# cd keys
# ls
ca.crt ca.key index.txt serial可以看到生成的ca.crt ca.key文件

可以看到生成的ca.crt ca.key文件

 

4.生成Diffie-Hellman文件

# cd ..
# ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]
# ls keys
ca.crt ca.key dh1024.pem index.txt serial

注:可以看到生成了1024為的Diffie-Hellman文件

 

5.生成服務器使用的VPN server ca證書

 

# ./build-key-server chenyz #[注:其中chenyz是CA證書的一個名字]

 

 

一路回車,Sign the certificate? [y/n]:y 選擇y

然后把剛才生成的CA證書和密鑰copy到/etc/openvpn/下

 

# cd keys
# cp ca.crt ca.key chenyz.crt chenyz.key dh1024.pem /etc/openvpn/

 

6.生成客戶端CA證書及密鑰

 

# ./build-key client-chenyz
一路回車,Sign the certificate? [y/n]:y 選擇y

在keys目錄下生成了client-chenyz.crt client-chenyz.csr client-chenyz.key三個客戶端證書
并且將ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key 五個文件打包,以便客戶端vpn

 

使用

# cd keys
# mkdir userkey
# cp ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key userkey/
# tar -zcvf userkey.tar.gz userkey/
userkey/
userkey/ca.crt
userkey/client-chenyz.csr
userkey/ca.key
userkey/client-chenyz.key
userkey/client-chenyz.crt

# sz userkey.tar.gz
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring userkey.tar.gz
100% 4 KB 4 KB/s 00:00:01 0 Errors

使用sz將其下載到windows客戶端

 

7.openvpn配置文件

 

# cp /home/download/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/openvpn.conf
將vpenvpn的原始樣例文件復制到/etc/openvpn下,并改名為openvpn.conf,我們將在樣例文件上進行修改

 

 

 

使用的端口,默認1194


使用的協議,默認使用UDP,如果使用HTTP proxy,必須使用TCP協議


ca:使用build-ca生成的,用于驗證客戶是證書是否合法
cert:使用build-key-server,Server使用的證書對應的key,注意安全,防止被盜


dh:生成的加密文件


通過VPN Server往Client push路由,client通過pull指令獲得Server push的所有選項并應用


可以讓客戶端之間相互訪問直接通過openvpn程序轉發


如果Client使用的CA的Common Name有重復了,或者說客戶都使用相同的CA #和keys連接VPN,一定要打開這個選項,否則只允許一個人連接VPN


對數據進行壓縮


定義用戶


openvpn狀態log


每次重新啟動openvpn后保留原有的log信息,新信息追加到文件最后

 

8.啟動OpenVPN

 

修改完畢后,即可以啟動vpn,--daemon為后臺守護進程模型啟動
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf

 

使用netstat -ln 查看1194openvpn的端口是否已經起來

 

二.win客戶端的安裝和配置

 

下載openvpn客戶端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安裝完畢
把剛剛打包的userkey.tar.gz下載解壓到 C:\Program Files\OpenVPN\config 目錄下
將/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下載到 C:\Program Files\OpenVPN\config 目錄下


接著是配置這個client.conf客戶端配置文件

主要修改有以下幾個地方

dev tun
proto tcp
remote 你的vpn地址 1194
user nobody
group nogroup
ca ca.crt
cert client-chenyz.crt
key client-chenyz.key ##注:文件名和路徑必須對應
comp-lzo
redirect-gateway def1

確保與服務端的配置對應,然后將client.conf修改文件名為client.ovpn,右鍵點擊client.ovpn,選擇"Start OpenVPN on this config file"


可以看到連接已經成功,并且創建了 [本地連接 6] 一條新的鏈路

 

 

 

      或者你也可以打開C:\Program Files\OpenVPN\bin\openvpn-gui-1.0.3.exe進行連接,雙擊后會在任務欄里有個小連接圖標,變成綠色的話就表明你連接成功

      openvpn的參數配置,感覺不算很多,也比較容易理解,中文的資料也很齊全,大概這個東西在國內還是廣泛應用(翻墻^_^)

      如果只是簡單的應用,配置倒真的很簡單,不過如果真的是要用起來,網段設置和訪問控制各種問題真的不少,入是否配置dhcp,是否分配dns,vpn如何和內網通訊,很多很多,因為我只是拿來做代理這里就不細說了

分享到: 更多
藍客門戶
©2001-2019 中國藍客聯盟 版權所有.
關于藍客聯盟歷史宗旨章程技術服務聯系我們藍客社區

浙江福彩3d走势图 大庆冠通棋牌手机下载 北京11选5中奖结果 安徽十一选五开下载 彩乐乐双色球推荐号码预测分析 在线购买广东11选5 广东快乐十分开奖直播 双色球17319期号码预测 官方能提现的棋牌游戏 幸运农场4中3 彩票入门与技