图解Cisco ASA防火墙SSL VPN的配置

随着现在互联网的飞速发展,企业规模也越来越大,一些分支企业、在外办公以及SOHO一族们,需要随时随地的接入到我们企业的网络中,来完成我们一些日常的工作,这时我们VPN在这里就成了一个比较重要的一个角色了。

SSL VPN设备有很多。如Cisco 路由器、Cisco PIX防火墙、Cisco ASA 防火墙、Cisco VPN3002 硬件客户端或软件客户端。这极大地简化了远程端管理和配置。说的简单点就是在Server 端配置复杂的策略和密钥管理等命令,而在我们的客户端上只要配置很简单的几条命令就能和Server端建立VPN链路的一种技术,主要的目的当然就是简化远端设备的配置和管理。

那么今天我们看看我们要实现的是SSL VPN,那什么是SSL VPN呢?

SSL VPN是解决远程用户访问敏感公司数据最简单最安全的解决技术。与复杂的IPSec VPN相比,SSL通过简单易用的方法实现信息远程连通。任何安装浏览器的机器都可以使用SSL VPN, 这是因为SSL 内嵌在浏览器中,它不需要象传统IPSec VPN一样必须为每一台客户机安装客户端软件。

什么是SSL VPN?

从概念角度来说,SSL VPN即指采用SSL (Security Socket Layer)协议来实现远程接入的一种新型VPN技术。SSL协议是网景公司提出的基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。目前SSL 协议被广泛应用于各种浏览器应用,也可以应用于Outlook等使用TCP协议传输数据的C/S应用。正因为SSL 协议被内置于IE等浏览器中,使用SSL 协议进行认证和数据加密的SSL VPN就可以免于安装客户端。相对于传统的IPSEC VPN而言,SSL VPN具有部署简单,无客户端,维护成本低,网络适应强等特点,这两种类型的VPN之间的差别就类似C/S构架和B/S构架的区别。

一般而言,SSL VPN必须满足最基本的两个要求:

1. 使用SSL 协议进行认证和加密;没有采用SSL 协议的VPN产品自然不能称为SSL VPN,其安全性也需要进一步考证。

2. 直接使用浏览器完成操作,无需安装独立的客户端;即使使用了SSL 协议,但仍然需要分发和安装独立的VPN客户端 (如Open VPN)不能称为SSL VPN,否则就失去了SSL VPN易于部署,免维护的优点了。

SSL VPN的特点

SSL VPN的客户端程序,如Microsoft Internet Explorer、Netscape Communicator、Mozilla等已经预装在了终端设备中,因此不需要再次安装;

SSL VPN可在NAT代理装置上以透明模式工作;

SSL VPN不会受到安装在客户端与服务器之间的防火墙等NAT设备的影响,穿透能力强;

SSL VPN将远程安全接入延伸到IPSec VPN扩展不到的地方,使更多的员工,在更多的地方,使用更多的设备,安全访问到更多的企业网络资源,同时降低了部署和支持费用; 客户端安全检查和授权访问等操作,实现起来更加方便。

SSL VPN可以在任何地点,利用任何设备,连接到相应的网络资源上。IPSec VPN通常不能支持复杂的网络,这是因为它们需要克服穿透防火墙、IP地址冲突等困难。所以IPSec VPN实际上只适用于易于管理的或者位置固定的地方。可以说从功能上讲,SSL VPN是企业远程安全接入的最佳选择。

但是虽然SSL VPN具有以上众多的优点,却由于SSL协议本身的局限性,使得性能远低于使用IPSec协议的设备。用户往往需要在简便使用与性能之间进行痛苦选择。这也是第二代VPN始终无法取代第一代VPN的原因。

SSL VPN的优点

1、方便。实施ssl vpn之需要安装配置好中心网关即可。其余的客户端是免安装的,因此,实施工期很短,如果网络条件具备,连安装带调试,1-2天即可投入运营。

2、容易维护。ssl vpn 维护起来简单,出现问题,就维护网关就可以了。实在不行,换一台,如果有双机备份的话,备份机器启动就可以了。

3、安全。ssl vpn 是一个安全协议,数据全程加密传输的。另外,由于ssl网关隔离了内部服务器和客户端,只留下一个web浏览接口,客户端的大多数病毒木马感染不倒内部服务器。而ipsec vpn 就不一样,实现的是ip级别的访问,远程网络和本地网络几乎没有区别。局域网能够传播的病毒,通过vpn一样能够传播。

那么我们也了解了这么多了,我们来看看如何配置它呢?

第一步:配置身份证书

在这里我们生成一个名为sslvpnkeypair的自签名证书,并将这个自答名证书应用在“outside”接口上面。默认情况下,我们的安全设备每次重新启动以后,都全重新生成我们的证书,这个证书我们也可以从厂商购买自己的证书,这个证书即使我们的网络设备重启了它仍然存在。

//生成一个RSA密钥的证书,该名称是是唯一的。

CISCOASA(config)# crypto key generate rsa label sslvpnkeypair

INFO: The name for the keys will be: sslvpnkeypair

Keypair generation process begin. Please wait...

//建立一个自我信任点颁发的证书

CISCOASA(config)# crypto ca trustpoint localtrust

CISCOASA(config-ca-trustpoint)# enrollment self

CISCOASA(config-ca-trustpoint)# fqdn sslvpn.cisco.com

CISCOASA(config-ca-trustpoint)# subject-name CN=sslvpn.cisco.com

CISCOASA(config-ca-trustpoint)# keypair sslvpnkeypair

CISCOASA(config-ca-trustpoint)# crypto ca enroll localtrust noconfirm

% The fully-qualified domain name in the certificate will be: sslvpn.cisco.com

CISCOASA(config)# ssl trust-point localtrust outside

第二步:将SSL VPN客户端映象上传到ASA

用户可以从思科的网站(cisco.com)获得客户端映象。在选择要下载哪个映象给TFTP服务器时,记住你需要为用户所使用的每种操作系统下载单独的映象。在选择并下载客户端软件后,就可以将其TFTP到ASA。如果没有的话,我可以提供一个给大家测试用用。

CISCOASA(config)# copy tftp://192.168. 1.50/sslclient-win-1.1.3.173.pkg flash

在将文件上传到ASA之后,配置一下这个文件,使其可用作Web VPN会话.注意,如果你有多个客户端,就应当配置最常用的客户,使其拥有最高的优先权。在本文中,我们将仅使用一个客户端并为其设置优先权为1:

CISCOASA(config)# webvpn

CISCOASA(config-webvpn)# svc image disk0:/sslclient-win-1.1.3.173.pkg 1

INFO: Image does not contain head-end configuration.

第三步:启用SSL VPN访问

如何不启用的话,那么我们输入网址将打不开该SSL VPN的页面。

CISCOASA(config-webvpn)# enable outside

CISCOASA(config-webvpn)# svc enable

CISCOASA(config-webvpn)# exit

第四步:建立SSL VPN拨号地址池

远程访问客户端需要在登录期间分配一个IP地址,所以我们还需要为这些客户端建立一个DHCP地址池,不过如果你有DHCP服务器,还可以使用DHCP服务器。

CISCOASA(config)# ip local pool SSLClientPool 192.168.10.1-192.168.10.100 mask 255.255.255.0

第五步:创建组策略

组策略用于指定应用于所连接客户端的参数。在本文中,我们将创建一个称之为SSLCLientPolicy的组策略。

CISCOASA(config)# group-policy SSLCLientPolicy internal

CISCOASA(config)# group-policy SSLCLientPolicy attributes

CISCOASA(config-group-policy)# dns-server value 61.139.2.69

CISCOASA(config-group-policy)# vpn-tunnel-protocol svc

CISCOASA(config-group-policy)# default-domain value tsweb.local

CISCOASA(config-group-policy)# address-pools value SSLClientPool

CISCOASA(config-group-policy)# exit

第六步:配置访问列表旁路

通过使用sysopt connect命令,我们告诉ASA准许SSL/IPsec客户端绕过接口的访问列表

CISCOASA(config)# sysopt connection permit-vpn

第七步:创建连接配置文件和隧道组

在远程访问客户端连接到ASA时,也就连接到了connection profile连接配置文件,也称为隧道组。我们将用这个隧道组来定义其使用的特定连接参数。在本文中,我们将配置这些远程访问客户端使用Cisco SSL VPN客户端,不过,你还可以配置隧道组使用IPsec、L2L等。

首先,创建隧道组SSL 客户端:

CISCOASA(config)# tunnel-group SSLClientProfile type remote-access

下一步就是给这个SSL VPN隧道分配特定的属性

CISCOASA(config)# tunnel-group SSLClientProfile general-attributes

CISCOASA(config-tunnel-general)# default-group-policy SSLCLientPolicy

CISCOASA(config-tunnel-general)# tunnel-group SSLClientProfile webvpn-attributes

CISCOASA(config-tunnel-webvpn)# group-alias SSLVPNClient enable

CISCOASA(config-tunnel-webvpn)# exit

在上在group-alias后面的SSLVPNClient这个就是我们在登陆页面提示进行登录时看见的组。(如下图:)

图解Cisco ASA防火墙SSL VPN的配置

第八步:将隧道组列表在webvpn中开启

开启之后,在我们登录的时候才会有“GROUP”,如果没有开启的话,在上图就没有“GROUP”这个列表。

CISCOASA(config)# webvpn

CISCOASA(config-webvpn)# tunnel-group-list enable

CISCOASA(config-webvpn)# exit

第九步:配置NAT免除

现在,我们需要告诉ASA不要对远程访问客户端和要访问的内部网络之间的通信进行网络地址转换

(NAT)。首先,我们要创建一个可定义通信的访问列表,然后,我们将此列表用于接口的NAT语句:

CISCOASA(config)# access-list inside_nat0_outbound extended permit ip 10.0.0.0 255.0.0.0 192.168.10.0 255.255.255.0

CISCOASA(config)# nat (inside) 0 access-list inside_nat0_outbound

第十步:配置用户账户

现在我们已经为配置用户账户做好了准备。在此,我们要创建一个用户并且将此用户指派给我们的SSL VPN:

CISCOASA(config)# username liuty password yjtfpddc

CISCOASA(config)# username liuty attributes

CISCOASA(config-username)# service-type remote-access

CISCOASA(config-username)# exit

第十一步:保存

CISCOASA(config)# write memory

好了,上面设置就差不多了。那么我们现在打开网站来试试看。

打开IE浏览器输入https://xxx.xxx.xxx.xxx/如果你的是IP地址那么XXX就输入IP地址,如果有域名就输入域名。打开以后,会出现一个安全警报,这里直接点击“是”。

图解Cisco ASA防火墙SSL VPN的配置

打开我们的SSL VPN界面如下:

图解Cisco ASA防火墙SSL VPN的配置

从上图我们可以看见,在login下面选择我们SSLVPN的组,再输入组下面的用户名及密码。来进行登录。

当我们用户名及密码认证成功以后,就会进入下面这个页面,进行activeX下载及安装。

图解Cisco ASA防火墙SSL VPN的配置

图解Cisco ASA防火墙SSL VPN的配置

在这里如果你的计算机安装了JAVA虚拟机的话会提示出来窗口。并且JAVA虚拟机会自动帮你下载及安装。

图解Cisco ASA防火墙SSL VPN的配置

因为我们站点名称与我们开始生成的证书的名称不一致导致的,这里不用管它,直接点击“是”这时候我们的JAVA虚拟机就会自动来帮我们下载及安装。

如果我们的PC上面没有安装JAVA虚拟机的话,我们就需要自己手动安装一下,安装图片如下:

图解Cisco ASA防火墙SSL VPN的配置

当我们安装完Cisco SSL VPN Client以后,会自动给我们连接。

图解Cisco ASA防火墙SSL VPN的配置

在我们连接的时候会提示我们安装证书,如下图:

图解Cisco ASA防火墙SSL VPN的配置

这里我们点击“是”来进行证书的安装。

图解Cisco ASA防火墙SSL VPN的配置

点击“安装证书”进入“证书安装向导”

图解Cisco ASA防火墙SSL VPN的配置

点击“下一步”,进入“证书存储”

图解Cisco ASA防火墙SSL VPN的配置

而我们这里就使用默认值“根据证书类型,自动选择证书存储区”,然后点击“下一步”进入“正在完成证书导入向导”

图解Cisco ASA防火墙SSL VPN的配置

点击“完成”,证书导入成功。

图解Cisco ASA防火墙SSL VPN的配置

图解Cisco ASA防火墙SSL VPN的配置

这里他提示说我们安装的证书在我们VPN证书服务器上面没有找到。所以所示错误,这里不用管他,直接点击“是”。就开始我们SSL VPN的连接。

图解Cisco ASA防火墙SSL VPN的配置

当连接成功以后,SSL VPN CLINET for WEBVPN就会自动消息。而在我们通知区域会显示一把点钥匙。

图解Cisco ASA防火墙SSL VPN的配置

而只要当我SSL VPN一连成功以后,我的QQ以及飞信就立刻掉线了。如下图:

这时我们可以点击右键看看他的一些状态信息。

图解Cisco ASA防火墙SSL VPN的配置

右击小钥匙,我们可以看见有四个选项,我们这里选择“Statistics”查看状态信息。如下图:

图解Cisco ASA防火墙SSL VPN的配置

从上图我们可以看见,其实这个界面与我们Cisco VPN Client软件的状态信息都差不多。

从上图我们可以看见Server端的IP地址,以及Client所分配得到的IP地址。在这里我们还可以看见一些SSL的信息。

下面我们再来看看Route Details。

图解Cisco ASA防火墙SSL VPN的配置

从这里我们可以看见,我们所有的数据都走向我们SSL VPN服务端去了。所以我们现在就只能访问SSL VPN服务端的网络了。但是我自己这边的网络以及互联网都不能访问,这样我们就非常不方便。那么我们如何来解决这个问题呢?我们在这里就必须使用隧道分离技术了。那么下面我们来看看隧道分离如何配置呢?

CISCOASA(config)# access-list vpnclient_splitTunnelAcl standard permit 10.0.0.0 255.0.0.0

CISCOASA(config)# group-policy SSLCLientPolicy attributes

CISCOASA(config-group-policy)# split-tunnel-policy tunnelspecified

CISCOASA(config-group-policy)# split-tunnel-network-list value vpnclient_splitTunnelAcl

CISCOASA(config-group-policy)# exit

当我们将这几条隧道分离设置好了以后呢,我们再拨号上来看看我们的路由状态表。

图解Cisco ASA防火墙SSL VPN的配置

我们从上面就可以看见,只有去往10.0.0.0/8这个网段的才走我们的SSL VPN,而其他数据还是走我这边默认的网络出去,这样即不影响办公,又不影响我们正常使用网络。

下面我们来测方式

图解Cisco ASA防火墙SSL VPN的配置

附件:http://down.51cto.com/data/2354947

本文转自 ltyluck 51CTO博客,原文链接:http://blog.51cto.com/ltyluck/264239

上一篇:checkpoint防火墙修改日志目录
下一篇:Juniper防火墙的HA(高可用性)配置