openvpn服务搭建
安装openvpn 和easy-rsa(制作ca证书)
方法一:
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum install openvpn
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
方法二:
yum -y install epel-release #epel源
yum -y install openvpn easy-rsa
ca证书制作(重点难点)
-
创建目录,并复制easy-rsa 目录
mkdir -p /etc/openvpn/ cp -a easy-rsa /etc/openvpn/
-
配置,编辑vars文件,根据自己环境配置
cd /etc/openvpn/easy-rsa/easyrsa3 cp vars.example vars vi vars
set_var EASYRSA_REQ_COUNTRY "CN" set_var EASYRSA_REQ_PROVINCE "Henan" set_var EASYRSA_REQ_CITY "Zhengzhou" set_var EASYRSA_REQ_ORG "amrom" set_var EASYRSA_REQ_EMAIL "1576654308@qq.com" set_var EASYRSA_REQ_OU "My OpenVPN"
-
创建服务端证书及key
cd /etc/openvpn/easy-rsa/easyrsa3/ sh easyrsa init-pki ##初始化 sh easyrsa build-ca ##创建根证书,密码要记住!!!,根证书名称需要输入 sh easyrsa gen-req server nopass##创建服务端证书,服务器端证书名称不能和根证书一致
-
签约服务端证书
sh easyrsa sign server server ##签约服务端证书 sh easyrsa gen-dh ##创建Diffie-Hellman,确保key穿越不安全网络的命令
-
创建客户端证书及key
mkdir client
cp /etc/openvpn/easy-rsa client/
cd client/easy-rsa/easyrsa3/
sh easyrsa init-pki ##初始化
sh easyrsa gen-req amrom-client ##创建客户端key及证书
-
签约客户端证书
```code
cd /etc/openvpn/easy-rsa/easyrsa3/
sh easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/amrom-client.req amrom-client ##导入req,上一步生成的
sh easyrsa sign client amrom-client ##签约
7. 整理文件
将ca证书,服务端证书,服务端密钥,放置在openvpn安装目录下
```code
cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn/
将客户端的证书、秘钥,放置在openvpn安装目录下
cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/along.crt /root/client/
cp /root/client/easy-rsa/easyrsa3/pki/private/along.key /root/client
配置openvpn服务端
在这里/usr/share/doc/openvpn-2.3.2/sample/sample-config-files
找到server.conf
默认配置文件,可以复制到openvpn安装目录下,修改以下配置项;如果有;
的,服务是无法启动的
vi /etc/openvpn/server.conf
local 0.0.0.0 #监听地址
port 1194 #监听端口
proto tcp #监听协议
dev tun #采用路由隧道模式
ca /etc/openvpn/ca.crt #ca证书路径
cert /etc/openvpn/server.crt #服务器证书
key /etc/openvpn/server.key # This file should be kept secret 服务器秘钥
dh /etc/openvpn/dh.pem #密钥交换协议文件
server 10.8.0.0 255.255.255.0 #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp" #给网关
push "dhcp-option DNS 8.8.8.8" #dhcp分配dns
client-to-client #客户端之间互相通信
keepalive 10 120 #存活时间,10秒ping一次,120 如未收到响应则视为断线
comp-lzo #传输数据压缩
max-clients 100 #最多允许 100 客户端连接
user openvpn #用户
group openvpn #用户组
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
注意设置权限:
chown -R openvpn.openvpn /var/log/openvpn/
chown -R openvpn.openvpn /etc/openvpn/*
iptables 设置nat 规则和打开路由转发
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
iptables -vnL -t nat
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
开启openvpn服务
openvpn /etc/openvpn/server.conf & //加上& 表示后台运行
客户端配置
- 下载客户端需要的文件
C:\Program Files\OpenVPN\config 的目录
2019/11/28 00:19 <DIR> .
2019/11/28 00:19 <DIR> ..
2019/11/27 23:56 1,159 ca.crt ##服务器上下载下来
2019/11/28 00:24 180 client.ovpn ##配置项
2019/11/19 18:08 340 README.txt
2019/11/27 23:56 4,425 test.crt ##服务器上下载下来
2019/11/27 23:56 1,704 test.key ##服务器上下载下来
5 个文件 7,808 字节
2 个目录 59,594,248,192 可用字节
client.ovpn文件内容
client
dev tun
proto tcp //改为tcp
remote 192.168.200.143 1194 //OpenVPN服务器的外网IP和端口,ip和域名都行
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert test.crt //client的证书
key test.key //client的密钥
comp-lzo
verb 3
-
启动openvpn客户端,输入密码
查看分配的ip
10.8.0.6
总结
- 证书(难点) 1.1 根证书 1.2 服务端证书 1.3 客户端证书
- openvpn配置 2.1 服务端配置 2.2 客户端配置