當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > OpenVPN 服務(wù)器搭建
OpenVPN 服務(wù)器搭建:
系統(tǒng):Ubuntu 14.04
、 安裝openvpn,easy-rsa
sudo apt-get -y install openvpn libssl-dev openssl
sudo apt-get -y install easy-rsa
、 制作相關(guān)證書
openvpn的證書分為三部分:CA證書、Server端證書、Client端證書
2.1制作CA證書:
openvpn與easy-rsa安裝完畢后,我們需要在/etc/openvpn/目錄下創(chuàng)建easy-rsa文件夾,如下:
sudo mkdir /etc/openvpn/easy-rsa/
然后把/usr/share/easy-rsa/目錄下的所有文件全部復(fù)制到/etc/openvpn/easy-rsa/下,如下:
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
在開(kāi)始制作CA證書之前,我們還需要編輯vars文件,修改如下相關(guān)選項(xiàng)內(nèi)容即可。如下:
sudo vi /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY=" "
export KEY_PROVINCE=" "
export KEY_CITY=" "
export KEY_ORG=" "
export KEY_EMAIL=" "
export KEY_OU=" "
export KEY_NAME=" "
“”“”內(nèi)可自己加
vars文件主要用于設(shè)置證書的相關(guān)組織信息,紅色部分的內(nèi)容可以根據(jù)自己的實(shí)際情況自行修改。
其中export KEY_NAME=" VPNServer "這個(gè)要記住下,我們下面在制作Server端證書時(shí),會(huì)使用到。
進(jìn)入root權(quán)限
然后使用source vars命令使其生效,如下:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# source vars
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./clean-all
注意:執(zhí)行clean-all命令會(huì)刪除,當(dāng)前目錄下的keys文件夾。
現(xiàn)在開(kāi)始正式制作CA證書,使用如下命令:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./build-ca
一路按回車鍵即可。
現(xiàn)在把該CA證書的ca.crt文件復(fù)制到openvpn的啟動(dòng)目錄/etc/openvpn下,如下:
cp keys/ca.crt /etc/openvpn/
2.2 制作Server端證書
CA證書制作完成后,我們現(xiàn)在開(kāi)始制作Server端證書。如下:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./build-key-server 文件名
注意:上述命令中 文件名,就是我們前面vars文件中設(shè)置的KEY_NAME,碰到[y/n]: 輸入y。
現(xiàn)在再為服務(wù)器生成加密交換時(shí)的Diffie-Hellman文件,如下:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./build-dh
以上操作完畢后,把VPNServer.crt、VPNServer.key、dh2048.pem復(fù)制到/etc/openvpn/目錄下。Server端證書就制作完畢。
2.3 制作client端證書
Server端證書制作完成后,我們現(xiàn)在開(kāi)始制作Client端證書,如下:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./build-key 文件名
注意:上述命令中的client,是客戶端的名稱。這個(gè)是可以進(jìn)行自定義的。碰到[y/n]: 輸入y。
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ll keys/
其中client.crt 和client.key 兩個(gè)文件是我們需要的。到此client端證書制作完畢。
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa# ./build-key client1
以此類推,生成多個(gè)client端證書。
三:配置Server端
所有證書制作完畢后,我們現(xiàn)在開(kāi)始配置Server端。Server端的配置文件,我們可以從openvpn自帶的模版中進(jìn)行復(fù)制。如下:
root@iZ284zmibbzZ:/etc/openvpn/easy-rsa#
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
cd /etc/openvpn/
解壓server.conf.gz 文件,使用如下命令
gzip -d server.conf.gz
現(xiàn)在我們來(lái)修改server.conf文件,如下:
port 1194
proto tcp
cert 服務(wù)器文件名
key 服務(wù)器文件名
dh dh2048.pem
#comp-lzo
client-to-client
配置文件修改完畢后,我們現(xiàn)在來(lái)啟動(dòng)openvpn,使用如下命令:
/etc/init.d/openvpn start
通過(guò)上圖,我們可以很明顯的看出openvpn已經(jīng)在此啟動(dòng),而且也確實(shí)使用的TCP協(xié)議的1194端口。
四:配置client 端
先把這幾個(gè)文件復(fù)制到/home/ vpn_client_conf /目錄下,然后再把openvpn客戶端的配置文件模版也復(fù)制到/home/ vpn_client_conf /目錄下。如下:
把client.conf文件重命名為client.ovpn,然后進(jìn)行編輯,如下:
proto tcp
remote **** 1194
ca ca.crt
cert.crt
key.key
#comp-lzo
Client配置文件client.ovpn,修改了幾個(gè)地方:
第一、使用的協(xié)議,由原來(lái)的UDP修改為TCP,這個(gè)一定要和Server端保持一致。否則Client無(wú)法連接。
第二、remote地址,這個(gè)地址要修改為Server端的地址。
第三、Client證書名稱,這個(gè)要和我們現(xiàn)在使用的Client證書名稱保持一直。
以上修改完畢后,我們要把這個(gè)幾個(gè)文件放在同一個(gè)文件夾中(client.ovpn, ca.crt, client.crt, client.key),并且一定要保持client.ovpn這個(gè)文件名稱是唯一的。否則在openvpn客戶端連接時(shí),會(huì)報(bào)錯(cuò)。
注意:建議客戶端版本號(hào)要與服務(wù)器端openvpn的版本一直,否則可能會(huì)出現(xiàn)無(wú)法連接服務(wù)器的現(xiàn)象。
4.1 Windows客戶端
把vpn_client_conf這個(gè)文件夾復(fù)制到openvpn客戶端安裝的config文件夾。
4.2 Linux OS
在Windows OS上測(cè)試完畢后,我們現(xiàn)在在切換到linux系統(tǒng)。在此我們以u(píng)buntu14.04為例。
要在ubuntu上連接openvpnServer端,我們需要先安裝openvpn軟件,如下:
sudo apt-get -y install openvpn
注意:將服務(wù)器端的vpn_client_conf文件夾拷貝到本地Linux系統(tǒng)上。
不同的客戶端使用不同的client.crt 、client.key、 client.ovpn。在連接Server端之前,一定要切換到root用戶下。因?yàn)樵谶B接Server端時(shí),openvpn會(huì)在本機(jī)創(chuàng)建一個(gè)虛擬網(wǎng)卡,如果使用普通用戶的話,是沒(méi)有權(quán)限創(chuàng)建虛擬網(wǎng)卡的。
robin@Ubuntu:~/OpenVPN/vpn_ubuntu_client1_conf$ openvpn --config client1.ovpn