最新服务器操作系统Windows Server 2008已经发布,在这款微软所宣称的“史上安全性最强”的服务器操作系统中,新增了很多安全方面的设计和功能,其中它的防火墙也有了重大的改进,不过对于服务器操作系统来说,系统自带的普通防火墙显然功能过于简陋,我们今天介绍的是它的高级安全Windows防火墙,这是一款让Windows Server 2008的安全性大幅提高的一个利器。
了解高级安全Windows防火墙
在“深层防御”体系中,网络防火墙处于周边层,而Windows防火墙处于主机层面。和Windows XP和Windows 2003的防火墙一样,Windows Server 2008的防火墙也是一款基于主机的状态防火墙,它结合了主机防火墙和IPSec,可以对穿过网络边界防火墙和发自企业内部的网络攻击进行防护,可以说基于主机的防火墙是网络边界防火墙的一个有益的补充。
与以前Windows版本中的防火墙相比,Windows Server 2008中的高级安全防火墙(WFAS)有了较大的改进,首先它支持双向保护,可以对出站、入站通信进行过滤。
其次它将Windows防火墙功能和Internet 协议安全(IPSec)集成到一个控制台中。使用这些高级选项可以按照环境所需的方式配置密钥交换、数据保护(完整性和加密)以及身份验证设置。
而且WFAS还可以实现更高级的规则配置,你可以针对Windows Server上的各种对象创建防火墙规则,配置防火墙规则以确定阻止还是允许流量通过具有高级安全性的Windows防火墙。
传入数据包到达计算机时,具有高级安全性的Windows防火墙检查该数据包,并确定它是否符合防火墙规则中指定的标准。如果数据包与规则中的标准匹配,则具有高级安全性的Windows防火墙执行规则中指定的操作,即阻止连接或允许连接。如果数据包与规则中的标准不匹配,则具有高级安全性的Windows防火墙丢弃该数据包,并在防火墙日志文件中创建条目(如果启用了日志记录)。
对规则进行配置时,可以从各种标准中进行选择:例如应用程序名称、系统服务名称、TCP端口、UDP端口、本地IP地址、远程IP地址、配置文件、接口类型(如网络适配器)、用户、用户组、计算机、计算机组、协议、ICMP类型等。规则中的标准添加在一起;添加的标准越多,具有高级安全性的Windows防火墙匹配传入流量就越精细。
我们可以通过多种方式来配置Windows Server 2008防火墙和IPSec的设置和选项,下面让我们具体看一下如何来配置Window Server 2008的这款高级防火墙。
使用高级安全Windows防火墙管理单元管理防火墙
这种方式可以让你在一个界面中同时配置防火墙设置和IPSec设置,还可以在监视节点中查看当前应用的策略、规则和其它信息。
从启动菜单的管理工具中找到高级安全Windows防火墙,点击打开MMC管理单元。
从以上界面中我们可以看到,Windows 2008的高级安全Windows防火墙使用出站和入站两组规则来配置其如何响应传入和传出的流量;通过连接安全规则来确定如何保护计算机和其它计算机之间的流量。而且可以监视防火墙活动和规则。
下面我们来通过实际例子查看一下如何配置这几个规则。
首先从入站规则开始,假如我们在Windows Server 2008上安装了一个Apache Web服务器,默认情况下,从远端是无法访问这个服务器的,因为在入站规则中没有配置来确认对这些流量“放行”,下面我们就为它增加一条规则。
打开高级安全Windows防火墙,点击入站规则后从右边的入站规则列表中我们可以看到Windows Server 2008自带的一些安全规则,因为Apache是一款第三方应用软件,所以我们需要通过右边操作区的【新规则】来新建一条。
在这儿可以看到,我们可以基于具体的程序、端口、预定义或自定义来创建入站规则,其中每个类型的步骤会有细微的差别。在我们这个例子中,我们选择【程序】类型,点击下一步接下来选择具体的程序路径。
第三步指定对符合条件的流量进行什么操作,我们这儿当然是允许连接了,接下来选择应用规则的配置文件和为规则指定名称后,这条规则就创建完了,从入站规则列表中可以看到你创建的规则了。现在就可以正常从远程访问你的Apache服务器了,如果要对这个已经创建的规则进行修改等操作,可以在选中规则后,从右边的操作区域进行操作。
点击【属性】按钮,会弹出下图窗口,在这儿可以对规则进行更详细的修改,我们看到一条规则的可定制化属性比以前版本的规则属性要多很多。出站规则的配置与入站规则完全相同,笔者不再重复,下面我们来看一下连接安全规则。
连接安全包括在两台计算机开始通信之前对它们进行身份验证,并确保在两台计算机之间正在发送的信息的安全性。具有高级安全性的 Windows 防火墙包含了 Internet 协议安全 (IPSec) 技术,通过使用密钥交换、身份验证、数据完整性和数据加密(可选)来实现连接安全。
对于单个服务器来说,可以使用高级安全Windows防火墙管理控制单元来对防火墙进行设置,如果在你的企业网络中有大量计算机需要设置,这种方法就不再适合,应该找一种更高效的方法。
使用组策略来管理高级安全Windows防火墙
在一个使用活动目录(AD)的企业网络中,为了实现对大量计算机的集中管理,你可以使用组策略来应用高级安全Windows防火墙的配置。组策略提供了高级安全Windows防火墙的完全功能的访问,包括配置文件、防火墙规则和计算机安全连接规则。
实际上,在组策略管理控制台中为高级安全Windows防火墙配置组策略的时候是打开的同一个控制单元。值得注意的是,如果你使用组策略来在一个企业网络中配置高级安全Windows防火墙的话,本地系统管理员是无法修改这个规则的属性的。通过创建组策略对象,可以配置一个域中所有计算机使用相同的防火墙设置。这一部分内容比较复杂。
使用Netsh advfirewall命令行工具,虽然图形化配置界面比较简单直观,但是对于一些有经验的系统管理员来说,则往往更喜欢使用命令行方式来完成它们的配置工作,因为后者一旦熟练掌握的话,可以更灵活更准确更迅速的实现配置任务。
Netsh是可以用于配置网络组件设置的命令行工具。具有高级安全性的Windows防火墙提供netsh advfirewall工具,可以使用它配置具有高级安全性的Windows防火墙设置。使用netsh advfirewall可以创建脚本,以便自动同时为IPv4和IPv6流量配置一组具有高级安全性的Windows 防火墙设置。还可以使用netsh advfirewall命令显示具有高级安全性的Windows防火墙的配置和状态。
Netsh advfirewall的命令非常多,今天我们选择你必须掌握的几个最常见的命令介绍给大家。
1、help命令(或“?”)
这个命令虽然简单,但这却可能是最有用的命令。任何时候当你键入“?”命令的时候,你会看到和上下文相关的所有选项。
2、consec(连接安全规则)命令
这个连接规则可以让你创建两个系统之间的IPSEC VPN。换句话说,consec规则能够让你加强通过防火墙的通信的安全性,而不仅仅是限制或过滤它。
这个命令会将你带入到连接安全配置模式,如下所示:
Netsh advfirewall>consec
Netsh advfirewall consec>
现在如果你键入“?”命令的话,你将会在netsh advfirewall consec中看到六个不同的命令。
从这儿你可以看到你可以通过以下命令来修改安全规则:
此上下文中的命令:
add命令可以让你添加新连接安全规则;
delete命令让你删除所有匹配的连接安全规则;
dump命令显示一个配置脚本;
help可以显示命令列表。
set命令让你为现有规则的属性设置新值。
show命令
要想查看防火墙现在的状况,你将必须使用这个show命令,再其下提供三个不同的命令可用。
Show alias为你列出所有定义的别名;
show helper列出所有顶层帮助者;
Show mode命令可以钢珠你显示防火墙是在线还是离线。
3、Export命令
这个命令可以让你导出防火墙当前的所有配置到一个文件中。这个命令非常有用,因为你可以备份所有的配置到文件中,如果你对已经作出的配置不满意的话,可以随时使用这个文件来恢复到修改前的状态。
以下是一个应用示例:
netsh advfirewall export “c:\advfirewall.wfw”
4、Firewall命令
使用这个命令你可以增加新的入站和出站规则到你的防火墙中。它还可以让你修改防火墙中的规则。
在firewall上下文命令中,你会看到四个重要的命令,分别是:
Add命令让你增加入站和出站规则;
Delete命令让你删除一条规则;
Set命令为现有规则的属性设置新值;
Show命令将显示一个指定的防火墙规则。
以下是增加和删除一个防火墙规则的示例:
增加一个针对messenger.exe的入站规则
netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\programfiles\messenger\msmsgs.exe” action=allow
删除针对本地21端口的所有入站规则:
netsh advfirewall firewall delete name rule name=all protocol=tcp localport=21
5、Import命令
Import命令让你可以从一个文件中导入防火墙的配置。这个命令可以让你把之前你使用export命令导出的防火墙配置再恢复回去。示例如下:
Netsh advfirewall import “c:\advfirewall.wfw”
6、Reset
这个命令让你重新设置防火墙策略到默认策略状态。使用这个命令的时候务必谨慎,因为一旦你键入这个命令并按下回车后,它将不再让你确认是否真要重设,直接恢复防火墙的策略。
示例命令如下:
Netsh advfirewall reset
7、Set命令
set命令将允许你修改防火墙的不同设置状态。相关的上下文命令有六个。
set allprofiles让你修改所有配置文件中的属性。
set currentprofile 让你只修改活动配置文件中的属性。
set domainprofile让你修改域配置文件中的属性。
set global让你修改防火墙的全局属性。
set privateprofile让你修改专用配置文件中的属性。
set publicprofile让你修改公用配置文件中的属性。
set store让你为当前交互式会话设置策略存储。
以下是使用set命令的一些例子:
让防火墙关闭所有配置文件:
netsh advfirewall set allprofiles state off
在所有配置文件中设置默认阻挡入站并允许出站通信:
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
在所有配置文件中打开远程管理:
netsh advfirewall set allprofiles settings remotemanagement enable
在所有配置文件中记录被断开的连接:
netsh advfirewall set allprofiles logging droppedconnections enable
8、Show命令
这个show命令将让你可以查看所有不同的配置文件中的设置和全局属性。