openVPN可以软件实现通过认证后进行对内网设备操作。
安装阶段
添加源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装openvpn
yum -y install openvpn easy-rsa
生成openvpn 必要文件
如果安装的easy-rsa-3.0的版本,针对3.0生成证书,执行的步骤如下:
复制文件
cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa/
\rm 3 3.0
cd 3.0.3/
find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars
生成证书
创建一个新的PKI和CA
cd /etc/openvpn/easy-rsa/3.0.3
./easyrsa init-pki #创建空的pki
./easyrsa build-ca nopass #创建新的CA,不使用密码
创建服务端证书
./easyrsa gen-req server nopass
签约服务端证书
./easyrsa sign server server # 这里需要输入“yes”
创建 Diffie-Hellman
./easyrsa gen-dh
到这里服务端的证书就创建完了,然后创建客户端的证书。
创建客户端证书
复制文件
cp -r /usr/share/easy-rsa/ /etc/openvpn/client/easy-rsa
cd /etc/openvpn/client/easy-rsa/
\rm 3 3.0
cd 3.0.3/
find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars
生成证书
扫描二维码关注公众号,回复:
2226876 查看本文章
cd /etc/openvpn/client/easy-rsa/3.0.3
./easyrsa init-pki #创建新的pki
./easyrsa gen-req dalin nopass #客户证书名为大林,木有密码
签约客户端证书
cd /etc/openvpn/easy-rsa/3.0.3/
./easyrsa import-req /etc/openvpn/client/easy-rsa/3.0.3/pki/reqs/dalin.req dalin
./easyrsa sign client dalin # 需要输入:“yes”
整理证书
现在所有的证书都生成完了,整理一下
服务端所需的文件
mkdir /etc/openvpn/certs
cd /etc/openvpn/certs/
cp /etc/openvpn/easy-rsa/3.0.3/pki/dh.pem .
cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt .
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/server.crt .
cp /etc/openvpn/easy-rsa/3.0.3/pki/private/server.key .
客户端所需的文件
mkdir /etc/openvpn/client/dalin/
cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt /etc/openvpn/client/dalin/
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/dalin.crt /etc/openvpn/client/dalin/
cp /etc/openvpn/client/easy-rsa/3.0.3/pki/private/dalin.key /etc/openvpn/client/dalin/
这三个客户端的文件用来验证,需要下载下来使用,顺便提一下再添加用户在./easyrsa gen-req
这里开始就行了, 像是吊销用户证书的命令都自己用./easyrsa --help
去看吧,GitHub 项目地址
服务器配置文件
vim /etc/openvpn/server.conf
local 192.168.1.113
port 1194
proto tcp
dev tun
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server.crt
key /etc/openvpn/certs/server.key
dh /etc/openvpn/certs/dh.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 17.166.221.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 223.6.6.6"
client-to-client
keepalive 20 120
comp-lzo
#duplicate-cn
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 1
mute 20
启动服务
systemctl start openvpn@server
服务端其他配置
配置iptables转发
iptables -t nat -A POSTROUTING -s 17.166.221.0/24 -j MASQUERADE #NAT
开启转发
vim /etc/sysctl.conf
# 添加内容:net.ipv4.ip_forward = 1
sysctl -p
客户端配置
编辑客户端配置文件
vim client.ovpn # 添加内容如下
client
proto udp
dev tun
remote 36.0.0.0 1194
ca ca.crt
cert dalin.crt
key dalin.key
resolv-retry infinite
nobind
mute-replay-warnings
keepalive 20 120
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3