CentOS7下搭建OpenVPN Server

VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。

下面通过在如下拓扑图环境下搭建OpenVPN Server,介绍如何在CentOS7下搭建OpenVPN Server

由于没有公网IP进行模拟,在路由器LAN一侧(192.168.60.X)的CentOS7服务器上搭建OpenVPN Server,在路由器WAN一侧(192.168.31.X)的Windows机器上使用VPN Client拨入VPN进行测试

下面先介绍OpenVPN Server的搭建

1)先yum install -y epel-release

yum install -y install openvpn easy-rsa net-tools bridge-utils

2)创建CA和证书

cd /usr/share/easy-rsa/3

./easyrsa init-pki

./easyrsa build-ca

./easyrsa build-server-full server1 nopass

./easyrsa build-client-full client1 nopass

./easyrsa gen-dh 生成DH需要等待一段时间

[root@CentOS7_DIY 3]# ./easyrsa gen-dh

Generating DH parameters, 2048 bit long safe prime, generator 2

This is going to take a long time

..................................................................................+...

.......

..................................................................................+........++*++*

DH parameters of size 2048 created at /usr/share/easy-rsa/3/pki/dh.pem

3)创建TLS-Auth Key

openvpn --genkey --secret ./pki/ta.key

cp -pR /usr/share/easy-rsa/3/pki/{issued,private,ca.crt,dh.pem,ta.key} /etc/openvpn/server/

4)内核参数中开启ipv4 forwarding

cd /etc/sysctl.d/

vi 99-sysctl.conf

追加net.ipv4.ip_forward = 1

sysctl --system

5)配置OpenVPN Server

cp /usr/share/doc/openvpn-2.4.7/sample/sample-config-files/server.conf /etc/openvpn/server/

vi /etc/openvpn/server/server.conf

需要修改的地方如下

# line 32: change if need (listening port of OpenVPN)

port 1194

# line 35: change if need

;proto tcp

proto udp

# line 78: specify certificates

ca ca.crt

cert issued/server1.crt

key private/server1.key

# line 85: specify DH file

dh dh.pem

# line 101: specify network to be used on VPN

# any network are OK except your local network

server 10.8.0.0 255.255.255.0

# line 143: uncomment and change to your local network

push "route 192.168.60.0 255.255.255.0"

# line 231: keepalive settings

keepalive 10 120

# line 244: specify TLS-Auth key

tls-auth ta.key

# line 263: uncomment (enable compress)

comp-lzo

# line 281: enable persist options

persist-key

persist-tun

# line 287: change log path

status /var/log/openvpn-status.log

# line 296: change log path

log /var/log/openvpn.log

log-append /var/log/openvpn.log

# line 306: specify log level (0 - 9, 9 means debug lebel)

verb 3

6)启动openvpn-server服务并设置开机自启动

[root@CentOS7_DIY ~]# systemctl start openvpn-server@server

[root@CentOS7_DIY ~]# systemctl enable openvpn-server@server

7)路由器上需要将VPN Server 192.168.60.13服务端口udp 1194映射到外网192.168.31.22的1194端口

8)VPN Client端下载安装VPN

openvpn官网可以下载

并将如下四个文件从VPN Server上sz下载下来,拷贝到VPN Client的安装目录下config文件夹

/etc/openvpn/server/ca.crt /etc/openvpn/server/ta.key /etc/openvpn/server/issued/client1.crt

/etc/openvpn/server/private/client1.key

并从C:\Program Files\OpenVPN\sample-config拷贝client.ovpn文件到config目录下进行编辑

添加及修改如下字段

remote 192.168.31.22 1194

ca ca.crt

cert client1.crt

key client1.key

tls-auth ta.key 1

comp-lzo

修改完成后重命名为client1.ovpn

9)打开OpenVPN GUI 连接VPN

这时测试发现连接不上

查看服务器上openvpn.log日志有如下报错

通过搜索报错信息,查到的解决方案为

key-direction 0 (on server)

key-direction 1 (on client)

在服务端加TLS配置后面添加key-direction 0

vi server.conf

修改后 systemctl restart openvpn-server@server

在客户端client1.ovpn配置添加key-direction 1

再重新连接VPN,就可以连接上了

10) 连上VPN后,获取到VPN地址为10.8.0.X段地址,ping 内网OpenVPN Server的内网地址 192.168.60.113可以ping通

这时发现ping不通192.168.60.254等内网其它地址

需要在内网路由器上加一条静态路由,目的网络为VPN网段

10.8.0.0/24,下一跳为VPN服务器的内网地址192.168.60.113

加上这条路由之后,就可以ping通192.168.60.X的服务器,并访问192.168.60.X的服务器业务了

本文分享自微信公众号 - WalkingCloud(WalkingCloud2018)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券