到现在为止已经把我的新书的后半部分共享完毕了,现在这本书依然在进行第二次修改,大家可以看到第一次写的草稿很像技术文档,不太像书。第二次修改的主要目的就是增加过渡性语言,并且修饰语言上的问题。可能速度有点慢,让大家久等了,实在对不起!

虽然书已经共享完毕了,但是紧接着我会陆续共享如下两个重要内容:

1.Juniper SRX防火墙视频教程的共享部分(重要部分需要收费)

2.ccnp security视频教程的共享部分(重要部分需要收费)

第二策略继承位置:用户组策略“user group-policy

我们已经介绍过ASA上的Group-Policy,Group-Policy决定了一个用户的×××策略。如果我们要为一个公司部署一个×××,应该为不同部门配置不同的Group-Policy,并且在Group-Policy下面为不同部门配置不同的×××策略,并且把用户关联到特定部门的Group-Policy。虽然在ASA要实现不同部门不同×××策略的方法有很多,但是我认为这才是推荐的解决方案。用户关联的Group-Policy就叫做用户组策略“user group-policy”。现在我们就介绍一下用户组策略的配置。

在用户组策略“user group-policy”下配置分割隧道特性

Center-ASA(config)# access-list Split permit ip 10.1.1.0 255.255.255.0 any

Center-ASA(config)# group-policy user-group-policy internal

Center-ASA(config)# group-policy user-group-policy attributes

Center-ASA(config-group-policy)# split-tunnel-policy tunnelspecified

Center-ASA(config-group-policy)# split-tunnel-network-list value Split

<创建用户组策略“user-group-policy”,并在其下配置隧道分割策略。>

Center-ASA(config)# username ipsecuser attributes

Center-ASA(config-username)# vpn-group-policy user-group-policy

<用户“ipsecuser”关联组策略“user-group-policy”。>

测试Ez×××

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××的连接状态。>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 123.1.1.100 (applied on Loopback10000)

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

<已经获取了中心推送的隧道分割策略。>

Current Ez××× Peer: 61.128.1.1

ASA策略图分析

图10-8 Ez×××策略图分析(用户组策略):

 

现任明教教主ASA策略图最后部分_休闲



 

本次试验在第一号策略继承位置用户属性“username attribute”继承了“password-storage”,第二号策略继承位置用户组策略“user group-policy”继承了分割隧道策略,并且在第五号策略继承位置获取了地址池“Ez×××-POOL”,由于这些×××策略并不冲突,所以本次×××连接的最终策略是这三个策略的累加。

第三策略继承位置:Tunnel-Group默认组策略“Default-group-policy

同样是group-policy,用户直接关联的group-policy叫做用户组策略,这个组策略只影响关联它的用户。Tunnel-Group也可以关联group-policy,叫做tunnel-group默认组策略,影响被这个tunnel-group终结的所有×××会话。我们可以这样来使用Tunnel-Group默认组策略,我们把一个公司所有用户都相同的×××策略单独配置一个Group-policy,例如:欢迎信息(banner),并通过Tunnel-Group默认组策略的方式来调用这个Group-policy,这样这个公司的所有用户都会获取这个欢迎信息。然后根据不同部门对×××的需求,配置不同的用户组策略。

Tunnel-Group默认组策略配置欢迎信息“banner

Center-ASA(config)# group-policy tunnel-group-policy internal

Center-ASA(config)# group-policy tunnel-group-policy attributes

Center-ASA(config-group-policy)# banner value Welcome Yeslab

Center-ASA(config)# tunnel-group ipsecgroup general-attributes

Center-ASA(config-tunnel-general)# default-group-policy tunnel-group-policy

<在Tunnel-group下调用group-policy。>

测试Ez×××

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××的连接状态。>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#Welcome Yeslab

<可以看到欢迎信息“Welcome Yeslab”>

*Mar 1 01:56:43.411: %CRYPTO-6-EZ×××_CONNECTION_UP: (Client) User=ipsecuser Group=ipsecgroup Client_public_addr=202.100.1.1 Server_public_addr=61.128.1.1 Assigned_client_addr=123.1.1.100

*Mar 1 01:56:45.027: %LINK-3-UPDOWN: Interface Loopback10000, changed state to up

*Mar 1 01:56:46.027: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback10000, changed state to up

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 123.1.1.100 (applied on Loopback10000)

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

ASA策略图分析

图10-9 Ez×××策略图分析(Tunnel-Group默认组策略):

 

现任明教教主ASA策略图最后部分_现任明教教主ASA策略图最后部分_02



 

本次试验在第一号策略继承位置用户属性“username attribute”继承了“password-storage”,第二号策略继承位置用户组策略“user group-policy”继承了分割隧道策略,第三个策略继承位置Tunnel-group默认组策略获取了欢迎信息“banner”。并且在第五号策略继承位置获取了地址池“Ez×××-POOL”,由于这些×××策略并不冲突,所以本次×××连接的最终策略是这四个策略的累加。

第四策略继承位置: 默认全局组策略“DfltGrpPolicy

ASA有一个默认全局组策略“DfltGrpPolicy”,这个组策略不出现在ASA的“running-config”中,只能通过“show running-config all group-policy”才能一睹芳容。这个默认全局组策略会影响ASA的所有×××,也可以说所有的×××用户都会从它继承×××策略,如果在这个组策略中配置了一个欢迎信息“banner”,SSL×××和Ez×××拨号成功的客户都会看到这个欢迎信息。由于影响太广所以不建议修改这个组策略,下面对这个策略的修改只是为了演示ASA策略图的继承关系。

默认全局组策略配置备用服务器“backup-servers

Center-ASA(config)# group-policy DfltGrpPolicy attributes

Center-ASA(config-group-policy)# backup-servers 1.1.1.1

<这个策略无需调用,它为全局默认策略,影响所有×××。不仅仅配置所有Ez×××的备用×××网关服务器为1.1.1.1,所有SSL×××的备用×××网关服务器也为1.1.1.1。由于影响甚广所以需要小心使用。>

测试Ez×××

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××的连接状态。>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 123.1.1.100 (applied on Loopback10000)

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

<获取×××备用网关>

ASA策略图分析

图10-10 Ez×××策略图分析(默认全局组策略):

 

现任明教教主ASA策略图最后部分_休闲_03



 

本次试验在第一号策略继承位置用户属性“username attribute”继承了“password-storage”,第二号策略继承位置用户组策略“user group-policy”继承了分割隧道策略,第三个策略继承位置Tunnel-group默认组策略获取了欢迎信息“banner”。第四个策略继承位置默认全局组策略获取了“backup-servers”策略,并且在第五号策略继承位置获取了地址池“Ez×××-POOL”,由于这些×××策略并不冲突,所以本次×××连接的最终策略是这五个策略的累加。

ASA策略图策略优先顺序测试

我们已经介绍了ASA策略图的五个位置,并且分别在这五个位置配置了五个不相同的策略,用户的最终策略为这五个策略的总和。但是如果策略相同,例如:五个位置都配置了地址池策略,那么继承位置越靠前,策略就越优先。下面我们就通过一个实验来证实这个特点。

第一号策略继承位置配置“vpn-framed-ip-address”

Center-ASA(config)# username ipsecuser attributes

Center-ASA(config-username)# vpn-framed-ip-address 1.1.1.1 255.255.255.0

第二号策略继承位置配置“address-pools”POOL2

Center-ASA(config)# ip local pool POOL2 2.2.2.100-2.2.2.200

Center-ASA(config)# group-policy user-group-policy attributes

Center-ASA(config-group-policy)# address-pools value POOL2

第三号策略继承位置配置“address-pools”POOL3

Center-ASA(config)# ip local pool POOL3 3.3.3.100-3.3.3.200

Center-ASA(config)# group-policy tunnel-group-policy attributes

Center-ASA(config-group-policy)# address-pools value POOL3

第四号策略继承位置配置“address-pools”POOL4

Center-ASA(config)# ip local pool POOL4 4.4.4.100-4.4.4.200

Center-ASA(config)# group-policy DfltGrpPolicy attributes

Center-ASA(config-group-policy)# address-pools value POOL4

测试一:第一号策略继承位置

现在我们已经在五个策略继承位置配置了相同的地址池策略,现在策略出现了冲突那么继承位置靠前的策略优先。我们可以通过测试来看看现在Ez×××客户端获取的是不是1.1.1.1/24这个地址(一号继承位置的策略)。

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××连接状态>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 1.1.1.1 (applied on Loopback10000)

<获取了第一号继承位置所配置的“vpn-framed-ip-address”策略。>

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

测试二:第二号策略继承位置

我们清除在第一号策略继承位置所配置的“vpn-framed-ip-address”策略,现在应该生效的是第二号策略继承位置所配置的地址池“POOL2”

ASA上清除配置:

Center-ASA(config)# username ipsecuser attributes

Center-ASA(config-username)# no vpn-framed-ip-address 1.1.1.1 255.255.255.0

Ez×××客户端测试:

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××连接状态>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 2.2.2.100 (applied on Loopback10000)

<获取了第二号继承位置所配置的地址池“POOL2”。>

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

测试三:第三号策略继承位置

我们清除在第二号策略继承位置所配置的地址池“POOL2”,现在应该生效的是第三号策略继承位置所配置的地址池“POOL3”

ASA上清除配置:

Center-ASA(config)# group-policy user-group-policy attributes

Center-ASA(config-group-policy)# no address-pools value POOL2

Ez×××客户端测试:

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××连接状态>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 3.3.3.100 (applied on Loopback10000)

<获取了第三号继承位置所配置的地址池“POOL3”。>

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

测试四:第四号策略继承位置

我们清除在第三号策略继承位置所配置的地址池“POOL3”,现在应该生效的是第四号策略继承位置所配置的地址池“POOL4”

ASA上清除配置:

Center-ASA(config)# group-policy tunnel-group-policy attributes

Center-ASA(config-group-policy)# no address-pools value POOL3

Ez×××客户端测试:

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××连接状态>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 4.4.4.100 (applied on Loopback10000)

<获取了第四号继承位置所配置的地址池“POOL4”。>

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

测试五:第五号策略继承位置

我们清除在第四号策略继承位置所配置的地址池“POOL4”,现在应该生效的是第五号策略继承位置所配置的地址池“Ez×××-POOL”

ASA上清除配置:

Center-ASA(config)# group-policy DfltGrpPolicy attributes

Center-ASA(config-group-policy)# no address-pools value POOL4

Ez×××客户端测试:

Branch#clear crypto ipsec client ezvpn

<清除上一次Ez×××连接状态>

Branch#crypto ipsec client ezvpn connect

<发起新一次Ez×××连接。>

Branch#show crypto ipsec client ezvpn

Easy ××× Remote Phase: 6

Tunnel name : Ez×××-Client

Inside interface list: Loopback0

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: MTU_CHANGED

Address: 123.1.1.100 (applied on Loopback10000)

<获取了第五号继承位置所配置的地址池“Ez×××-POOL”。>

Mask: 255.255.255.255

Save Password: Allowed

Split Tunnel List: 1

Address : 10.1.1.0

Mask : 255.255.255.0

Protocol : 0x0

Source Port: 0

Dest Port : 0

Current Ez××× Peer: 61.128.1.1

Backup Gateways

(0): 1.1.1.1

ASA策略图总结

介绍完ASA策略图后,我们了解到ASA上的×××策略是相当复杂而且灵活的,应该说解决一个问题没有一套固定的方案,可以说是条条大路通罗马。这样复杂的继承关系会让人不知所措,所以我决定给大家推荐一个套路化的实施方案,在这里介绍它并不表示这是唯一答案,仅仅只是本人推荐的一个方案。

图10-11 教主推荐ASA ×××策略继承解决方案

 

现任明教教主ASA策略图最后部分_休闲_04



 

这个解决方案的思路比较简单,只在ASA策略图的两个位置继承策略,第二号位置的用户组策略,和第五号位置的Tunnel-group默认组策略。把整个公司所有用户都相同的×××策略定义成一个group-policy,并且在Tunnel-Group下调用,然后为每一个部门的用户定义不同的用户组策略,并把不同部门的用户关联到这个group-policy即可。用户的最终策略就是tunnel-group默认组策略加上特定部门的用户组策略的集合。当然事情也可以变得更简单,如果你觉得两层group-policy的继承关系比较复杂,你也可以不用配置tunnel-group默认组策略,只是单独的为每一个部分配置用户组策略。如果你实施的项目非常简单,所有用户的×××策略都一样,那么只配置一个tunnel-group默认组策略就搞定了。

ASA动态Crypto map配置

在第五章第一个试验中,我们就已经介绍了路由器上动态crypto map的配置,但是一直没有介绍如何在ASA上配置动态crypto map的站点到站点×××。原因在当时很难给大家解释ASA上tunnel-group的作用。现在我们学习了ASA策略图,了解了Tunnel-group的特点,它主要任务就是终结一个×××连接。下面我们就来简单的展示一下ASA上动态crypto map的配置。

tunnel-group DefaultL2LGroup ipsec-attributes

pre-shared-key yeslabccies

<“DefaultL2LGroup”是类型为“ipsec-l2l”的默认tunnel-group,如果通过IP地址没有找到对应的tunnel-group,就使用这个默认tunnel-group来终结剩余的站点到站点的IPSec ×××。上面两句配置等同于IOS中的“crypto isakmp key 0 yeslabccies address 0.0.0.0 0.0.0.0”这个命令的作用。>

crypto isakmp enable outside

crypto isakmp policy 10

authentication pre-share

encryption des

hash sha

group 1

crypto ipsec transform-set Dynamic-SET esp-des esp-md5-hmac

crypto dynamic-map dymap 10 set transform-set Dynamic-SET

crypto map cry-map 1000 ipsec-isakmp dynamic dymap

crypto map cry-map interface outside

ASA L2TP over IPSec配置

L2TP over IPSec是一个所有微软windows操作系统都支持的×××类型,在ASA上配置这个×××有很多值得注意的细节,特别是Tunnel-group的处理方法,下面是我对这个特殊×××配置的整理,大家需要严重注意我加粗部分的配置。

ip local pool clientvpnpool 123.1.1.100-123.1.1.200 mask 255.255.255.0

username l2tpuser password cisco mschap

<此用户名和密码用于微软的mschap认证,需要特殊的加密处理>

cry ipsec transform-set cisco esp-des esp-sha-hmac

crypto ipsec transform-set cisco mode transport

<L2TP over IPSec也是一个经典的传输模式IPSec ×××类型。>

crypto dynamic-map cisco 10 set transform-set cisco

crypto map cisco 10 ipsec-isakmp dynamic cisco

crypto map cisco interface outside

crypto isakmp identity address

<需要专门配置通过IP地址来进行ISAKMP的认证>

crypto isakmp enable outside

crypto isakmp policy 10

authentication pre-share

encryption des

hash sha

group 1

tunnel-group DefaultRAGroup general-attributes

address-pool clientvpnpool

tunnel-group DefaultRAGroup ipsec-attributes

pre-shared-key yeslabccies

tunnel-group DefaultRAGroup ppp-attributes

no authentication chap

<需要在默认的tunnel-group“DefaultRAGroup”下配置地址池和IPSec ×××的预共享认证密钥>