ISA
访问控制技巧
很多单位在使用 ISA2006 时,都希望用 ISA 对员工上网进行约束,今天我们就为大家介绍一些限制用户上网的技巧。由于在域和工作组环境下使用的方法有所不同,因此我们将内容分为两部分,一部分介绍在工作组环境下如何操作,另一部分则针对域环境。
我们从工作组开始介绍,在工作组环境下,控制用户上网大多采用两种手段, IP 地址或用户身份验证,多数管理员会倾向于利用 IP 控制。
工作组环境的实验拓扑如下图所示, Beijing 是 ISA2006 服务器, Perth 和 Istanbul 是工作组内的两台计算机。
一
利用
IP+Arp
静态绑定
工作组环境下进行身份验证并不方便,因此管理员一般会采用 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 用户和组”,如下图所示。
在用户集中添加 beijing/zhangqiang ,如下图所示。
创建完用户集,点击完成。
接下来我们要修改访问规则,只允许指定用户集访问外网。还是对那条允许内网用户任意访问的访问规则进行修改,这次不修改访问的源网络了,如下图所示,我们对源网络不进行任何限制。
这次限制的重点放在了用户上,在规则属性中切换到用户标签,将“所有用户”删除。
将“允许上网用户”添加进来,如下图所示。
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 就是靠身份验证,身份验证在域中实现易如反掌,在工作组中实现就要靠镜像账号了。