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证书制作(重点难点)

  1. 创建目录,并复制easy-rsa 目录

    mkdir -p /etc/openvpn/
    cp -a easy-rsa /etc/openvpn/
    
  2. 配置,编辑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"
    
  3. 创建服务端证书及key

    cd /etc/openvpn/easy-rsa/easyrsa3/
    sh easyrsa init-pki				##初始化
    sh easyrsa build-ca				##创建根证书,密码要记住!!!,根证书名称需要输入
    sh easyrsa gen-req server nopass##创建服务端证书,服务器端证书名称不能和根证书一致
    
  4. 签约服务端证书

    sh easyrsa sign server server	##签约服务端证书
    sh easyrsa gen-dh				##创建Diffie-Hellman,确保key穿越不安全网络的命令
    
  5. 创建客户端证书及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及证书
    
    
  6. 签约客户端证书

    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安装目录下

    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 &	//加上& 表示后台运行

客户端配置

  1. 下载客户端需要的文件

    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
  1. 启动openvpn客户端,输入密码 查看分配的ip10.8.0.6

总结

  1. 证书(难点) 1.1 根证书 1.2 服务端证书 1.3 客户端证书

  2. openvpn配置 2.1 服务端配置 2.2 客户端配置