了解Windows Firewall的Profile

为了更好的保护用户系统的安全,抵御来自Internet和Intranet的各种安全威胁,伴随着Windows XP Service Pack 2,Windows Firewall服务被添加到Windows操作系统中。

缺省情况下,Windows Firewall处于运行状态,允许所有由本机主动发起的、对外的网络连接,并且屏蔽所有未被认可的、外来的网络连接请求。例如,我们可以从一台开启了Windows Firewall的Windows XP系统去Ping网络上的一台文件服务器,或是使用形如\\Servername\Share的UNC路径访问这台文件服务器的共享目录,因为从这个XP系统的角度来看,这个连接是由它主动发起的对外连接请求。然而,如果有另一台机器试图Ping这个XP系统,或是访问这个XP系统的共享目录,对这个XP系统来说,这个连接请求是对内的外来连接,缺省情况下,会被Windows Firewall屏蔽。

Windows Firewall有一系列的配置,最重要的是一个Exception列表,里面定义了防火墙所允许被外来请求访问的端口或者程序。配置还包括一些另外的设置,例如怎样的ICMP报文被允许通过。所有的配置组成一个Profile。

Windows XP系统的Windows Firewall有两个Profile,分别为Standard Profile和Domain Profile。任一时间,总是只有一个Profile的配置生效。简单来说,如果一台机器没有加入域,会使用Standard Profile。如果已经加入域,并且处于域环境内,就会使用Domain Profile。

在图形界面上,并不能直接看到两个Profile,也无法指定某一个Profile进行配置。如果使用了Domain Profile,会有提示(见下图)。在图形界面上所做的任何配置,都是针对当前活动的Profile。

我们来具体了解一下Windows Firewall确定加载哪一个Profile的技术细节,这个过程依赖于下面这个注册表键值:HKEY_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Group Policy\History\NetworkName

具体逻辑如下:

1. 如果系统通过DHCP Server获得IP地址,并且DHCP Server有分配Connection-Specific DNS Suffix:

系统在每次成功应用组策略后,会把Domain Name写入这个注册表键值。Windows Firewall服务启动时会读取这个注册表键值,并和当前DHCP Server分配的Connection-Specific DNS Suffix作比较。如果相同,就应用Domain Profile;如果不同,就应用Standard Profile。

2. 如果手工分配IP地址;或者是通过DHCP Server获得IP地址,但是DHCP Server没有分配Connection-Specific DNS Suffix:

系统在每次成功应用组策略后,会把当前系统获得的IP地址的网络地址写入这个注册表键值。Windows Firewall服务启动时会读取这个注册表键值,并和当前系统获得的IP地址的网络地址作比较。如果相同,就应用Domain Profile;如果不同,就应用Standard Profile。

除了在服务启动的时候进行判断之外,Windows Firewall在收到通过组策略分配的Profile的配置有更新时,也会按上述逻辑重新进行判断。

以上内容,也同样适用于Windows Server 2003。

 

本博文仅供参考,微软公司对其内容不作任何责任担保或权利赋予。