SSL Secure Sockets Layer安全套接层:是一种安全协议,基于TCP应用层提供安全连接,可以为http提供安全连接,为网络上的数据传输提供安全性保证
安全机制:
1、数据传输的机密性:利用对称密钥算法对传输的数据进行加密
2、身份验证机制:基于证书利用数字签名方式对服务器和客户端进行身份验证,客户端的身份验证是可选的
3、消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性
注:
没有第三方解密密钥,无法将密文恢复为明文的,从而保证数据传输的机密性
对称密钥算法和MAC算法要求通信双方具有相同的密钥,否则解密或MAC值验证失败
SSL格式
http协议采用明文的形式传输数据、无法防止传输数据被篡改等,无法提供安全性保证
SSL优点:安全、支持各应用层协议、部署简单
https:将http和SSL结合,通过SSL对客户端身份和服务器进行验证,对传输的数据进行加密,完整性校验,实现了对设备的安全管理
https的优点
1、客户端通过数字证书对服务器进行身份验证,保证客户端访问正确的服务器
2、服务器通过数字证书对客户端进行身份验证,保证合法客户端可以安全地访问设备,禁止非法客户端访问设备
3、客户端与设备之间交互的数据需要经过加密,保证了数据传输的安全性和完整性,从而实现了对设备的安全管理
4、制定基于证书属性的访问控制策略,对客户端的访问权限进行控制,进一步避免了客户端对设备进行攻击
IPsec VPN缺点:
1、部署复杂,移动性差,需要支持NAT透传,安装复杂的客户端软件
2、无法检测用户主机的安全性,比如感染病毒主机
3、访问控制不够细致,基于IP报文实现的,对报文的内容无法识别,不能控制高层应用的访问请求
SSL VPN工作在传输层和应用层之间
SSL VPN缺点:
1、网关成为整个内网出口的性能瓶颈
2、网关的可靠性也关系到整个内网访问外网通讯的稳定性
三个步骤:
1、超级管理员在SSL VPN 网关上创建域
2、域管理员在SSL VPN 网关上创建用户和企业网内服务器对应资源
3、用户通过SSL VPN 网关访问企业网内部服务器
超级管理员:整个SSL VPN网关的管理者,可以创建域,设置域管理员的密码
域管理员:负责管理所在域,可以创建本地用户和资源,设置用户访问权限等。域管理员可能是某个企业的网管人员
普通用户:简称用户,为服务器资源访问者,权限由域管理员指定
第一步、建立PKI域
配置PKI域sslvpn。
<Sysname> system-view
[Sysname] pki domain sslvpn 定义pki域名称sslvpn
[Sysname-pki-domain-sslvpn] public-key rsa general name sslvpn 公钥名称sslvpn
[Sysname-pki-domain-sslvpn] undo crl check enable crl不检查
[Sysname-pki-domain-sslvpn] quit
第二步、PKI域导入证书步骤
导入CA证书ca.cer和服务器证书server.pfx,输入服务器证书密码
[Sysname] pki import domain sslvpn pem ca filename XXX.cer注意后缀(网络中没有ca服务器、附件中有证书)
[Sysname]pki import domain sslvpn pem ca filename 2003_local.pfx
The
PKI domain already has a CA certificate. If it is overwritten, local
certificates, peer certificates and CRL of this domain will also be
deleted.
Overwrite it? [Y/N]:y
Failed to parse the certificates.
Failed to import certificates.
[Sysname] pki import domain sslvpn p12 local filename server.pfx pki import domain sslvpn p12 local filename XXXX.pfx
[Sysname]pki import domain sslvpn p12 local filename 2003_local.pfx
Please input the password:
The
device already has a key pair. If you choose to continue, the existing
key pair will be overwritten if it is used for the same purpose. The
local certificates, if any, will also be overwritten.
Continue? [Y/N]:y
第三步、定义SSL提供证书的身份验证
配置SSL服务端策略ssl
[Sysname] ssl server-policy ssl 定义SSL服务策略名称为ssl
[Sysname-ssl-server-policy-ssl] pki-domain sslvpn PKI域应用sslvpn认证方式
[Sysname-ssl-server-policy-ssl] quit
第四步、定义SSL VPN外部访问地址和端口
[Sysname] sslvpn gateway gw 配置SSL VPN网关
[Sysname-sslvpn-gateway-gw] ip address 123.126.202.2 port 2000 外网口IP地址做为sslvpn网关
[Sysname-sslvpn-gateway-gw] ssl server-policy ssl 引用ssl服务端策略
[Sysname-sslvpn-gateway-gw] service enable 开启SSL VPN网关gw
[Sysname-sslvpn-gateway-gw] quit
第五步、在SSL VPN网关上创建与服务器对应的资源
配置SSL VPN访问实例ctx1引用SSL VPN网关gw,指定域名为domain1
[Sysname] sslvpn context ctx1
[Sysname-sslvpn-context-ctx1] gateway gw domain domain1
[Sysname-sslvpn-context-ctx1] port-forward plist 定义端口转发方式
创建端口转发,将192.168.100.20提供的远程服务3389映射到本地地址127.0.0.1、本地端口33891。
[Sysname-sslvpn-context-ctx-port-forward-plist]
local-port 33891 local-name 127.0.0.1 remote-server 192.168.100.20
remote-port 3389
创建端口转发,将remote.dnstest.com提供的远程服务3389映射到本地地址remotedns、本地端口33892
[Sysname-sslvpn-context-ctx-port-forward-plist]
local-port 33892 local-name remotedns remote-server remote.dnstest.com
remote-port 3389
[Sysname-sslvpn-context-ctx-port-forward-plist] quit
第六步、定义访问控制
[Sysname]acl basic 2000
[Sysname-acl-2000] rule 10 permit 放通所有IP资源
第七步、创建策略并调用访问资源
创建SSL VPN策略组pgroup,并引用端口转发列表plist
[Sysname-sslvpn-context-ctx] policy-group test 策略组名称 (定义某些组访问的资源)
[Sysname-sslvpn-context-ctx-policy-group-test] resources port-forward plist 调用plist列表中资源
[Sysname-sslvpn-context-ctx-policy-group-test]filter tcp-access 2000 过滤默认是拒绝所有
[Sysname-sslvpn-context-ctx-policy-group-test] quit
第八步、定义用户组并对其授权
定义用户组名称testgroup,授权用户策略组为test
[Sysname]user-group testgroup
[Sysname-ugroup-testgroup]authorization-attribute sslvpn-policy-group test
第九步、建立本地用户加入用户组
创建本地用户h3c,密码为123456,用户角色为network-operator,设置用户属组为testgroup
[Sysname] local-user h3c class network
[Sysname-luser-network-h3c] password simple 123456
[Sysname-luser-network-h3c] service-type sslvpn
[Sysname-luser-network-h3c] authorization-attribute user-role network-operator
[Sysname-luser-network-h3c] group testgroup
[Sysname-luser-network-h3c] quit
SSL VPN支持三种接入方式:
1、Web接入方式
2、TCP接入方式
3、IP接入方式
SSL VPN共分为三种模式:
clientless 只提供访问Web资源,登录界面提供URL信息或Web server的链接来访问资源
thin-client 它扩展到可以使用TCP连接,但需要安装JAVA插件
full-tunnel client 不受任何访问限制,需要安装ActiveX插件
(以上为TCP接入方式,以下为Web接入方式)
[Sysname-sslvpn-context-ctx1] url-list urllist 创建URL列表urllist
[Sysname-sslvpn-context-ctx1-url-list-urllist] heading webresource 配置URL列表标题为webresource
添加一个URL表项,链接名为webserver1_IP,对应的URL为192.168.9.2。
[Sysname-sslvpn-context-ctx1-url-list-urllist] url webserver1_IP url-value 192.168.9.2
添加一个URL表项,链接名为webserver2_IP_port,对应的URL192.168.100.53:8080/imc。
[Sysname-sslvpn-context-ctx1-url-list-urllist] url webserver2_IP_port url-value 192.168.100.53:8080/imc
添加一个URL表项,链接名为webserver3_dns,对URL为resource.dnstest.com。
[Sysname-sslvpn-context-ctx1-url-list-urllist]
url webserver3_dns url-value resource.dnstest.com
[Sysname-sslvpn-context-ctx1-url-list-urllist] quit
[Sysname-sslvpn-context-ctx1] policy-group test1
[Sysname-sslvpn-context-ctx1-policy-group-test1] resource url-list urllist 调用urllist列表中资源
[Sysname-sslvpn-context-ctx1-policy-group-test1]filter tcp-access 2000 过滤默认是拒绝所有
[Sysname-sslvpn-context-ctx1-policy-group-test1] quit
[Sysname-sslvpn-context-ctx1] default-policy-group test 组多的时候可以不定义
[Sysname-sslvpn-context-ctx1] service enable 开启SSL VPN访问实例ctx1
[Sysname-sslvpn-context-ctx1] quit
[Sysname]user-group testgroup
[Sysname-ugroup-testgroup]authorization-attribute sslvpn-policy-group test1
为避免私密信息遗留在远程主机上,SSL VPN提供了缓存清除功能。在退出SSL VPN系统,客户端程序自动清除下列对象:
1、缓存的网页
2、Cookie
3、VPN客户端程序
4、VPN客户端配置