非客户端的SSL VPN远程访问由于不需要安装客户端因此使用起来比较方便省事儿。相对来说自设备的配置和自定义设置会比基于客户端的vpn复杂一些。然而,只要有点耐心,你会发现它实际上相当灵活,只需要相当有限的资源就可以对用户提供快捷的远程访问了,无需安装和管理客户端。
这篇文章分两个部分来介绍配置和设置。文章的第一部分包括最初的设置;第二部分对远程用户端进行相应的设置。
请记住,在SSL VPN远程接入解决方案也有一些限制。在一个非客户端的SSL会话中,Cisco ASA是作为代理来连接远程用户和内部资源的。远策用户需要访问的时候,ASA建立安全连接并验证服务器的SSL证书。最终用户无法看到此证书。ASA不允许非法证书站点和内部资源建立通信。
在下面的步骤中,我会配置建立一个基本的基于非客户端SSL VPN访问。我提供了大部分的配置以及对应的ASDM设置。
第1步、配置身份证书
在这里,我创造一个叫sslvpnkey的一个自签署证书并且在“outside” 接口应用这个证书。您也可以通过购买厂商证书如VeriSign等。
corpasa(config)#crypto key generate rsa label sslvpnkey
corpasa(config)#crypto ca trustpoint localtrust
corpasa(config-ca-trustpoint)#enrollment self
corpasa(config-ca-trustpoint)#fqdn sslvpn. mycompany.com
corpasa(config-ca-trustpoint)#subject-name CN=sslvpn.mycompany.com
corpasa(config-ca-trustpoint)#keypair sslvpnkey
corpasa(config-ca-trustpoint)#crypto ca enroll localtrust noconfirm
corpasa(config)# ssl trust-point localtrust outside
图a
第二步、启用SSL VPN 访问
corpasa(config)#webvpn
corpasa(config-webvpn)#enable outside
corpasa(config-webvpn)#svc enable
图b
第三步、创建组策略
组策略用于当客户连接时指定对应参数用的。远程访问客户端在登录的时候需要分配一个IP地址;因此我们将为他们成立一个地址池,但你也可以使用DHCP服务器。
Corpasa (config)#group-policy DfltGrpPolicy attributes
Corpasa (config-group-policy)# wins-server value 192.168.80.205
Corpasa (config-group-policy)# dns-server value 172.20.100.1
Corpasa (config-group-policy)# dns-server value 192.168.80.216
Corpasa (config-group-policy)# vpn-tunnel-protocol svc webvpn
Corpasa (config-group-policy)# split-tunnel-policy tunnelspecified
Corpasa (config-group-policy)# split-tunnel-network-list value inside-network
Corpasa (config-group-policy)# address-pools value VPN
图c
然后,我将创建一个叫operations的组策略。在组策略里面我们就可以为operations这个组来设定具体的项目了。
Corpasa (config)#group-policy Operations internal
Corpasa (config)#group-policy Operations attributes
Corpasa (config-group-policy)# banner value Tech Op Remote Access
Corpasa (config-group-policy)# banner value Unauthorized access prohibited
Corpasa (config-group-policy)# vpn-tunnel-protocol webvpn
Corpasa (config-group-policy)# webvpn
Corpasa (config-group-webvpn)# url-list value TechOps
Corpasa (config-group-webvpn)# homepage none
Corpasa (config-group-webvpn)# svc ask none default webvpn
Corpasa (config-group-webvpn)# customization value TechOps
Corpasa (config-group-webvpn)# hidden-shares visible
Corpasa (config-group-webvpn)# file-entry enable
Corpasa (config-group-webvpn)# file-browsing enable
Corpasa (config-group-webvpn)# url-entry enable
图d
第四步、建立访问列表
通过使用sysopt命令告诉允许ASA在SSL/IPsec的客户绕过接口的访问控制列表.
corpasa(config)#sysopt connection permit-vpn
第五步、创建一个连接配置文件和tunnel group
当远程访问客户端连接到ASA,他们连接到一个连接配置文件,它也被称为tunnel group。我们将利用这tunnel group来确定具体的参数可以在这个SSL VPN会话中限制或者允许他们能够访问和使用哪些资源。
首先,我们创建tunnelgroup RA_SSL :
corpasa(config)# tunnel-group RA_SSL webvpn-attributes
图e
接着,指派特定属性
corpasa(config)#tunnel-group RA_SSL webvpn-attributes
corpasa(config-tunnel-webvpn)# group-alias RA_SSL enable
corpasa(config-tunnel-webvpn)# customization TechOps
corpasa(config-webvpn)# group-url https://MyASAIP/RA_SSL enable
图f
第六步、配置NAT 例外
现在,我需要告诉ASA不要在远程访问用户和他们需要访问的内部网络之间做NAT。首先,我将创建一个访问列表,定义traffic,然后我们会将它应用到NAT声明接口上去。
corpasa(config)#access-list no_nat extended permit
ip 192.168.200.0 255.255.255.0 192.168.100.0 255.255.255.0
corpasa(config)#nat (inside) 0 access-list no_nat
图g
第七步、配置用户账号
现在我们准备一些用户帐户。在这里,我将创建一个用户,并指定该用户的远程访问VPN 。当您在建立当本地帐户时候,您还可以配置域服务器和使用域身份验证。
corpasa(config)#username hyde password l3tm3in
corpasa(config)#username hyde attributes
corpasa(config-username)#service-type remote-access
图h
最后记得保存配置
corpasa#write memory
建立一个远程接入会话,并使用下列查看命令查看验证您的配置和会话的细节。
corpasa #show vpn-sessiondb webvpn