工作组环境下进行身份验证并不方便,因此管理员一般会采用IP地址进行访问控制。根据源IP限制访问者是包过滤防火墙的基本功能,从技术上看实现起来很简单。如果我们希望只有Perth能上网,那我们就可以创建一个允许上网的计算机集合,然后将Perth加入此集合即可。
在ISA服务器上打开ISA服务器管理,在防火墙策略工具箱中选择新建“计算机集”,如下图所示。
为计算机集取名为“允许上网的计算机”,点击添加计算机,准备把Perth加进来。
输入Perth的名称和IP地址,点击“确定“,这样我们就创建了一个计算机集合,集合内包括Perth。
创建了计算机集合后,我们来修改一下访问规则,现有的访问规则是允许内网和本地主机可任意访问。在访问规则属性中切换到“从”标签,如下图所示,选择“内部”,点击“删除”,然后把刚创建的计算机集合添加进来。
修改后的规则如下图所示。
在Perth上访问百度,一切正常,如下图所示。
换到Istanbul上访问,如下图所示,Istanbul无法访问Internet。
看起来我们达到了用IP控制用户上网的目的,问题已经解决,其实不然。由于目前ISA只是依靠IP地址进行访问控制,过不了多久,ISA管理员就会发现有“聪明”人开始盗用IP,冒充合法用户访问外网。为了应对这种情况,我们可以考虑使用ARP静态绑定来解决这个问题,即在ISA服务器上记录合法客户机的MAC地址。在本例中,我们让ISA记录Perth的MAC地址。如下图所示,ISA先ping Perth,然后用Arp –a查出Perth的MAC地址,最后用Arp –s进行静态绑定,这样就不用担心用户盗用IP了。
二 用户身份验证工作组环境下进行用户身份验证并不方便,但不等于无法进行用户身份验证,在工作组中进行身份验证可以使用镜像账号的方式,即在ISA服务器和客户机上创建用户名和口令都完全一致的用户账号。例如我们允许员工张强访问外网,张强使用的计算机是Istanbul,那我们可以进行如下操作。
A 在ISA服务器上为张强创建用户账号
在ISA的计算机管理中,定位本地用户和组,如下图所示,选择创建新用户。
用户名为zhangqiang,口令为Itet2008。
B 在ISA服务器上创建允许上网的用户集
在防火墙策略工具箱中,展开用户,如下图所示,点击新建。
为新建用户集取名为“允许上网用户”。
在新创建的用户集中添加“Windows用户和组”,如下图所示。
在用户集中添加beijingzhangqiang,如下图所示。
创建完用户集,点击完成。
接下来我们要修改访问规则,只允许指定用户集访问外网。还是对那条允许内网用户任意访问的访问规则进行修改,这次不修改访问的源网络了,如下图所示,我们对源网络不进行任何限制。
这次限制的重点放在了用户上,在规则属性中切换到用户标签,将“所有用户”删除。
将“允许上网用户”添加进来,如下图所示。
D 在Istanbul上创建张强的镜像账号
现在内网的访问用户必须向ISA证明自己是ISA服务器上的用户张强才能被允许访问外网,那怎么才能证明呢?其实很简单,只要客户机上的某个用户账号,其用户名和口令和ISA服务器上张强的用户名和口令完全一致,ISA就会认为这两个账号是同一用户。这里面涉及到集成验证中的NTLM原理,以后我会写篇博文发出来,现在大家只要知道如何操作就可以了。
在Istanbul上创建用户账号张强,如下图所示,用户名为zhangqiang,口令为Itet2008。
做完上述工作后,我们就可以在Istanbul来试验一下了。首先,我们需要以张强的身份登录,其次,由于SNAT不支持用户验证,因此我们测试时需使用Web代理或防火墙客户端。如下图所示,我们在客户机上使用Web代理。
在Istanbul上访问百度,如下图所示,访问成功!
在ISA上打开实时日志,如下图所示,ISA认为是本机的张强用户在访问,镜像账号起作用了!
三 Web代理与基本身份验证
在上面的镜像账号例子中,访问者利用了集成验证证明了自己的身份,其实ISA也支持基本身份验证。曾经有朋友问过这个问题,ISA能否在用户使用浏览器上网时弹出一个窗口,访问者必须答对用户名和口令才可以上网?这个需求是可以满足的,只要访问者使用Web代理以及我们将Web代理的身份验证方法改为基本身份验证即可。
在ISA服务器中查看内部网络属性,如下图所示,切换到Web代理标签,点击“身份验证”。
将Web代理使用的身份验证方式从“集成”改为“基本”,如下图所示。
防火墙策略生效后,在客户机上测试一下,如下图所示,客户机访问互联网时,ISA弹出对话框要求输入用户名和口令进行身份验证,我们输入了张强的用户名和口令。
身份验证通过,用户可以访问互联网了!
以上我们简单介绍了如何在工作组环境下控制用户上网,接下来我们要考虑在域环境下如何操作。相比较工作组而言,域环境下控制用户上网是很容易做到的,既然有域控制器负责集中的用户身份验证,既方便又安全,如果不加以利用岂不太过可惜。在域环境下控制用户上网基本都是依靠用户身份验证,除了有极个别的SNAT用户我们需要用IP控制。具体的处理思路也很简单,在域中创建一个全局组,例如取名为Internet Access。然后将允许上网的域用户加入此全局组,最后在ISA中创建一个允许访问互联网的用户集,把全局组Internet Access加入允许访问互联网的用户集即可。
域环境拓扑如下图所示,Denver是域控制器和DNS服务器,Perth是域内工作站,Beijing是加入域的ISA2006服务器。
一 DNS设置问题ISA有两块网卡,两块网卡上究竟应该怎么设置TCP/IP参数,尤其是DNS应该怎么设置?这是个容易被忽略但又很重要的问题,因为DNS既负责定位内网的域控制器,也要负责解析互联网上的域名,设置不好轻则影响内网登录,重则严重影响大家上网的速度。我们推荐的设置方式是只在内网网卡设置DNS,外网网卡不设置DNS服务器。
在本例中,ISA服务器的内网网卡的TCP/IP参数是 IP为10.1.1.254 ,子网掩码为255.255.255.0,DNS为10.1.1.5;外网网卡的TCP/IP参数是IP为192.168.1.254,子网掩码为255.255.255.0,网关为192.168.1.1。这样一来,内网的DNS既负责为AD提供SRV记录,也负责解析互联网上的域名,结构简单,易于纠错。
有朋友认为只有电信提供的DNS服务器才能解析互联网上的域名,这种看法是不对的。我们在内网中搭建的DNS服务器只要能访问互联网,它就可以解析互联网上的所有域名。根据DNS原理分析,如果DNS服务器遇到一个域名自己无法解析,它就会把这个解析请求送到根服务器,根服务器采用迭代方式指导DNS服务器解析出目标域名。因此,想要内网的DNS服务器能解析出互联网上的域名,只要允许内网DNS服务器能访问互联网即可。
A 我们应该在ISA上创建一条访问规则,允许DNS服务器任意访问,并且将这条规则放到第一位,如下图所示。
B 为了提高DNS的解析速度,可以考虑在DNS服务器上设置转发器,将用户发来的DNS解析请求转发到电信的DNS服务器上。
转发器的设置如下,在Denver上打开DNS管理器,右键点击服务器,选择“属性”,如下图所示。
在属性中切换到“转发器”,在转发器IP地址处填写电信DNS服务器的IP,填写完毕后点击添加,如下图所示。这样我们就设置好了转发器,以后Denver解析不了的域名将转发给202.106.46.151,利用电信DNS的缓存来加快解析速度。
二 依靠身份验证限制用户解决了DNS的问题后,我们就可以利用身份验证来限制用户访问了。
A 创建允许访问互联网的全局组
在域控制器上打开“Active Directory用户和计算机”,如下图所示,在Users容器中选择新建组。
组的名称为Internet Access,组的类型为全局组。
如下图所示,点击完成结束组的创建。
我们只需将允许访问互联网的用户加入Internet Access即可,如下图所示。
B 创建允许访问互联网的用户集
在ISA服务器防火墙策略的工具箱中展开用户,如下图所示,选择“新建”。
启动用户集创建向导,为用户集取个名字。
在用户集中选择添加“Windows用户和组”,如下图所示。
我们将查找位置设为“整个目录”,对象名称输入“Internet Access”,如下图所示。
确定将Contoso.com域中的Internet Access组加入新创建的用户集。
完成用户集的创建。
C 修改访问规则
创建完用户集后,我们修改访问规则,ISA原先有一条访问规则允许内网用户任意访问,我们对规则进行修改,限制只有特定用户集的成员才可以访问外网。
在访问规则属性中切换到“用户”标签,如下图所示,删除“所有用户”集合。
点击添加,将“允许访问互联网的用户”加进来,如下图所示。
这样就相当于ISA服务器将访问互联网的权限赋予了Internet Access组,凡是加入组的用户都将继承到这个权限,他们通过ISA访问互联网时将不会遇到任何障碍,也不会被提示输入口令进行身份验证,您看,在域环境下用户的透明验证是不是真的很方便呢?
总结:限制用户访问外网是ISA管理员经常遇到的管理需求,一般情况下不是用IP就是靠身份验证,身份验证在域中实现易如反掌,在工作组中实现就要靠镜像账号了。