首页 电脑 电脑学堂 查看内容

ISA 里VPN服务器的客户端地址池使用分析

2009-7-20 17:10 669 0

摘要:       前言:在许多大型企业网络中,ISA防火墙只是作为二级防火墙,而由硬件防火墙来作为边缘防火墙并提供VPN服务。对于这种网络结构,当外部客户拨...

      前言:在许多大型企业网络中,ISA防火墙只是作为二级防火墙,而由硬件防火墙来作为边缘防火墙并提供VPN服务。对于这种网络结构,当外部客户拨入硬件防火墙的VPN服务后,该如何才能允许这些外部的VPN客户访问ISA防火墙保护的内部网络呢?通过这篇文章,你可以学习到如何实现这一需求。   在许多大型企业网络中,ISA防火墙只是作为二级防火墙,而由硬件防火墙来作为边缘防火墙并提供VPN服务。对于这种网络结构,当外部客户拨入硬件防火墙的VPN服务后,该如何才能允许这些外部的VPN客户访问ISA防火墙保护的内部网络呢?   其实在这种网络结构中,ISA防火墙同时也担当了网络间路由器的角色,我已经在How To :配置ISA防火墙作为网络间的路由器一文中进行了介绍。为了实现这种需求,你需要满足以下的条件:   1、VPN客户有(通过ISA防火墙)到达内部网络的路由;   2、内部网络客户有(通过ISA防火墙)到VPN客户的路由;   3、ISA防火墙允许VPN客户的访问行为。   我在下文中以实例给大家介绍如何根据具体的网络环境来进行部署。   本文中的试验网络环境如下图所示,边缘防火墙为一个硬件防火墙,同时提供VPN服务,它连接Internet和DMZ网络;而ISA防火墙作为二级防火墙,连接DMZ网络和内部网络。在这个试验中,我们将实现外部VPN客户到ISA防火墙所保护的内部网络中的Web服务器的访问。   各计算机的TCP/IP设置如下,本次试验不涉及DNS,所有的DNS服务器设置均为空,部署之前已经验证了网络连接工作正常:   VPN Client   IP:39.1.1.6/24   DG:39.1.1.1   Hardware Firewall   Internet:   IP:39.1.1.1/24   DG:39.1.1.1   DMZ:   IP:10.0.0.1/24   DG:None   VPN客户地址范围:   10.1.0.0/24   ISA 2004 Firewall(ISA 2004 EE)   DMZ:   IP:10.0.0.6/24   DG:10.0.0.1   Internal:   IP:192.168.0.1/24   DG:None   Web Server   IP:192.168.0.6/24   DG:192.168.0.1   在这个试验中,我们将配置VPN客户启用远程网络上的默认网关,所以在前面列出的三个条件中的第一个条件“VPN客户有(通过ISA防火墙)到达内部网络的路由”可以通过在硬件防火墙(VPN服务器)上添加到ISA防火墙所保护的内部网络的路由实现,如果你不启用此选项,你必须使用额外的方式,例如DHCP选项249给VPN客户添加路由来实现;而第二个条件“内部网络客户有(通过ISA防火墙)到VPN客户的路由”由于内部网络客户配置ISA防火墙为其默认网关,而ISA防火墙又配置硬件防火墙为其默认网关,所以也已经满足。在你的网络中,请根据实际情况来决定如何添加对应的路由。   而最后一个条件“ISA防火墙允许VPN客户的访问行为”则必须根据不同的情况进行处理。如果内部网络到外部网络的路由关系为NAT,那么ISA防火墙必须使用服务发布规则来允许外部网络客户到内部网络客户的访问;如果路由关系为Route,那么你可以直接使用访问规则来允许而无需使用发布规则。在这个试验中,我将使用Route路由关系并使用访问规则来允许外部VPN客户到内部网络的访问。   需要注意的是,ISA防火墙的内部网络中只是包含内部网络的地址范围(192.168.0.0/24),并不包含DMZ网络的地址范围。对于ISA防火墙而言,这个DMZ网络就是外部网络。   首先,我们在硬件防火墙上添加通过ISA防火墙到其保护的内部网络的路由(在此我是使用Windows server 2003来模拟提供VPN服务的硬件防火墙):   C:\Documents and Settings\Administrator>route print   IPv4 Route Table   ===========================================================================   Interface List   0x1 ........................... MS TCP Loopback interface   0x10002 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface   0x10003 ...00 03 ff b3 5e c2 ...... Intel 21140-Based PCI Fast Ethernet Adapter (Generic)   0x10004 ...00 03 ff d4 81 d1 ...... Intel 21140-Based PCI Fast Ethernet Adapter (Generic) #2   ===========================================================================   ===========================================================================   Active Routes:   Network Destination Netmask Gateway Interface Metric   0.0.0.0 0.0.0.0 39.1.1.1 39.1.1.1 20   10.0.0.0 255.255.255.0 10.0.0.1 10.0.0.1 20   10.0.0.1 255.255.255.255 127.0.0.1 127.0.0.1 20   10.0.0.100 255.255.255.255 127.0.0.1 127.0.0.1 50   10.255.255.255 255.255.255.255 10.0.0.1 10.0.0.1 20   39.1.1.0 255.255.255.0 39.1.1.1 39.1.1.1 20   39.1.1.1 255.255.255.255 127.0.0.1 127.0.0.1 20   39.255.255.255 255.255.255.255 39.1.1.1 39.1.1.1 20   127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1   由于w2k的VPN服务器地址池使用的是和本地内网卡同一段,所以很多网友在配置ISA2004的时候,VPN服务的地址池仍然习惯性的使用和本地内网卡同一段,虽然使用手动输入已经被ISA2004禁止,但是使用DHCP确可以实现这个目的,那么为什么ISA2004要禁止使用已经使用在的地址呢,下面我来谈谈我的看法。   首先来说W2K,为什么使用同一段地址,我们通过微软的一些资料可以看出,W2K对于VPN服务使用的是桥接方式。所以这里不存在路由问题,同一网段的地址是在同一个物理位置。   ISA2004使用的是不是桥接模式呢,我们知道桥接,就好比在一个HUB里面,你无法让网关去控制下面的两个PC是不是能够互相访问。所以为了加强安全性,ISA2004不允许使用桥接模式,而是默认使用路由模式(也可以使用NAT模式,更提高了安全系数,这种情况分配IP地址范围就可以随意了),因为使用桥接怎么控制VPN客户端的访问权限呢。    我通过DHCP,使用和内网卡(192.168.1.1/24)同一段地址,VPN客户拨入后得到IP为192.168.1.201/32,使用VPN客户端,ping内网pc,可以接通,内网用户也可以接通VPN用户,我们知道如果内网用户不以ISA内网卡地址为网关的话,在ISA另一个网卡地址上的PC将不能被接通,但是我修改了网关地址,依然可以接通VPN用户,说明这已经不是在路由了,而是在桥接,为了证实想法,我抓了包,当ping VPN客户端地址的时候,本地arp表里面没有192.168.1.201的地址,于是就发出了对于192.168.1.201的广播请求,ISA内网卡回应了请求,告知192.168.1.201的MAC地址,对比这个MAC地址,和ISA内网卡一致,由此看出,如果使用同段的地址,ISA2004依然使用了桥接模式。那么在ISA2004的防火墙策略里使用VPN客户端这个网络元素就会失效,我禁止VPN客户端访问内部,然而VPN客户端依然可以接通内部PC,内部PC也依然可以接通VPN客户端。当禁止了内部访问内部之后,不能接通。这样做就导致ISA2004的网络元素混乱,不能起到应有的作用。   ISA2004不仅仅禁止VPN地址池加入本地网卡网段的地址范围,也禁止加入整个已经在ISA2004登记过的地址范围,本人无法加入那样的地址,不过为了分析一下原理,下面我模拟一个使用内网已经存在地址的例子,说明问题。   如图模拟构成了一个网络。VPN客户拨入后得到IP为192.168.2.201/32,通过ISA2004的内部环回可以路由到本地网卡192.168.1.254,也可以路由到internet,如果这时候没有路由器增加的那个PC2问题不大,pc1的网关是192.168.1.254,访问都可以完成。那么来看路由器的192.168.2.0/24网段,为了能让该段访问外部,在ISA2004上增加内网地址范围192.168.2.0/24,并且增加路由192.168.2.0/24 192.168.1.1 192.168.1.254,而在路由器上需要增加0.0.0.0/0 192.168.1.254 192.168.1.1,这样pc1和pc2就可以访问internet。   当192.168.2.201访问pc2的时候,查找本地路由表,本地路由表里没有,于是发到默认路由192.168.2.200上,也就是ISA2004的VPN服务器的虚拟网卡, ISA2004的路由表里有192.168.2.0/24 192.168.1.1 192.168.1.254,根据这个路由,送到下面路由器192.168.1.1去,路由器转发到pc2,pc2返回应答信息到路由器,路由器查找自己的路由表,发现192.168.2.0/24在192.168.2.1接口上,但是arp对应表里没有192.168.2.201,在192.168.2.1上发起广播,没有谁来应答,丢弃,访问失败。   从pc2访问192.168.2.201,比较掩码,为同一段,不提交路由器,广播,未果,丢弃。   如果VPN客户端使用了和ISA2004的VPN地址池分配相同的本地地址会怎么样呢。   VPN地址池为192.168.20.0/24,VPN客户端分配给192.168.20.5/32,本地地址192.168.20.9/24。   我们来看一下路由表   Active Routes:   Default Gateway: 192.168.20.5   我们看到出现了两个默认网关,那是不是就无法路由呢,对于双网关,windows区别了优先级,看Metric值,192.168.20.5的值低,那么默认网关就是192.168.20.5,只有当这个网关有问题才会启用192.168.20.9,也就是说原来的网关被屏蔽了,这样我们访问远程网段仍可以接通,通过试验的确可以ping通远程地址的192.168.100.21,上网仍会畅通。但是想要接通192.168.20.0的远程地址就不行了,因为我看到已经有192.168.20.0的路由的interface是192.168.20.9,只要访问192.168.20.0/24的地址就会送到192.168.20.9,也就是只能在本地查找。   那么如果远程网络的ISA2004使用了和本地内网卡同一段地址,这样会怎么样呢。由于存在192.168.20.0/24 192.168.20.9的路由,远程地址上的192.168.20.21终端不能接通,原理上面说的,凡是到192.168.20.0/24都往本地网卡上送,不会使用默认路由192.168.20.5,因为本地路由表里面存在路由。这就是所谓的同一段地址必须在相同的物理位置,如果这样做会造成路由失败。   综上所述,我得出一个结果:ISA2004配置VPN地址池的时候,不能使用在ISA2004已经登记过的IP地址范围,不论是本地网卡的地址范围还是下级路由器的地址范围。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部