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