一、server 端树立
阐明:发动时留意用户权限,比方root用户发动。A8站源码交易平台
Ubuntu:
服务器环境:Ubuntu 16.04 64位体系
OpenVPN版别:OpenVPN 2.3.10
OpenVPN:
一般以体系源装置的版别为准,比方现在装置的基本以2.3.10为主,或许以后会跟着源晋级而更新到最新版别。
能够独自上官网(需求翻出去)下载指定版别的来装置,但条件留意体系装置的依靠。
树立进程:
1、装置前预备
# 装置openssl和lzo,lzo用于紧缩通讯数据加速传输速度sudo apt-get install openssl libssl-dev ; sudo apt-get install lzop
2、装置及装备OpenVPN和easy-rsa
# 装置openvpn和easy-rsa sudo apt-get install openvpn easy-rsa
# 修正vars文件 cd /usr/share/easy-rsa/; vim vars
# 修正注册信息,比方公司地址、公司称号、部分称号等。
export KEY_COUNTRY="***"
export KEY_PROVINCE="********"
export KEY_CITY="********"
export KEY_ORG="********"
export KEY_EMAIL="*********"
export KEY_OU="********"
# 初始化环境变量
source vars
# 铲除keys目录下一切与证书相关的文件
# 下面进程生成的证书和密钥都在/usr/share/easy-rsa/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和私钥(一路按回车,直到提示需求输入y/n时,输入y再按回车,总共两次)
./build-key-server server
# 每一个登陆的VPN客户端需求有一个证书,每个证书在同一时间只能供一个客户端衔接,下面树立2份
# 为客户端生成证书和私钥(一路按回车,直到提示需求输入y/n时,输入y再按回车,总共两次)
./build-key client1
./build-key client2
# 创立迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成进程比较慢,在此期间不要去中止它)
./build-dh
# 生成ta.key文件(防DDos进犯、UDP吞没等歹意进犯)
openvpn --genkey --secret keys/ta.key
3、创立服务器端装备文件
# 在openvpn的装备目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需求用到的openvpn证书和密钥仿制一份到刚创立好的keys目录中
cp /usr/share/easy-rsa/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 仿制一份服务器端装备文件模板server.conf到/etc/openvpn/
gzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
# 检查server.conf里的装备参数
grep '^[^#;]' /etc/openvpn/server.conf
# 修正server.conf
vim /etc/openvpn/server.conf
port 1194
# 改成tcp,默许运用udp,假如运用HTTP Proxy,有必要运用tcp协议
proto tcp
dev tun # 路由形式,桥接形式用dev tap
# 途径前面加keys,全途径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key # This file should be kept secret
dh keys/dh2048.pem
# 默许虚拟局域网网段,不要和实践的局域网抵触即可
server 10.8.0.0 255.255.255.0 # 路由形式,桥接形式用server-bridge
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是我这台VPN服务器地点的内网的网段,读者应该依据本身实践情况进行修正
push "route 10.0.0.0 255.0.0.0"
# 能够让客户端之间彼此拜访直接经过openvpn程序转发,依据需求设置
client-to-client
# 假如客户端都运用相同的证书和密钥衔接VPN,一定要翻开这个选项,不然每个证书只允许一个人衔接VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状况日志,默许为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默许为/etc/openvpn/openvpn.log
log-append openvpn.log
# 改成verb 5能够多检查一些调试信息
verb 5
4、装备内核和防火墙,发动服务
# 敞开路由转发功用
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sed -i '/net.ipv4.ip_forward/s/#//' /etc/sysctl.conf
sysctl -p
# 装备防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE;mkdir /etc/iptables
iptables-save > /etc/iptables/iptables.conf
# 封闭ufw防火墙,改成iptables,这一步按需求设置,比较ufw在Ubuntu默许封闭的。iptables和ufw任选一个即可。
ufw disable
# 发动openvpn并设置为开机发动(?)
systemctl start openvpn@server systemctl enable openvpn@server
# 在systemd单元文件的后边,咱们经过指定特定的装备文件名来作为一个实例变量来敞开OpenVPN服务,咱们的装备文件称号为/etc/openvpn/server.conf,所以咱们在systemd单元文件的后边增加@server来敞开OpenVPN服务 A8站源码交易平台
5、创立客户端装备文件client.ovpn(用于客户端软件运用)
# 仿制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.ovpn
# 修正client.ovpn
vim /etc/openvpn/client.ovpn
client
dev tun # 路由形式
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote 203.195.1.2 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
ns-cert-type server
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 5
6、打包客户端装备文件
zip client.zip /etc/openvpn/client.ovpn /etc/openvpn/keys/ca.crt /etc/openvpn/keys/client1.crt /etc/openvpn/keys/client1.key /etc/openvpn/keys/ta.key
二、windows client端树立
下载openvpn
默许装置途径为 C:Program FilesOpenVPN
将client.zip 解压到 C:Program FilesOpenVPNconfig 下面