8.7对环境的高级控制
CCNP安全VPN 642-648认证考试指南(第2版)
既然你已经为远程用户提供了网络连接,并且给他们分配了IP地址使其能够访问内部资源,你还需要控制他们对网络和资源的访问权限,或者允许他们在访问本地的网络资源的同时(例如,一个网络打印机),也能够保持VPN的连接并通过VPN访问资源。而且,可以限制用户使用VPN连接对网络进行访问的时间。例如,你可能希望用户只在工作时间内访问内部资源(例如,早9点到晚6点)。
使用下面的方法来完成这些任务:
访问控制列表(ACL)和可下载的访问控制列表;
分离隧道;
访问时长/时间范围。
8.7.1ACL和可下载的访问控制列表
关键可以通过组策略、动态访问策略(DAP)或者ASA上配置的本地用户账号将访问控制列表应用到远程用户。可以配置一个标准访问控制列表来允许或者拒绝远程用户对内部子网或者特定目标的访问,或者可以配置一个扩展访问控制列表并基于源/目标/协议/端口参数来允许或者拒绝远程用户对内部资源的访问(取决于规则需要的精确程度)。
可以使用ASDM,进入Configuration > Firewall > Advanced > ACL Manager配置全局的ACL,如图8-22所示。
通过创建一个新的ACL开始ACL的配置过程,接着建立相关的访问控制条目(ACE)。ACL执行一个容器的角色,而承载在这个容器中的每一个ACE都含有你配置的特定规则的信息。本例建立了一个新的ACL来限制IP地址为192.168.2.111的远程用户通过SSH协议访问内部服务器172.16.30.13(端口号22),而其他的流量被ACL末尾隐含的deny any any的规则所拒绝。在ACL Manager窗口中单击Add > Add ACL,根据提示给ACL起一个名字Server_SSH_ACCESS。下一步,从ACL Manager窗口所示的列表中选择新建的ACL,接着单击Add > Add ACE。
如图8-23所示,我们给ACE配置了下面的这些细节信息。
Action:Permit
Source:192.168.2.111
Destination:172.16.30.13
Service:SSH
如图8-23所示,你也可以为ACL输入描述信息使得将来你和其他的火墙管理员能更容易地识别这些规则的用途。除此之外,保持Enable Logging为默认已被选择的状态,它会为所有因为这个规则而被丢弃的数据包产生日志(如果数据包被拒绝的话)。
你可以通过CLI完成相同的配置任务。为了完成它,使用access-list name和access-list _name_remark全局配置命令。例8-13显示了使用这两个命令来获得和前面的ASDM相同的配置结果。无论是选择使用ASDM还是CLI配置访问控制列表,都是使用相同的ACL和ACE的术语。当使用CLI把ACE添加进ACL时,ACL的名字必须是相同的。
值得注意的是,可下载的ACL是被配置在远程的AAA服务器上的,当用户被成功验证时,它被直接分配给用户。通过将特定的规则/ACE添加到已配置的防问控制列表的末尾,可下载的ACL会和本地已配置的ACL合并。可下载的ACL的配置已超出了本书的讨论范围。不过,出于将来参考的需要,知道它的存在还是非常重要的。可下载的ACL是VPN授权过程的一部分,实际上你可以从AAA服务器上下载一个组策略并将它应用于用户的会话,可以在组策略中设置可下载的ACL。
8.7.2分离隧道
关键分离隧道提供了一种方法来控制通过VPN连接的访问流量,它允许你指定远程用户通过VPN隧道能够访问的目标网络、子网或者主机,对其余目标网络的访问(未指明的)的流量被直接发送给目标而无须经过VPN隧道。
默认情况下,所有远程用户的数据包都必须通过VPN隧道送到ASA。出于这个原因,有两种常见的使用分离隧道的情形。
允许用户访问他们本地LAN连接上的设备(例如,一台网络打印机。)
阻止远程用户访问Internet的流量经过VPN隧道,从而导致对ASA产生不必要的开销和消耗不必要的带宽。
许多公司喜欢将远程用户的Web流量通过VPN隧道传输以实现过滤Web流量的目的。例如,他们的网络中可能会有一个集中的Web过滤设备被用来拒绝、允许,或者记录用户对特定网站的访问。不过,随着可选的Web安全模块用于AnyConnect客户端,现在公司可以使用非集中的基于云的Web安全部署(例如Cisco的IronPort设备),所有的Web流量穿过VPN隧道的需求已经不存在了。
为了使分离隧道正常工作,你必须在连接配置文件的组策略中或者在用户账号中直接配置它,同时还需要在AnyConnect客户端软件中配置它。可以通过客户端配置文件配置 AnyConnect客户端或者用户手动启动这个选项。只有在ASA的组策略被设置为Exclude Network List Below和引用的ACL匹配主机0.0.0.0的情况下,AnyConnect才需要配置客户端配置文件,其实就是告诉AnyConnect客户端除了访问LAN的流量不经过隧道,所有其他的流量都需要经过隧道被传送给ASA。需要在AnyConnect客户端配置文件的Preferences(Part 1)部分选择它。除去上述情形,只需在ASA这边完成分离隧道的设置即可。
为了配置分离隧道,首先需要分配策略行为(哪个网络将通过VPN的隧道传输)并可选地指定使用哪个网络列表(只支持标准的访问控制列表)和策略以识别被隧道传输或者不被隧道传输的网络地址。如图8-25所示,在ASDM中,从Configuration > Remote Access VPN > Network (Client) Access > Group Policies选择组策略对象,单击Edit,在Edit Internal Group Policy policy name窗口中,使用左边的菜单,进入Advanced > Split Tunneling窗格。
本例配置的分离隧道的策略为Tunnel Network List Below,并且使用了标准的访问控制列表Internal_Servers指定了需要通过隧道传输的网络/子网是192.168.1.0,这个结果就是所有访问192.168.1.0的子网的流量都要经过所建立的VPN连接,而其余的所有流量(Internet、本地LAN等)被直接从远程用户的设备发送到目的地而无需穿过隧道。
当选择组策略行为时,有两个其他的选项:Tunnel All Networks(默认)和Exclude Network List Below。后者也需要使用ACL来区分网络/子网。你也可以可选性地为Windows XP主机启动DHCP截获。通过配置这个选项,ASA能够截获Windows XP主机发送的DHCP消息并回应域名、子网掩码,以及通过VPN隧道能被访问的网络/子网的内部路由表。你也可以可选性地配置一个子网掩码,将其提供给用户的Windows XP设备。
在本书写作之时,ASA还不支持IPv6流量的分离隧道,因此策略中所指定的网络列表必须是IPv4的类型。
如想使用CLI完成配置任务,在组策略的属性模式下输入split-tunnel-policy option命令。split-tunnel-policy命令有下面一些可选项,你可以使用这些选项得到和ASDM相同的配置结果(即Tunnel All Networks、Exclude Network List和Tunnel Specified):
split-tunnel-policy tunnelall
split-tunnel-policy excludespecified
split-tunnel-policy tunnelspecified
当使用excludespecified或者tunnelspecified选项时,则需在一个标准的ACL中指定包含或者排除哪个网络/子网(之前提到过)。如例8-15所示,当建立ACL后,接着可以通过命令split-tunnel-network-list value acl name命令在组策略中引用它。
当完成组策略的配置后,就可以配置远程用户了。正如之前提到的,远程用户自己可以在AnyConnect的客户端中手动地完成这个设置或者管理员在ASA上配置好客户端配置文件,在远程用户连接期间,这个客户端配置文件会被AnyConnect客户端下载,还可以通过配置客户端配置文件,可选地清除远程用户手动开启或者关闭配置(选项)的能力。
图8-26显示了Enable Local LAN Access的选项,远程用户在AnyConnect客户端可以手动配置这个选项。在AnyConnect客户端软件中单击Advanced,在打开的AnyConnect Secure Mobility Client窗口中,选择VPN > Preferences。默认情况下,没有勾选Enable Local LAN Access这个选项,这意外着即使在ASA上配置了分离隧道的功能,但是没有在客户端上勾选这个选项,分离隧道也不会生效。
也可以在AnyConnect客户端的配置文件中配置本地的LAN访问,在远程用户连接期间,这个客户端配置文件会被AnyConnect客户端自动地下载并执行,如图8-27所示。
可以通过Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile编辑或者建立新的AnyConnect客户端配置文件,或者从Cisco.com下载并安装AnyConnect Offline Profile Editor。在AnyConnect客户端配置文件中,从左边的菜单中选择Preferences(Part 1)选项并选择Local LAN Access。另外你也可以选择性地不勾选Local LAN Access旁边的User Controllable复选框,这样你可以从远程用户的AnyConnect客户端软件中删除Enable Local LAN Access选项,从而防止用户清除我们已经配置好的设置。当我们学习高级AnyConnect这一章时,会看到更详细的AnyConnect客户端配置文件的用法。
8.7.3访问时长/时间范围
除了可以使用ACL和分离隧道的方法来控制远程用户对网络资源的访问之外,你还可以控制远程用户在什么特殊的日子或者一周的什么时候可以或者不可以进行网络连接(例如,星期一到星期五、早9点到晚6点)。
你可以使用一个全局的时间范围来控制使用VPN的时长,ASA的本地用户账号或者组策略可以直接应用这个全局的时间范围。
在CLI下,通过time-range name命令进入time-range配置模式,在这个模式下配置时间范围,你可以配置应用时间范围的不同选项。另外,你也可以使用ASDM来配置时间范围。进入Configuration > Firewall > Objects > Time Ranges,单击Add即可。
当处于CLI时间范围的配置模式时,你可以指定一个时间范围的周期,而这个时间范围只有在你指定的那些日期内才有效(例如,每周末或者周一到周五),也可以指定一个绝对时间,比如你输入了一个起始日期和终止日期,只有在那些时间时,时间范围才会生效并且它不能被循环使用。例如,如果你指定了一个周一9:00到周五17:00的绝对时间,这将导致你的时间范围只在那一周的工作时间内有效而不是每一周都可以重复使用它。例8-16显示了一个时间范围的配置,这个时间范围只在每周周一到周五的早9点到晚5点生效。
当使用ASDM配置时间范围时,在Add Time Range窗口中,给新的时间范围分配一个名字,接着选择起始时间和终止时间。默认情况下,时间范围立刻启动并持续运行。不过,你可以指定时间范围在将来的某个日期和时间启动,可选地指定它什么时候结束。你可以单击窗口Recurring Time Ranges部分的Add按钮来配置一个重复发生的时间范围并指定时间范围开始生效的日期和起始时间。
如图8-28所示,在Add Recurring Time Range窗口中,你可以选择时间范围在星期几开始生效(例如,工作日、周末、单独的某天等)。可选地,你还可以指定时间范围在这些日期生效的时刻,还可以指定时间范围运行的周期间隔(例如,从周一的9点开始直到周五的18点)。