到现在为止已经把我的新书的后半部分共享完毕了,现在这本书依然在进行第二次修改,大家可以看到第一次写的草稿很像技术文档,不太像书。第二次修改的主要目的就是增加过渡性语言,并且修饰语言上的问题。可能速度有点慢,让大家久等了,实在对不起!
虽然书已经共享完毕了,但是紧接着我会陆续共享如下两个重要内容:
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 <已经获取了中心推送的隧道分割策略。> Current Ez××× Peer: 61.128.1.1 |
ASA策略图分析
图10-8 Ez×××策略图分析(用户组策略):
本次试验在第一号策略继承位置用户属性“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 *Mar *Mar 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 Current Ez××× Peer: 61.128.1.1 |
ASA策略图分析
图10-9 Ez×××策略图分析(Tunnel-Group默认组策略):
本次试验在第一号策略继承位置用户属性“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways <获取×××备用网关> |
ASA策略图分析
图10-10 Ez×××策略图分析(默认全局组策略):
本次试验在第一号策略继承位置用户属性“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways |
测试二:第二号策略继承位置
我们清除在第一号策略继承位置所配置的“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways |
测试三:第三号策略继承位置
我们清除在第二号策略继承位置所配置的地址池“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways |
测试四:第四号策略继承位置
我们清除在第三号策略继承位置所配置的地址池“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways |
测试五:第五号策略继承位置
我们清除在第四号策略继承位置所配置的地址池“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 Current Ez××× Peer: 61.128.1.1 Backup Gateways |
ASA策略图总结
介绍完ASA策略图后,我们了解到ASA上的×××策略是相当复杂而且灵活的,应该说解决一个问题没有一套固定的方案,可以说是条条大路通罗马。这样复杂的继承关系会让人不知所措,所以我决定给大家推荐一个套路化的实施方案,在这里介绍它并不表示这是唯一答案,仅仅只是本人推荐的一个方案。
图10-11 教主推荐ASA ×××策略继承解决方案
这个解决方案的思路比较简单,只在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 <“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 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 tunnel-group DefaultRAGroup general-attributes tunnel-group DefaultRAGroup ipsec-attributes tunnel-group DefaultRAGroup ppp-attributes <需要在默认的tunnel-group“DefaultRAGroup”下配置地址池和IPSec ×××的预共享认证密钥> |