ISA Server 的故障排除工具
10.1.1.6 网络监视器
网络监视器或Netmon是用来捕获与显示Windows2000从局域网接收的帧内容的工具。为了简化网络通信分析,网络监视器分化组合了40个常用的网络协议。这意味对大多数网络通信而言,网络监视器实际上显示了与网络会话相关的所有信息,包括源和目的端口和地址、服务器响应、有效通信等。
下面是来自网络监视器跟踪文件或捕获的帧内容示例:
Network Monitor trace Wed 03/07/2001 08:55:17 AM Capture1.TXT
Frame: Base Frame Properties
ETHERNET:ETYPE=Ox0800:protoco:IP:DOD Internet Protoco
IP:IP=0xAD6;Proto=TCP;Len:327
TCP:AP...,len:287.Seq:3184161250.3184161537,ack:4040781620,win:17520,src:1225 dst:80
HTTP:GET Request (from client using port 1225).
对于显示的每一幅帧,它所包含的封装协议按照从帧的外部到内部,或者从联网的角度看,从最低层向上的顺序排列。单击每一行的 号,可以显示给定协议的更多信息。第1行,称为Frame,是网络监视器添加的介绍所捕获的帧。第2行显示将帧放到网络上的数据链路层协议(在此例中,为Ethernet)。此类协议代表了此帧中最低层协议,并与OSI模型的第2层对应。接下来是网络层协议或者第3层,此例中是IP协议。接下来是传输层协议,或者是第4层,在给定的帧中是TCP协议。最后,在此例中,HTTP是帧里的最高层协议。
每一个协议层都包含与当前连接或传输相关的信息。例如,在TCP行中,src和dst参数表示与帧或数据包相关的TCP连接的源端口和目的端口。在此数据包中,源端口是客户端的TCP端口1225,目的端口的TCP端口80。通过查看网络监视器里捕获的帧中的TCP或UDP行,就会发现网络通信的源和目的。这对于防火墙配置来说是个必不可少的工具。
另外,通过创建网络活动跟踪,可以分析网络通信,断定网络问题的来源,例如,假设用户抱怨通过VPN连接登录延迟。运行网络监视器捕获之后,跟踪就可以显示L2TP和PPTP在登录期间的通信流量。把LocaISA VPN向导配置连接到远程网络时,默认情况下使用L2TP。L2TP不可用时,则使用PPTP。如果L2TP在远程VPN服务器上不可用,则您的用户通过这两种协议连接时,就会遇到登录延迟问题。使用网络监视器就能发现L2TP什么时候不可用。这样,可以把ISA Server配置为通过PPTP协议连接到远程VPN服务器,就可改进登录延迟问题。
即使在网络环境中不使用VPN,网络监视器捕获也可以显示那些网络通信不需要的、造成网速变缓慢的协议。例如,专用局域网连接就不需要隧道协议PPTP。
10.1.2 路由表
每个使用TCP/IP作为网络协议的计算机都有一个路由表,IP数据包从一个计算机到另一个计算机的路由取决于发送此数据包的计算机的路由表。
Route 命令行工具可以用来来查看和修改路由表。在命令行中输入route print,就会显示本地路由表。如图 10.2所示。
10.1.2.1 路由决定过程
要决定使用单个路由来转发一个IP数据包,IP协议将利用路由表进行如下处理:
1. 对路由表中的每一项路由,IP协议都在子网掩码与目的IP地址之间作位逻辑AND操作来确定网络是本地的还是远程的。IP协议把操作结果和网络目的比较看它们是否相匹配。如果匹配,IP协议则把此路由标记为与目的IP地址匹配的路由。
2. 在匹配的路由列表中,IP协议断定子网掩码位数最多的路由。该路由和目的IP地址匹配的位数最多。因此,它是此IP数据包最精确的路由。这个过程也即寻找最长或最接近匹配路由。
3. 如果发现了几个最接近的匹配路由,IP协议则使用度量值最低的路由。
4. 如果发现了几个最接近的匹配路由且度量值都为最低, IP协议则随机选择一个路由来使用。
路由决定过程的最终结果是在路由表中选择一个单个的路由。如果该过程未能找到合适的路由,IP协议则报告路由错误。
10.1.2.2 路由表故障排除
利用IP实用程序,如Ping、Tracert等,可以决定什么时候某些网段对网络的其余部分是不可访问的。在复杂网络中安装ISA Server时,可利用Route命令来修改路由表,并可为所有网段及配置可行的路由。例如,如果ISA Server在给定的(远程)子网上没有接口,就需要添加一个静态路由允许将网络通信转发到该个子网。(静态路由是指不能自动出现在路由表中的路由项)。
要添加静态路由,可以按如下方法使用Route实用程序。
route add 172.16.41.0 mask 255.255.255.0 172.16.40.1 metric 2
在此例中,Route add命令说明要使用掩码255.255.255.0到达子网172.16.41.0,必须使用网关172.16.40.1。注意,在此例中将度量值设为2,因为子网为2个跃点远。(度量值通常为到网络目的的跃点数量,或经过的路由器的数量)。在此例中,还需要在下游路由器添加静态路由,告知该处的数据包如何返回到172.16.40.0/24子网。
由于计算机中的路由表在每次重启时都自动重新建立,因此需要在路由表中,添加持久路由项,以使静态路由项能保留在路由表中。每次重建路由表时,持久项将都会自动插入路由表中。使用Route add –p命令可以添加持久项。
静态路由也可以通过windows2000中的Routing and Remote Access控制台来添加。用此方法添加时,所有的静态路由都作为持久项处理。
Ø 按照以下步骤在Routing and Remote Access中添加静态路由:
1. 单击Start,依次指向Programs | Administrative Tools ,单击Routing and Remote Access。
2. 双击IP Routing并展开该对象。
3. 右键单击Static Routes并选择New Static Route。
出现Static Route对话框。
4. 必要时,完成静态路由字段。
10.1.1.4 Netstat
Netstat是一个命令行工具。它可以用来排除安全和连接问题。在命令行中输入netstat,就可以检查ISA Server计算机的端口配置以及查看进出计算机的连接。
注意 TCP和UDP中使用端口来命名逻辑连接终端。端口号从0到65535,分成以下3种:熟知端口、注册端口、动态/或专用端口。熟知端口从0到1023,注册端口从1024到49151,动态/或专用端口从49151到65535。相关更多详细信息,请参考Web站点
http://www.idi.edu/in-notes/ assignments/port-numbers
上的端口数。
利用Netstat命令-a选项,可以接受到所有活动连接和侦听端口的输出信息。使用-n选项时,地址和端口号不转换成字符名称。这样就可将ISA Server计算机上的外部和内部IP的连接区别开来,并可确定在某个特殊接口上在任何给定时间哪个端口是开放的。可以通过比较-an和-a选项可以知道在哪个特殊端口上哪个服务是活动的。用-p TCP或-p UDP选项指定一个特殊的协议可以限定netstat -an的输出。例如,Netstat –an –p TCP命令将打印所有活动TCP连接和侦听端口的输出信息。Netstat –an –p UDP命令将只打印UDP端口状态的输出信息。
此外,了解端口配置可以检查连接问题、端口冲突和安全漏洞。例如,如果连接不到远程服务器,netstat输出信息可能确定这不是本地网络的问题,而是远程计算机拒绝连接请求。同时,每一次连接时,还可以确认本地机是否收到TCP重置或ICMP Port Unreachable数据包的信息。
最后,Netstat可以用来诊断对系统的攻击。例如, SYN攻击通过创建大量的半公开TCP连接从而使服务器瘫痪。在这种情况下,外部地址通常是一个伪地址,并且有以增量方式增加的端口号。因此,根据SYN攻击的这一显著特性,可以从下面的netstat输出信息里把它识别出来。
c:\>net stat -a
c:\>netstat -n -p TCP
Active Connections
Proto LocaAddress Foreign Address State
TCP 127.0.0.1:1030 127.0.0.1:1032 ESTABLISHED
TCP 127.0.0.1:1032 127.0.0.1:1030 ESTABLISHED
TCP 10.1.1.5:21 192.168.0.1:1025 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1026 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1027 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1028 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1029 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1030 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1031 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1032 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1033 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1034 SYN-RECEIVD
TCP 10.1.1.5:21 192.168.0.1:1035 SYN-RECEIVD
10.1.1.5 Telnet
在Telnet命令后面指定端口号,可以测试服务器是否通过此端口接收命令。例如,在运行Netstat -an -p TCP 命令后,发现端口3149是用来侦听传入请求的。然后,在命令行中输入telnet externa_ip_address 3149,可以确定ISA Server是否允许用户telnet到该端口。这里externa_ip_Address指分配给ISA Server计算机的公共IP地址。如果返回的是空白屏幕或者不是连接失败的响应输出,那么理论上外部用户直接输入服务命令就可以和位于该端口的服务通信。注意,通常此状态并不能说明存在安全漏洞,但如果给定服务存在安全弱点的话,黑客通常会用Telnet来开发这些弱点。
Telnet还可以用来断定计算机上的服务是否活动的。例如, 如果能Telnet ISA Server计算机的端口25,说明SMTP服务正在运行,且对外部用户是可访问的。如果要阻止外部用户访问SMTP服务,您可以选择来改正该情形。您可以通过关掉此项服务,可以验证启动了ISA Server上的数据包过滤作用,可以且/或确保ISA Server上没有启动允许入站通信通过端口25的IP数据数据包筛选器。另一方面,如果要发布服务器并测试外部访问,您可能想Telnet连接到服务的端口,来看它是否接受连接。例如,如果在ISA Server计算机的端口9999发布Web服务器,可以输入telnet externa_ip_Address 9999来确定能连接到该端口。
10.2 ISA Server故障排除策略
系统方法是成功排除故障的必要条件。当遇到意外的ISA Server错误时,可以从辨别错误是基于用户的还是基于数据包的入手进行故障排除。本节为两种类型的连接问题提供了故障排除策略。
本节学习目标
排除基于用户的访问问题。
排除基于数据包的访问问题。
排除ISA Server里VPN连接的故障。
估计学习时间:30分钟
10.2.1 用户访问故障排除
当用户账户访问被中断或者不可用时,可能是由于用户安全要求过于严格、规则配置不正确、身份验证方法不够全面等造成的。出现此类情况时,Ping,Tracert等工具就有用武之地了。
要排除基于用户的访问问题,首先检查访问策略规则。通过已配置的访问策略规则,确认无法建立网络连接的用户已经被许可拥有连接站点,内容组和协议的权限。
如果所配置的规则不能成功应用到用户会话中去,确认阵列属性配置为向未认证用户要求身份证明。同时注意,如果创建一个允许类型的访问政策并应用到指定的用户和组上,会要求用户会话通过ISA Server身份验证。另一方面,如果要所有的Web会话保持匿名时,对Web会话的访问受到拒绝,那么确定阵列属性不要求匿名用户进行身份验证。另外,删除所有应用到指定Win2000用户和组上的允许类型的站点和内容规则或协议规则。
身份验证
在阵列属性中,对身份验证方法的选择将影响到用户的连接能力。每种身份验证方法是专为某种网络环境设计的。如果在网络配置中选择了不兼容的身份验证方法,或者是方法配置不正确,用户将不能访问ISA Server计算机和网络。
例如,阵列的默认身份验证模式是集成的Windows身份验证。但此方法不能验证运行非Windows操作系统的客户机。如果要在ISA Server中为此类客户提供验证的访问服务,则必须把阵列属性配置为使用其他的身份验证方法。同样,集成的Windows身份验证与Netscape也不兼容,因为Netscape不能传递NTLM格式的用户证书。它的另一个限制是依靠Kerberos V5身份验证协议或它自己的质询/响应身份验证协议,然而在直通式身份验证方案中,如图 10.3所示,ISA Server不支持Kerberos V5身份验证协议,因为Kerberos V5要求客户机能识别验证身份的服务器。
在ISA Server中,可选的身份验证方法有Basic、Digest、Client Certificate等。Basic身份验证与所有客户类型都兼容,然而,因为此方法是以明码而不加密的格式传递用户名和密码的,它的安全性就不够了。Digest身份验证仅能在Windows2000域中使用,密码传递采用明码但加密的文本进
行。Client Certificate身份验证使用SSL通道来验证。它需要在ISA Server 计算机上的Web代理服务证书库中安装客户证书,且证书应该映射到适当的用户账户。ISA Server只在SSL桥接配置时提供客户证书。
10.2.2 基于数据包的访问故障排除
当所有用户都不能访问网络时,或基于IP的实用程序如Ping、Tracert操作失败时,可以断定为基于数据包的访问问题。
在ISA Server中,要排除基于数据包的访问故障,先尽可能地简化网络配置,形成一个测试 环境。
Ø 建立网络故障排除配置
1. 启动数据包过滤,创建一个自定义的数据包筛选器以允许任何IP协议都能传入、传出。
2. 创建一个协议规则,允许任何请求的IP通信,确定已有一个站点和内容规则来允许访问所有站点和内容组。
3. 将所有程序筛选器和路由规则恢复成默认设置。
4. 验证已将本地地址表定义在ISA Server内部客户范围内。
5. 在 IP Packet Filters Properties对话框中,启动IP Routing。
注意 IP Routing选项为有辅助连接的协议提供路由能力。此设置对边界网络配置尤为重要。可以在ISA Management 的IP Packet Filters Properties对话框中或Routing and Remote Access 控制台中,启动IP路由选项。
6. 在 ISA Server计算机上,确保没有为内部接口定义默认的网关。不过,确保外部接口上指定了合适的默认网关。
7. 在试图建立访问连接的客户端上,禁用防火墙客户端软件,并将 ISA Server指定为默认网关。
一旦以这种简化的方式配置了 ISA Server,重启ISA Server服务。如果仍然不能访问网络,那么重启ISA Server计算机。如果这还不能解决问题,那么可能不是ISA Server配置的问题。这时,应该执行网络故障排除。用网络监视器跟踪并需要检查DNS、路由表、报告、日志等。
如果在这种简化的模式下能访问Internet,那么再一项一项地将网络单元导入,判断问题的原因。例如,如果能在一个给定的客户端上访问Internet,就可以试着从该计算机上使用指定的Internet程序。如果遇到问题,可以认为要么是应用程序没有正确配置为把ISA Server作为代理服务器使用,要么就是该程序不能使用代理服务器。对于不能使用代理服务器的程序,必须将客户机配置成安全网络地址转换客户端或者是运行防火墙客户端软件。在重新配置客户机以后,注意其行为上的变化。可以认为自动发现特性配置不正确。这样出现问题不断解决,直到为特定的配置添加了所有所需的网络组件。
VPN网络考虑事项
在VPN网络中,故障排除也从上述建立简化网络环境入手。如果已运行了新建VPN向导,应当先证实已运行了Routing and Remote Access服务。然后,确保已将客户机配置成安全网络地址转换客户端,而非防火墙客户端。
此外,还需要证实LocaISA Server VPN Configuration向导已经在Routing and Remote Access中创建了适当的请求拨号接口。可在Routing Interfaces节点对此进行检查,如图 10.4所示。
在此之后,确认为VPN连接选择的每一个身份验证协议都创建了2个IP数据数据包筛选器。例如,如果VPN网络配置为使用L2TP或PPTP,则LocaISA Server VPN Configuration向导应该创建并启动4个IP数据数据包筛选器。(对于L2TP,配置向导为端口500和1701创建自定义的常规筛选器。对于PPTP,配置向导为PPTP呼叫和PPTP接收创建预定义的筛选器)。