使用OpenVPN AS搭建ssl vpn

我们之前一直使用深信服的ssl vpn用于从互联网访问内网,虽然现在普通用户已经切换到webvpn上,但ssl vpn用于远程管理和开发适应性更好,还是有其存在的意义。ssl vpn跑了七八年,升级服务已经过期,官方也不再支持这个硬件型号,想继续用只能买新的。然而今年的预算比去年还要紧张,上级要求压减40%,于是琢磨用免费的东西来代替,万一现在的设备挂掉也不至于影响工作,然后把省下的钱用在更重要的项目上。

OpenVPN是著名的老牌开源ssl vpn,它对Windows、Mac、Linux、iOS、android各个系统的支持都不错。在比较过几个ssl vpn方案之后,我决定还是用它比较稳妥。

自己配置OpenVPN环境比较麻烦,使用OpenVPN Access Server就方便的多——安装简单,自带图形管理界面,只需要简单配置就可以使用。但问题是它是官方用来赚钱的,免费版本只允许同时两个用户在线,于是我找了个福利版……

安装过程如下:

首先准备一台最小化安装的CentOS7系统的服务器,OpenVPN对硬件的需求很低,实际环境中双核2G内存跑上百个链接绰绰有余,建议使用虚机。

如果是VMware虚机的话先安装vm-tools

yum install -y open-vm-tools

systemctl enable vmtoolsd

systemctl start vmtoolsd

限制ssh访问来源

echo "sshd:192.168.1.0/24" >> /etc/hosts.allow

echo "sshd:ALL" >> /etc/hosts.deny

systemctl restart sshd.service

更新和安装必备软件

yum update -y

yum install wget net-tools -y

下载安装openvpn-as-2.5,现在最新是2.7.5,增加了集群等功能,用处不大,2.5暂时没有什么高危漏洞,核心功能也够用,关键是用新版本就没有福利了……

wget http://nirob.info/OpenVPN/openvpn-as-2.5-CentOS7.x86_64.rpm

rpm -i openvpn-as-2.5-CentOS7.x86_64.rpm

使用OpenVPN AS搭建ssl vpn

看见这些就说明安装完成,访问管理后台前先进行下一步

替换pyovpn-2.0-py2.7.egg,解除在线数限制

cd /usr/local/openvpn_as/lib/python2.7/site-packages/

rm pyovpn-2.0-py2.7.egg

wget http://nirob.info/OpenVPN/pyovpn-2.0-py2.7.egg

重新初始化配置

cd /usr/local/openvpn_as/bin

./ovpn-init

使用OpenVPN AS搭建ssl vpn

输入DELETE删除现有配置

使用OpenVPN AS搭建ssl vpn

协议yes

使用OpenVPN AS搭建ssl vpn

是否主服务器节点yes

使用OpenVPN AS搭建ssl vpn

选择启用管理员后台的网卡

使用OpenVPN AS搭建ssl vpn

管理端口,安全起见可以改个别的

使用OpenVPN AS搭建ssl vpn

VPN使用端口,默认443

使用OpenVPN AS搭建ssl vpn

客户端流量默认走VPN

使用OpenVPN AS搭建ssl vpn

客户端DNS通过VPN解析

使用OpenVPN AS搭建ssl vpn

使用内置数据库本地认证

使用OpenVPN AS搭建ssl vpn

默认允许客户端访问内网

使用OpenVPN AS搭建ssl vpn

管理账号安全起见换一个别的,no回车,建一个新的管理用户,并输入两次密码

使用OpenVPN AS搭建ssl vpn

直接回车

等待初始化完成

管理入口: https://IP:管理端口/admin

用户入口: https://IP/

使用OpenVPN AS搭建ssl vpn

进入管理界面,可以看到授权状态是1024个设备,福利有效~

使用OpenVPN AS搭建ssl vpn

这里内网网段默认是按网卡设置,不符的话需要手动调整

使用OpenVPN AS搭建ssl vpn

在这里添加本地用户,操作不太讲人性,最后要拉到下面保存

使用OpenVPN AS搭建ssl vpn

测试登录ok,客户端都可以从本地下载,建议去找最新版本客户端,保证最新操作系统的兼容性

使用OpenVPN AS搭建ssl vpn

使用OpenVPN AS搭建ssl vpn

添加防火墙NAT策略,做公网ip映射,放开tcp 443和udp 1194端口,然后就可以从外网访问

使用OpenVPN AS搭建ssl vpn

DNS上添加一条A记录,给个sslvpn.x.x.x域名指向这个公网IP

使用OpenVPN AS搭建ssl vpn

用tcping测试域名解析和443端口正常开放,配置无误

使用OpenVPN AS搭建ssl vpn

在这里把之前的内网ip修改为外网ip或域名。如果要从内网测试什么的,还需要做NAT双向映射或配置DNS来自内网的请求解析成内网ip

然后在外网的一台win电脑上安装客户端测试:

使用OpenVPN AS搭建ssl vpn

使用OpenVPN AS搭建ssl vpn

使用OpenVPN AS搭建ssl vpn

使用OpenVPN AS搭建ssl vpn

连接成功

使用OpenVPN AS搭建ssl vpn

浏览器打开内网地址ok

使用OpenVPN AS搭建ssl vpn

客户端远程桌面内网服务器ok

至此这个VPN就搞定了。

话说回来,没有技术支持的东西全靠自己琢磨,未来如果出现针对这个版本的高危漏洞就很棘手。除非万不得已,还是不要把它用在正式环境里……

展天联盟 ( QQ/微信:10801787 )

本文链接:https://www.zhantian9.com/62565.html