openvpn安裝使用文件

mersap發表於2017-12-26

一、openvpn原理

openvpn通過使用公開金鑰(非對稱金鑰,加密解密使用不同的key,一個稱為Publice key,另外一個是Private key)對資料進行加密的。這種方式稱為TLS加密
openvpn使用TLS加密的工作過程是,首先VPN Sevrver端和VPN Client端要有相同的CA證書,雙方通過交換證書驗證雙方的合法性,用於決定是否建立VPN連線。
然後使用對方的CA證書,把自己目前使用的資料加密方法加密後傳送給對方,由於使用的是對方CA證書加密,所以只有對方CA證書對應的Private key才能解密該資料,這樣就保證了此金鑰的安全性,並且此金鑰是定期改變的,對於竊聽者來說,可能還沒有破解出此金鑰,VPN通訊雙方可能就已經更換金鑰了。

二、安裝openvpn

centos7安裝yum

[root@openvpn ~]# yum -y install easy-rsa openvpn libssl-dev openssl

配置伺服器進行初始化

[root@openvpn ~]#mkdir -p /etc/openvpn/easy-rsa && cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

配置pki

[root@openvpn 2.0]# pwd
/etc/openvpn/easy-rsa/2.0
[root@openvpn 2.0]# grep -vE `^#|^$` vars
export EASY_RSA=”pwd
export OPENSSL=”openssl”
export PKCS11TOOL=”pkcs11-tool”
export GREP=”grep”
export KEY_CONFIG=$EASY_RSA/whichopensslcnf $EASY_RSA
export KEY_DIR=”$EASY_RSA/keys”
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH=”dummy”
export PKCS11_PIN=”dummy”
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”BeiJing”
export KEY_CITY=”BeiJing”
export KEY_ORG=”9F”
export KEY_EMAIL=”me@mexx.cc”
export KEY_OU=”MyOrganizationalUnit”
export KEY_NAME=server
export KEY_CN=”www.mexx.com”

產生ca證書

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

配置證書

1.清空原有證書
[root@openvpn 2.0]# ./clean-all
2.生產伺服器端和客戶端ca證書
[root@openvpn 2.0]# ./build-ca
注:預設配置一路回車,記住名字後面用到
[root@openvpn 2.0]# ./build-key-server server
注:預設配置一路回車,記住名字後面用到
[root@openvpn 2.0]# ./build-ca client
注:預設配置一路回車,記住名字後面用到
3.生成DH驗證檔案
[root@openvpn 2.0]# ./build-dh
注:生成diffie hellman引數用於增強openvpn安全性生成需要漫長等待讓伺服器飛一會。

配置openvpn server檔案

[root@openvpn openvpn]# grep -vE `^$|^;|^#` server.conf
local “#vpnIP”
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push “route 10.160.0.0 255.240.0.0”
duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1

啟動並設定開啟自動啟動openvpn服務

[root@openvpn openvpn]# systemctl start openvpn@server 啟動服務
[root@openvpn openvpn]# systemctl enable openvpn@server 開機啟動


相關文章