引言
在大型企业中,多存在出差的情况,这时候在外无法使用内网访问业务,也无法通过IPSec VPN访问业务,这时候我们就只能使用SSL VPN来访问内网服务。
SSL VPN是什么
核心作用
SSL VPN
主要用于个人远程办公(Remote Access),基于浏览器 / 轻客户端。
作用:
员工在外通过浏览器安全访问内网 Web 系统、邮件、OA、ERP
可精细化控制权限(谁能访问什么应用)
无需安装复杂客户端,易用性高
通俗理解
SSL VPN = 给你开一扇 “安全小门”
只允许你访问指定的网页 / 系统,不把整个内网暴露给你。
与IPSec VPN区别
环境准备
准备四台实验机器
奇安信网络防火墙:ge1(192.168.212.113/24 MGMT)ge2(172.16.11.30 WAN)ge3(192.168.100.254 LAN)
内网模拟资产:(192.168.100.102/24)
外部设备1(WIN10):(172.16.11.46/24)
外部设备2(kali):(172.16.11.194/24)
网络拓扑图

防火墙环境
ge1为管理接口,管理地址为https://192.168.212.113;ge2为外网接口,地址172.16.11.30,作为远程接入入口;ge3为内网接口,也是业务接口,网段为192.168.100.0/24,app业务地址 为192.168.100.102,外部设备通过公共网络访问防火墙外网接口,实现SSL VPN接入。

配置流程
添加VPN 地址池
网络配置→VPN→VPN地址池→添加
为SSL VPN配置地址池,不能与内网地址与先前配置的IPSec VPN地址冲突

添加用户
对象配置→用户→用户→添加
添加一个SSL VPN的登录用户,与之前的IPSec VPN用户(admin)区分开

将SSL VPN登录用户添加到认证服务器
对象配置→用户→认证服务器→添加
新建一个ssl-vpn的认证服务器,将刚刚创建的ssl用户添加到其中

生成自签CA
SSL VPN是基于SSL/TLS协议,而证书是 SSL/TLS 实现身份认证、安全密钥交换、数据加密与防篡改的唯一信任根基 —— 没有证书,整个加密隧道就无法安全建立,会直接暴露在窃听、中间人劫持和伪造服务器的风险中。我们因为在实验环境中,没有可信任CA,所以选择生成一个自签发CA来下发证书。
系统配置→CA中心→本地CA→生成自签发CA

签发一般证书
使用该自签发CA,来生成一个一般证书。
系统配置→CA中心→一般证书→生成一般证书
用途设为NONE(证书公钥无任何限制,可同时用于签名、加密、密钥交换等所有操作,SSL/TLS 证书(HTTPS/SSL VPN 用)的核心工作流程,同时需要「签名」和「加密」两种能力)

将一般证书导入证书列表
将生成的一般证书导入证书列表,用于SSL VPN服务器的认证证书对象SSL-VPN
系统配置→证书管理→证书列表→导入

SSL VPN主要配置
前置准备都已完成,现在我们要对SSL VPN服务器进行最终配置
网络配置→VPN→SSL VPN→添加
接口:ge2(外网接口,通过公网访问防火墙外网接口来接入VPN)
本地IP地址:172.16.11.30(外网接口地址)
端口:64443(默认接入端口)
VPN地址池:pool-ssl-vpn(先前创建的SSL-VPN地址池)
算法类型:国际算法
服务器证书:SSL-VPN(先前自签发的一般证书)
认证方式:单因子认证(实验环境选择,实际环境选择更安全的双因子认证)
认证服务器:ssl-vpn(先前配置的SSL认证服务器)
认证共享:√(一次登录 VPN 后,一段时间内不用重复输密码,直接访问所有授权资源。公共/访客网络或高敏感/涉密环境禁止开启)
添加可访问网络列表:该VPN可以访问哪些网段,我们只需要让其能够访问内网业务,所以添加内网网段(192.168.100.0/24)即可。

下载奇安信 SSL VPN客户端
配置完成后,使用浏览器访问https://172.16.11.30:64443,下载奇安信 SSL VPN 客户端

接入VPN
Windows客户端
安装客户端
因为SSL VPN算法为国际算法,所以我们选择安装国际版。

安装完成后,启动客户端,填入SSL VPN设置的地址172.16.11.30与端口64443

使用认证服务器ssl-vpn中的本地账户ssl账户登录

其中公网侧地址显示为防火墙外网入口 172.16.11.30,私网侧地址显示为 192.168.110.200,客户端已经从 SSL VPN 地址池中成功获取到了虚拟地址。

验证结果
验证内网网络连通性ping 192.168.100.254

验证是否能访问内网业务

linux客户端
安装客户端
deb 是 Debian/Ubuntu 系用的包格式
rpm 是 RHEL/CentOS/Fedora 系用的包格式
模拟外部终端为kali属于ubuntu系统,客户端下载deb格式
sudo dpkg -i 包名.deb #Debian/Ubuntu系统安装命令
sudo rpm -ivh 包名.rpm # RHEL/CentOS/Fedora系统安装命令
安装成功后,进入软件目录,启动软件
cd /opt/sslvpnclient # 进入软件目录
sudo ./sslvpnclient newconnect # 手动登录操作# sslvpnclient 功能列表
./sslvpnclient autoconnect:自动登录操作(使用上一次保存的配置)
./sslvpnclient newconnect:手动登录操作
./sslvpnclient disconnect:退出操作/断开连接
./sslvpnclient showinfo:查看信息操作
./sslvpnclient changepasswd:修改密码操作
./sslvpnclient version:显示版本号
填入SSL VPN设置的地址172.16.11.30与端口64443
使用认证服务器ssl-vpn中的本地账户ssl账户登录

验证结果
发现成功下发私网IP

测试内网网络连通性,ping 192.168.100.254

测试访问内网业务

移动端
安装客户端
!!安装后务必开启通知权限,否则无法下发IP
身份验证
填入SSL VPN设置的地址172.16.11.30与端口64443

使用认证服务器ssl-vpn中的本地账户ssl账户登录

连接成功,私网IP成功下发

验证结果
访问内网业务
