服务器端安装

安装前准备

# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

# 安装EPEL扩展库
yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# 安装所需依赖软件包
yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig

安装及配置OpenVPN和easy-rsa

# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa

# 修改vars文件
cd /etc/openvpn/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。
export KEY_COUNTRY="CN"
export KEY_PROVINCE="beijing"
export KEY_CITY="beijing"
export KEY_ORG="ckun"
export KEY_EMAIL="dr.con00@icloud.com"
export KEY_OU="ckun"
# 初始化环境变量
source vars

# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all

# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca

# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server

# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key client

# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh

# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key

在创建build-key-serverbuild-key的过程中,Common Name不要与name等相同,否则可能创建失败。

编辑服务器配置文件

vim /etc/openvpn/server.conf

port 1194
# 这里需要和客户端配置一致
proto tcp #udp 
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
# 192.168.1.0为该机器所在的内网网段,没有这个配置,无法访问内网
push "route 192.168.1.0 255.255.255.0"
comp-lzo
# 记录分配的IP
ifconfig-pool-persist ipp.txt 
# 一个证书可多次登录
duplicate-cn 
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log
verb 3

开启全路由转发,否则无法访问内网

net.ipv4.ip_forward = 1
# 开启openvpn
/etc/init.d/openvpn start

用户的ovpn配置文件

将/etc/openvpn/easy-rsa/2.0/keys下的ca.crt,client.crt,client.key复制到客户端的config下。
创建client.ovpn,编辑

client
dev tun
# 此处要与服务端一致
proto tcp # udp
# 服务端的外网ip
remote 54.238.131.140 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
comp-lzo
verb 3

同复制到客户端config下,打开客户端,连接成功即可。

最后修改日期: 2018年12月6日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。