(ASA) Cisco SSL ××× 配置详解 [三部曲之一]

注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍。

首先,先来谈一谈ASA7.X系统中的默认隧道组和组策略。
ASA/PIX 7.x系统默认在show run时不显示默认组策略和默认隧道组,只有使用ASDM才能看到。(感慨就两个字: BT)

下面列出在ASDM中看到的默认值:

默认IPSec-l2l隧道组: DefaultL2LGroup
默认IPSec-ra隧道组: DefaultRAGroup
默认Web×××隧道组: DefaultWEB×××Group

默认组策略: DfltGrpPolicy
默认组策略的默认隧道协议: IPSec-l2l

可以在命令行中直接对以上隧道组和组策略进行编辑,ASA在加载Web×××时默认采用DefaultWEB×××Group,用户自定义的Web×××组必须在启动 “tunnel-group-list”和“group-alias” 后才会出现。

在下面的例子中,我没有使用ASA的默认隧道组,所以会有tunel-group-list和group-alias配置出现。


1、Web×××服务基本配置。
-----------------------------------------
ciscoasa(config)# int e0/0
ciscoasa(config-if)# ip address 198.1.1.1 255.255.255.0
ciscoasa(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ciscoasa(config-if)# no shut
ciscoasa(config-if)# exit
!
ciscoasa(config)# int e0/1
ciscoasa(config-if)# ip add 10.10.1.1 255.255.255.0
ciscoasa(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ciscoasa(config-if)# no sh
ciscoasa(config-if)# exit
!
ciscoasa(config)# web***
ciscoasa(config-web***)# enable outside
!在外网接口上启动Web×××
!
-----------------------------------------
ciscoasa(config)# group-policy myweb***-group-policy ?

configure mode commands/options:
  external  Enter this keyword to specify an external group policy
  internal  Enter this keyword to specify an internal group policy
!此处需要选择组策略的类型,因为我们是将策略配置在ASA本地的,所以选择Internal。
!
ciscoasa(config)# group-policy myweb***-group-policy internal
!创建了一个名为myweb***-group-policy的Internal类型Policy。
-----------------------------------------
!
ciscoasa(config)# group-policy myweb***-group-policy ?      

configure mode commands/options:
  attributes  Enter the attributes sub-command mode
  external    Enter this keyword to specify an external group policy
  internal    Enter this keyword to specify an internal group policy
!组策略一旦创建,命令行参数中就会多出attributes选项,这是用于后面定义具体的组策略用的,目前可以保留为空。
-----------------------------------------
!
ciscoasa(config)# username steve6307 password cisco
!创建一个本地用户
ciscoasa(config)# username steve6307 attributes
ciscoasa(config-username)# ***-group-policy myweb***-group-policy
!将用户加入刚才创建的×××策略组中

注意:ASA也支持为每用户定义单独的策略,即不用将用户加入特定的×××策略组,直接赋予策略(俗曰“权限”)。
注意:不过这是不推荐的,因为这样配置的可扩展性太差。
-----------------------------------------
!
ciscoasa(config)# tunnel-group myweb***-group type web***
!创建一个名为myweb***-group的web***隧道组。
!
ciscoasa(config)# tunnel-group myweb***-group general-attributes
ciscoasa(config-tunnel-general)# authentication-server-group LOCAL
!定义该隧道组用户使用的认证服务器,这里为本地认证
-----------------------------------------
ciscoasa(config)# web***
ciscoasa(config-web***)# tunnel-group-list enable
!启动组列表,让用户在登陆的时候可以选择使用哪个组进行登陆
!
ciscoasa(config)# tunnel-group myweb***-group web***-attributes
ciscoasa(config-tunnel-web***)# group-alias group1 enable
!为改组定义别名,用于显示给用户进行选择。
-----------------------------------------
!
!到此为止,Web×××基本配置完毕,可以开始让外网用户使用浏览器测试了。



2、Web×××测试。
本例中使用FireFox浏览器进行测试(测试功能嘛,最好不要用IE)。
在浏览器中输入https://198.1.1.1即可访问到Web×××主页。
由于只定义了一个Web×××隧道组,因此,在group列表的下拉菜单中只有一个选择:group1。

如下图:




在弹出的小web框中输入内网服务器IP,即可访问到内网服务器,这里是使用***easy.net和itdomino.com的联盟首页做的一台内网测试用的Web服务器。

Web×××扩展功能

在实现Web×××的基本功能以后,我们来看看Web×××的扩展功能。主要包含以下三部分:
1、文件服务器浏览
2、自定义url-list
3、port-forward


1、文件服务器浏览

File-access功能可以让Web×××用户使用windows共享来访问内网的Windows文件服务器。
用户要使用File-access功能,必须具备file-access file-entry file-browsing权限。

注意:用户默认具备url-entry权限,即可以用url访问内网的web网页。

ciscoasa(config)# group-policy myweb***-group-policy attributes
ciscoasa(config-group-policy)# web***
ciscoasa(config-group-web***)# functions url-entry file-access file-entry file-browsing

测试:
重新登陆Web×××,可以看到以下界面:



输入\\10.10.1.2以后可以访问到内网的共享资源。




2、自定义url-list

ciscoasa(config)# url-list mylist "Test Home Page" http://10.10.1.2
ciscoasa(config)# url-list mylist "Test Site 2" http://10.10.1.3
!
ciscoasa(config)# group-policy myweb***-group-policy attributes
ciscoasa(config-group-web***)# url-list value mylist

测试:
重新登陆Web×××,可以在首页上看到预定义的url列表。




3、自定义port-forward
port-forward可以让Web×××用户在外网通过Web×××使用内网的非HTTP服务。

ciscoasa(config)# port-forward port-forward-list 2323 10.10.1.2 23
ciscoasa(config)# group-policy myweb***-group-policy attributes
ciscoasa(config-group-policy)# web***
ciscoasa(config-group-web***)# functions url-entry file-access file-entry file-browsing port-forward
ciscoasa(config-group-web***)# port-forward value port-forward-list

经过上面的配置以后,Web×××用户加载Web×××提供的JAVA App,就可以通过telnet到自身的2323端口登陆到内网服务器的23端口。

测试:
重新登陆Web×××,界面如下:



点击Application Access即可加载Web×××的Java Apps

最后给出show run,全文完。

ciscoasa# sh run
: Saved
:
ASA Version 7.2(1)24
!
hostname ciscoasa
enable password 8Ry2YjIyt7RRXU24 encrypted
names
!
interface Ethernet0/0
nameif outside
security-level 0
ip address 198.1.1.1 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 10.10.1.1 255.255.255.0
!
interface Ethernet0/2
shutdown
no nameif
no security-level
no ip address
!
interface Management0/0
shutdown     
no nameif
no security-level
no ip address
!
passwd 2KFQnbNIdI.2KYOU encrypted
ftp mode passive
pager lines 24
mtu outside 1500
mtu inside 1500
asdm p_w_picpath disk0:/asdm521-54.bin
no asdm history enable
arp timeout 14400
timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout uauth 0:05:00 absolute
port-forward port-forward-list 2323 10.10.1.2 telnet
group-policy myweb***-group-policy internal
group-policy myweb***-group-policy attributes
web***
  functions url-entry file-access file-entry file-browsing port-forward
  url-list value mylist
  port-forward value port-forward-list
username steve6307 password Dt4qNrv3ojM/D.Cn encrypted
username steve6307 attributes
***-group-policy myweb***-group-policy
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
tunnel-group myweb***-group type web***
tunnel-group myweb***-group web***-attributes
group-alias group1 enable
telnet timeout 5
ssh timeout 5
console timeout 0
!
!
web***
enable outside
url-list mylist "Test Home Page" http://10.10.1.2 1
url-list mylist "Test Site 2" http://10.10.1.3 2
port-forward port-forward-list 2323 10.10.1.2 telnet
tunnel-group-list enable
prompt hostname context
Cryptochecksum:00000000000000000000000000000000

(ASA) Cisco SSL ××× 配置详解 [三部曲之二]

本文对SSL ×××配置进行介绍,请先阅读本版中的“Cisco Web ×××配置详解”。



1、ASA基本配置。

ciscoasa(config)# int e0/0   
ciscoasa(config-if)# ip add 198.1.1.1 255.255.255.0
ciscoasa(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ciscoasa(config-if)# no shut
ciscoasa(config-if)# exit
!
ciscoasa(config)# int e0/1
ciscoasa(config-if)# ip add 10.10.1.1 255.255.255.0
ciscoasa(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ciscoasa(config-if)# no shut
ciscoasa(config-if)# exit
!
ciscoasa(config)# web***
ciscoasa(config-web***)# enable outside
ciscoasa(config-web***)# svc p_w_picpath disk0:/sslclient-win-1.1.2.169.pkg
ciscoasa(config-web***)# svc enable
!在外网接口上启动Web×××,并且启动SVC(SSL ××× Client)功能
-----------------------------------------

2、SSL ×××准备工作。

ciscoasa(config)# ip local pool ssl-user 192.168.10.1-192.168.10.99
!创建SSL ×××用户地址池
!
ciscoasa(config)# access-list go-*** permit ip 10.10.1.0 255.255.255.0 192.168.10.0 255.255.255.0
ciscoasa(config)# nat (inside) 0 access-list go-***
!设置SSL ×××数据不作nat翻译
-----------------------------------------

3、Web×××隧道组与策略组

ciscoasa(config)# group-policy myssl***-group-policy internal
!创建名为myssl***-group-policy的组策略
!
ciscoasa(config)# group-policy myssl***-group-policy attributes
ciscoasa(config-group-policy)# ***-tunnel-protocol web***
ciscoasa(config-group-policy)# web***
ciscoasa(config-group-web***)# svc enable
ciscoasa(config-group-web***)# exit
ciscoasa(config-group-policy)# exit
ciscoasa(config)#
!在组策略中启SVC
!
ciscoasa(config-web***)# username steve6307 password cisco
!创建用户
!
ciscoasa(config)# username steve6307 attributes
ciscoasa(config-username)# ***-group-policy myssl***-group-policy
ciscoasa(config-username)# exit
!赋予用户策略
!
ciscoasa(config)# tunnel-group myssl***-group type web***
ciscoasa(config)# tunnel-group myssl***-group general-attributes
ciscoasa(config-tunnel-general)# address-pool ssl-user
ciscoasa(config-tunnel-general)# exit
!设置SSL ×××用户的地址池
!
ciscoasa(config)# tunnel-group myssl***-group web***-attributes
ciscoasa(config-tunnel-web***)# group-alias group2 enable  
ciscoasa(config-tunnel-web***)# exit
!
ciscoasa(config)# web***
ciscoasa(config-web***)# tunnel-group-list enable
-----------------------------------------

4、配置SSL ×××隧道分离(可选)。

ciscoasa(config)# access-list split-ssl extended permit ip 10.10.1.0 255.255.255.0 any
!注意源地址为ASA的inside网络地址,目标地址始终为any
!
ciscoasa(config)# group-policy myssl***-group-policy attributes
ciscoasa(config-group-policy)# split-tunnel-policy tunnelspecified
ciscoasa(config-group-policy)# split-tunnel-network-list value split-ssl

测试

在浏览器中输入https://198.1.1.1访问Web×××。



登陆后,Web×××直接启动SSL Client安装程序。





SSL ×××建立成功!



看看SVC的状态信息。



看看SVC的版权信息(Cisco的一堆废话,呵呵)。



SSL连接建立成功以后,ASA上将自动创建指向客户的路由。
------------------------------------------------
ciscoasa(config)# sh route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

S    192.168.10.1 255.255.255.255 [1/0] via 198.1.1.2, outside
C    10.10.1.0 255.255.255.0 is directly connected, inside
C    198.1.1.0 255.255.255.0 is directly connected, outside
------------------------------------------------
注:此例中外网用户的地址为198.1.1.2,ASA将该静态路由直接指向外网用户的公网地址。


全文完。

 

忘了给show run,呵呵,再续一下!


ciscoasa# show run


: Saved


:


ASA Version 7.2(1)24


!


hostname ciscoasa


enable password 8Ry2YjIyt7RRXU24 encrypted


names


!


interface Ethernet0/0


nameif outside


security-level 0


ip address 198.1.1.1 255.255.255.0


!


interface Ethernet0/1


nameif inside


security-level 100


ip address 10.10.1.1 255.255.255.0


!


interface Ethernet0/2


shutdown


no nameif


no security-level


no ip address


!


interface Management0/0


shutdown     


no nameif


no security-level


no ip address


management-only


!


passwd 2KFQnbNIdI.2KYOU encrypted


ftp mode passive


access-list go-*** extended permit ip 10.10.1.0 255.255.255.0 192.168.10.0 255.255.255.0


access-list split-ssl extended permit ip 10.10.1.0 255.255.255.0 any


pager lines 24


mtu outside 1500


mtu inside 1500


ip local pool ssl-user 192.168.10.1-192.168.10.99


no asdm history enable


arp timeout 14400


nat (inside) 0 access-list go-***


timeout xlate 3:00:00


timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02


timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00


timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00


timeout uauth 0:05:00 absolute


group-policy myssl***-group-policy internal


group-policy myssl***-group-policy attributes


***-tunnel-protocol web***


split-tunnel-policy tunnelspecified


split-tunnel-network-list value split-ssl


web***


  svc enable


username steve6307 password Dt4qNrv3ojM/D.Cn encrypted


username steve6307 attributes


***-group-policy myssl***-group-policy


no snmp-server location


no snmp-server contact


snmp-server enable traps snmp authentication linkup linkdown coldstart


tunnel-group myssl***-group type web***


tunnel-group myssl***-group general-attributes


address-pool ssl-user


tunnel-group myssl***-group web***-attributes


group-alias group2 enable


telnet timeout 5


ssh timeout 5


console timeout 0


!


!


web***


enable outside


svc p_w_picpath disk0:/sslclient-win-1.1.2.169.pkg 1


svc enable   


tunnel-group-list enable


prompt hostname context


Cryptochecksum:00000000000000000000000000000000

(ASA) Cisco SSL ××× 配置详解 [三部曲之三]

CSD全称Cisco Secure Desktop,即思科安全桌面技术,据说是思科花了500w美金从一家公司买来的,本文将对其特性及配置作详细介绍。

CSD 可以让×××用户在一个全新的虚拟桌面中完成Web×××连接。在虚拟桌面中所做的一切操作均与真实桌面环境隔离,包括文件存储、网页浏览等。虚拟桌面和 真实桌面的文件是无法共享的,当用户挂断CSD以后,虚拟桌面里的一切东西都将被自动删除,包括存储在虚拟硬盘上的文件、浏览器的cookies等。虚拟 桌面可以有效地保护企业的信息财产安全,×××用户的一切操作都被限制在内网,所有的文件只能存储在公司内部。

关于CSD的一些介绍就写到这里,有疑问的去cisco.com查资料吧。

在阅读本文之前,请仔细阅读本版中的“Cisco Web ××× 配置详解 ”和“Cisco SSL ××× 配置详解”,前两篇文章中出现的内容本文不再敷述。




1、按照前面的文章配置好Web×××或SSL ×××,本例使用SSL ×××配置,本例中所涉及的配置都是在SSL ×××配置并测试好的情况下完成的。

SSL ×××配置输出省略。

-----------------------------------------------------

2、将CSD文件拷贝到路由器的disk0:,并且在路由器上启动安全桌面。

c7206# copy ftp disk0:
Address or name of remote host [202.195.30.66]?
Source filename [sslclient-win-1.1.2.169.pkg]? securedesktop-ios-3.1.1.45-k9.pkg
Destination filename [securedesktop-ios-3.1.1.45-k9.pkg]?
Accessing ftp://202.195.30.66/securedesktop-ios-3.1.1.45-k9.pkg...
Loading securedesktop-ios-3.1.1.45-k9.pkg !!!!!!!
[OK - 1697952/4096 bytes]

1697952 bytes copied in 76.704 secs (22136 bytes/sec)
!
!
!
!
c7206(config)# web*** install csd disk0:/securedesktop-ios-3.1.1.45-k9.pkg
SSL××× Package Cisco-Secure-Desktop : installed successfully
!
!
c7206(config)# web*** context myweb***-context1
c7206(config-web***-context)# csd enable
-----------------------------------------------------

3、配置CSD策略。
由于CSD是收购过来的,因此命令行是配不了的,所有的CSD的策略都必须在专门WEB管理页面中完成。

登陆 https://gataway_addr/csd_admin.html可以对CSD进行策略管理,登陆用户名为admin,密码为enable密码。界面如下:

注:此处cisco文档写错了,CSD管理地址必须为https://gataway_addr/csd_admin.html,不能为https://gataway_addr/csd_admin。

配置CSD策略

选择需要设置CSD策略的Context,因为先前只定义了一个context,所以这里只有一个选择。

进去以后,有没有发现界面和ASA版的几乎一样?


设置Windows Location,Windows Location用于对用户进行分组。可以根据“证书”、“IP地址”、“注册表”来区分用户,例如:满足某段IP的属于一个Location,注册表某个键值满足要求的属于一Location等等。

创建两个location,其中第一个location以IP地址为198.1.1.2来区分某个用户,不满足该条件的用户被送入第二个location;第二个localtion可以不设置任何条件限制,即其余用户都将被分到这个location上去。
为 什么要对用户区分location呢?区分localtion以后,可以限制用户使用Web×××功能,例如:某×××用户即使用户名密码对了,但是 Location不满足条件,那么在安全桌面里它也仅仅只能使用一些有限的功能。下面的配置仅对第一个localtion作介绍,其余的大家举一反三吧。




设置第一个location的检测语句。




设置匹配该localtion的用户具备的权限,也同时可以检测用户是否安装了某个杀毒软件等等。
允许匹配该localtion的用户进行SSL ×××连接。




设置常规选项,例如是否允许在虚拟桌面和真实桌面切换等等。




设置虚拟桌面选项,例如是否允许用户运行虚拟桌面里的CMD等等。




自定义虚拟桌面里IE的收藏夹内容。

 

测试CSD功能

在外网用户的浏览器中输入https://198.1.1.1/group1,ASA会提示用户安装CSD,点击确认进行安装。

安装完成后,出现以下界面,点击界面上的按钮可以切换到安全桌面。




看一下CSD版本信息,呵呵,又是Cisco的废话。




切换至安全桌面,这可不是我自己设置的桌面背景哦,在这个桌面下,用户可以进行先前所讲的Web×××连接和SSL连接,但是他可以访问的本地资源是受CSD策略限制的。




如果用户退出安全桌面,CSD会将刚才用户通过×××下载到本地的文件全部删除,这个是挺酷的!
有个图忘了截屏,在虚拟桌面里访问你的本地硬盘时,你会发现,除了C盘里有windows系统文件之外,其它盘都为空,此时你是无法将虚拟桌面里的内容和真实桌面共享的,换句话讲,公司内部的文件你只能看,嘿嘿,不能下载到本地。

注意:有一点很值得注意,在虚拟桌面里如果允许用户进行SSL ×××连接的话,SSL的隧道分离是极不推荐打开的。为什么呢?如果你在虚拟桌面里面都可以自由的访问外网,那么公司内部的资源还能受到保护吗?这样CSD也就失去的它存在的意义了!




开始删除了!

由于CSD本身是利用图形界面配置的,因此CSD配置并没有多少命令行,这里就不给show run了,记住在做CSD实验之前先把Web×××和SSL×××实验做熟练,不然,太多的东西搅和在一起,排错会变得很复杂。