什么是SSL VPN?
SSL VPN是采用SSL(Security Socket Layer)/TLS(Transport Layer Security)协议来实现远程接入的一种轻量级VPN技术。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,可以为应用层之间的通信建立安全连接。因为SSL协议内置于浏览器中,使用SSL协议进行认证和数据加密的SSL VPN可以免于安装客户端。
移动办公用户使用终端(如便携机、PAD或智能手机)与企业内部的SSL VPN服务器建立SSL VPN隧道以后,就能通过SSL VPN隧道远程访问企业内网的Web服务器、文件服务器、邮件服务器等资源。
SSL VPN是如何工作的?
移动办公用户访问企业内网的服务器时,首先与SSL VPN服务器之间建立起安全连接(SSL VPN隧道),采用标准的SSL协议对传输的数据包进行加密。登录SSL VPN服务器时,用户访问SSL VPN服务器登录界面,SSL VPN服务器会对用户身份进行认证。SSL VPN服务器往往支持多种用户认证方式,来保证访问的安全性、合法性。
然后SSL VPN服务器将报文转发给特定的内部服务器,从而使得移动办公用户在通过验证后,可访问企业内网中管理员分配指定的服务器资源。SSL VPN可以借助Web浏览器覆盖所有的远程访问需求。
IPsec VPN和SSL VPN的区别
Ipsec VPN针对Client to LAN的场景,存在的弱势点:
1、IKEV1不支持远程用户接入,IKEV2支持,但是采用EAP认证的方法,目前尚未普及
2、因为需要进行参数协商,所以,我们的PC设备需要安装专门的应用程序来进行支持
3、因为IPSEC VPN需要抓取感兴趣流,但是,PC设备所谓私网网段不固定,需要不断的调整策略,导致部署不灵活
4、因为IPSEC VPN主要通过抓取感兴趣流来进行访问控制,最多可以深入到服务层面,但
是,无法深入到应用层面。所以,如果需要进行更细颗粒度的控制,则IPSEC VPN略显不
足
SSL VPN的优势
1、SSL VPN采用的是一种基于B/S架构的模式,不需要额外安装客户端,可以直接通过浏览
器进行访问
2、部署更加灵活,因为他的封装位置在于传输层和应用层之间,不会保护传输层和网络层的
数据,所以,不会影响到网络环境
3、因为SSL VPN针对的是应用层进行控制,所以,可以实现更细颗粒的控制,可以深入到应用层面
这里我们以防火墙作为SSL VPN服务器,在防火墙上完成相关配置。
步骤一
SSL服务器的功能在防火墙上被称为虚拟网关。虚拟网关的地址/域名即为SSL VPN服务器的地址/域名。
a.配置虚拟网关,启用SSL VPN服务器功能,配置服务器地址等。
b.配置认证授权方式为本地认证、并创建用户包括配置用户名和密码。
c.配置防火墙安全策略,保证网络互通。
步骤二
按客户端登录SSL VPN服务器步骤、配置好的用户名/密码,登录SSL VPN服务器。
a.客户端10.108.84.93以IE浏览器向防火墙的虚拟网关https://10.174.64.61发起链接请求。
如下图所示,No.21-No.29展示了完SSL握手的四次通信过程,至No.29服务器回应Server Finished Message(已被加密,提示为加密的握手消息)后,对应登录到提示安全证书有问题的警告界面。此时客户端与服务器实际并未开始正常通信,而是在SSL握手阶段,客户端验证服务器不合法,在其Web界面提示用户是否继续浏览该网站。
b.强制信任,选择“继续浏览该网站”,从No.103起客户端要求使用新会话,重新发起SSL握手协议。握手完成之后,开始正常的加密通信,直至用户浏览器上成功加载出防火墙虚拟网关的用户登录界面。
c.输入用户名/密码,从No.1561起继续发起SSL握手协议,经过四次通信协商出“会话密钥”,从携带用户名/密码的报文起所有用户与服务器之前的数据被加密(显示为Application Data)发送给服务器。
用户身份认证
为了保证SSL VPN接入用户的合法性、提升系统安全性,SSL VPN服务器往往支持多种认证方式,上文一直在以配置并存储在防火墙上的用户名/密码为例,这是最基本最简单的认证方式。
实际华为防火墙支持以下认证方式:
- 用户名/密码的本地认证:即上文各种举例,指将用户名/密码在防火墙上配置并存储,用户输入与之匹配的用户名/密码即可成功登录。
- 用户名/密码的服务器认证:指将用户名/密码存储在专门的认证服务器上,用户输入用户名/密码后,防火墙将其转至认证服务器认证。当前支持的认证服务器类型包括:RADIUS、HWTACACS、SecurID、AD、LDAP。
- 证书匿名认证:指用户的客户端配备客户端证书,防火墙通过验证客户端的证书来认证用户身份。
- 证书挑战认证:指服务器通过用户名/密码+客户端证书双重因素认证用户身份。可以看出,此种方式是最安全的。
- 单用客户端证书认证,当客户端丢失或被非法使用时就无法保证安全;
- 单用用户名/密码认证,当使用不同客户端时,客户端本身可能存在安全隐患。双重因素认证方式,保证了指定用户、使用指定客户端登录SSL VPN服务器,进而合法访问内网资源。
防火墙通过验证客户端的证书来认证用户身份,流程如下:
①用户、防火墙分别导入由同一CA机构颁发的客户端证书和客户端CA证书。
②用户(客户端)将自己的证书发给防火墙,防火墙对该证书进行认证。
满足以下几个条件,则认证通过:
- 客户端证书与防火墙上导入的客户端CA证书由同一家CA颁发。按照②所述,正是应为同一家CA机构颁发。
- 客户端证书在有效期内。
- 客户端证书中的用户过滤字段是防火墙上已经配置并存储的用户名。例如,客户端证书的用户过滤字段CN=user000010,那么防火墙上已经配置对应的用户名user000010,表明这是颁发给user000010的客户端证书。
③用户通过防火墙的身份认证后,会成功登录资源界面,可以开始访问内网的指定资源。