由于最近公司的一個客戶需求通過VPN來訪問國外的業(yè)務,這個事情由我來負責但我從來都沒有做過于是就各種百度、google一頓狂找OpenVPN方面的資料.根據(jù)網(wǎng)上查找到的資料結合自己的理解總結如下文檔,給大家在這里分享下.
一、安裝OpenVPN前的準備工作
1、安裝OpenVPN版本
Centos6.3 64位 客戶端系統(tǒng)Win7 64位 服務端IP:114.26.162.35
2、服務端軟件版本
openvpn-2.0.9tar.gz
lzo-2.03.tar.gz
3、客戶端安裝軟件版本
openvpn-2.2.0-install.exe
4、配置網(wǎng)絡yum源,跟新所需的庫文件,避免安裝報錯
yum groupinstall "DevelopmentTools"
5、在安裝之前確認一下你買的vps是否開啟tun/tap的支持,burst vps默認是不開啟tun/tap的,可以使用cat /dev/net/tun進行檢查出現(xiàn)下面的代表正確了
[root@YZW ~]# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state
6、清空防火墻配置關閉Selinxu
[root@YZW ~]# iptables -F
[root@YZW ~]# service iptables save
[root@YZW ~]# service iptables stop
[root@YZW ~]# setenforce 0
二、安裝LZO庫
[root@YZW ~]# cd /wang
[root@YZW wang]# tar xf lzo-2.03.tar.gz
[root@YZW wang]# cd lzo-2.03
[root@YZW lzo-2.03]# ./configure –prefix=/application/lzo-2.03
[root@YZW lzo-2.03]# make && make install
[root@YZW lzo-2.03]# echo $?
0
[root@YZW lzo-2.03]# ln -s /application/lzo-2.03/application/lzo
[root@YZW lzo-2.03]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib/
/usr/local/pcre/lib/
/lib
/lib64
/usr/lib
/usr/lib64
重新加載動態(tài)庫
[root@YZW lzo-2.03]# ldconfig
三、安裝OpenVPN
[root@YZW ~]# cd /wang
[root@YZW wang]# tar zxvf openvpn-2.0.9.tar.gz
root@YZW wang]# cd openvpn-2.0.9
[root@YZW openvpn-2.0.9]# ./configure –prefix=/application/openvpn-2.0.9 –with-lzo-headers=/application/lzo/include–with-lzo-lib=/application/lzo/lib –with-sslheaders=/usr/include/openssl–with-ssl-lib=/usr/lib
[root@YZW openvpn-2.0.9]#make
[root@YZW openvpn-2.0.9]#make install
[root@YZW openvpn-2.0.9]# ln -s /application/openvpn-2.0.9 /application/openvpn
[root@YZW openvpn-2.0.9]# mkdir /etc/openvpn
[root@YZW openvpn-2.0.9]# cp -R easy-rsa/ /etc/openvpn/
[root@YZW openvpn-2.0.9]# cd /etc/openvpn/easy-rsa/2.0/
[root@YZW 2.0]# ls
[root@YZW 2.0]# ./vars
注:如果你執(zhí)行了./clean-all,系統(tǒng)將刪除/etc/openvpn/easy-rsa/2.0/keys下的文件
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
[root@YZW 2.0]# vim vars
60 export KEY_COUNTRY="CN"
61 export KEY_PROVINCE="BJ"
62 export KEY_CITY="BJ"
63 export KEY_ORG="YZWOpen ORG"
64 export KEY_EMAIL="260428042@qq.com"
65 export KEY_OU="yzwVPN"
更新剛才修改的配置
[root@YZW 2.0]# source ./vars
四、初始化keys文件,生成服務端CA證書及文件
清空所有證書
[root@YZW 2.0]# ./clean-all
生成服務端證書
[root@YZW 2.0]# ./build-ca
[root@YZW 2.0]# cd keys/
查看生成的證書
[root@YZW keys]# ls
ca.crt ca.key index.txt serial
再生成diffie hellman參數(shù),用于增強openvpn安全性
[root@YZW keys]# cd ..
[root@YZW 2.0]# ./build-dh
[root@YZW 2.0]# cd keys/
[root@YZW keys]# ls
ca.crt ca.key dh1024.pem index.txt serial
生成服務器端密鑰證書,server是一個名字而已
[root@YZW 2.0]# ./build-key-server server
[root@YZW keys]# cp ca.crt ca.key server.crt server.key dh1024.pem /etc/openvpn/
五、初始化keys文件,生成客戶端CA證書及文件
[root@YZW keys]# cd ..
[root@YZW 2.0]# ./build-key client
wKioL1SNhhDQFxLqAAPkZsWdrnM625.jpg
[root@YZW 2.0]# mkdir /key
[root@YZW 2.0]# cd keys/
[root@YZW keys]# ls
01.pem ca.key client.key index.txt.attr serial server.csr
02.pem client.crt dh1024.pem index.txt.attr.old serial.old server.key
ca.crt client.csr index.txt index.txt.old server.crt
將key目錄下的這幾個文件下載到win7系統(tǒng)上面去
[root@YZW keys]# cp ca.crt ca.key client.crt client.csrclient.key /key/
六、配置openvpn文件
[root@YZW key]# cp /wang/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/openvpn.conf
26 local 這里寫上你服務器的ip地址
33 port 1194
38 proto tcp
54 dev tun
79 ca /etc/openvpn/ca.crt //這個是文件實際所在的路徑
80 cert /etc/openvpn/server.crt
81 key /etc/openvpn/server.key # This file should be kept secret
88 dh /etc/openvpn/dh1024.pem
97 server 10.8.0.0 255.255.255.0 //客戶端獲取的IP地址
104 ifconfig-pool-persist ipp.txt
127 push "route 0.0.0.0 0.0.0.0" //客戶端會添加一條這個路由所有的流量通過vpn,也可以設置部分通過vpn
128 push "dhcp-option DNS 202.106.0.20"
198 client-to-client
211 duplicate-cn //開啟這個可以共用一個客戶端key,否則需要單獨創(chuàng)建每個客戶端key
220 keepalive 10 120
245 comp-lzo
256 user nobody
257 group nobody
263 persist-key
264 persist-tun
269 status /etc/openvpn/logs/openvpn-status.log
278 log /etc/openvpn/logs/openvpn.log
279 log-append /etc/openvpn/logs/openvpn.log
288 verb 3
[root@YZW key]# cd /etc/openvpn/
[root@YZW openvpn]# mkdir logs
[root@YZW openvpn]# chmod -R o+w logs/
七、啟動OpenVPN
修改完畢后,即可以啟動vpn,–daemon為后臺守護進程模型啟動
[root@YZW ~]# /application/openvpn/sbin/openvpn –daemon –config /etc/openvpn/openvpn.conf
[root@YZW ~]# netstat -an | grep 1194
tcp 0 0 114.26.162.35:1194 0.0.0.0:* LISTEN
八、在服務端開啟路由轉發(fā)
[root@YZW ~]# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 //將0修改為1
[root@YZW ~]# sysctl -p //重新加載
九、配置防火墻設置nat轉發(fā)
保證VPN地址池可路由出外網(wǎng)
在win7系統(tǒng)下也就是你的客戶端用telnet 你服務器里邊的外網(wǎng)IP地址 1194看是否可以進去
[root@YZW ~]# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
[root@YZW ~]# /etc/rc.d/init.d/iptables save
十、win7客戶端安裝配置
雙擊運行這個exe程序一直next安裝完成就可以!
安裝完成到openvpn的安裝目錄將sample-config這個目錄下的client.ovpn文件到config目錄
復制到config目錄
編輯client.ovpn文件修改內(nèi)容如下
client # 定義是一個客戶端
devtun # 定義使用路由IP模式,與服務端一致
prototcp # 定義使用的協(xié)議,與服務端一致
remote 114.26.162.35 1194 # 指定服務端地址和端口,可以用多行指定多臺服務器
resolv-retry infinite # 解析服務器域名
nobind # 客戶端不需要綁定端口
user nobody
group nobody
persist-key
persist-tun
ca ca.crt # 就是指定ca和客戶端的證書
cert client.crt
keyclient.key
ns-cert-type server
comp-lzo # 使用lzo壓縮,與服務端一致
verb 3
route-method exe
route-delay 2
redirect-gateway def1
十一、驗證結果
雙擊桌面的安裝圖標快捷鍵
桌面右下邊有個紅色的小電腦圖標,右鍵—》Connect,如果正常會彈出一個框顯示連接信息,然后電腦圖標變成綠色了就證明連接上了
文章來源:http://wxj121.blog.51cto.com/7136845/1589609