有这样一个问题:“我不知道该为Windows服务器选择什么防火墙”。事实上,人们经常就这个问题向我咨询,然而我自己也没能找到最好的答案。很多次,即便服务器处于硬件防火墙保护之内时,我仍然喜欢在服务器自身上安装额外的软件防护。因为有时候,我的服务器可能位于比较偏远的地方,没有硬件级防火墙来保护它们,这时我就得完全依赖于在服务器上安装软件来保证它们的安全。
听起来,这似乎比较简单。然而事实上,我一直在用足够的耐心等待着有一天能够找到完美的Windows防火墙,这样我就可以不用跟那些向我咨询的人解释为什么很多时候理想的选择是部署了Iptables的Linux系统。但是我想我的等待是徒劳的,很多时候我都以为我终于找到了最好的Windows防火墙解决方案,然而那只是我又一次失望的开始。
TCP/IP过滤器的速度的确非常快,但它的优点也仅局限于此,因为当你使用TCP/IP过滤器时,你肯定还需要添加其他层的保护。
IPSec是不错的,当你挑选出适用的规则、过滤条款后,你可以通过图形界面或者命令行界面来设置,但是无论是图形界面还是命令行界面都容易把人搞糊涂。最后,你终于配置完成,并成功让它运行起来――这时,你将会发现网络变慢了,因为IPSec过滤“包”的时候,它本身就能让网络变慢10%~15%。在这里顺便再说说其他令我憎恨IPSec的事情:它是以Windows事件的方式来记录日志的――当你想要观看你的防火墙日志的时候,你需要点击那些事件日志,然后找出你想要的东西――这已经足够让我放弃使用它了。
Internet Connection Firewall(ICF)在Windows Server 2003中稍微好一点,它有不错的性能,并且在规则方面有一定弹性。当Windows Server 2003 SP1来到以后,新的Windows防火墙将变得更好。Windows防火墙是个大的进步,而且它具备群组策略。不幸的是Windows防火墙不允许你针对发出端设置任何规则,此外,它还需要开启远程管理和通讯服务――这些都是我平时不需要的。
可能有人会问RAS怎么样呢?你可能注意到,它具备包过滤功能,并且事实上它还为其他工具提供了不错的API接口以便对过滤器进行配置。但是,这些过滤器无法控制底层协议,比如ICMP,所以实际上它没多大用处。
还有许多个人版防火墙可以非常好的运行于桌面系统,但是它们都无法达到服务器用户的需要。虽然在它们当中,某些产品明显超出同类产品的水平,但是所有个人版防火墙的共同的问题是:简单的记录工具、缓慢的执行效率,而最糟糕的是,大多数个人版防火墙在数据流通量非常大的时候都有可能造成系统蓝屏。
个人版防火墙的这些问题源自它们与Windows的结合性上。它们通过多种途径来截取信息包,而这也造成了它们的一些缺陷。某些个人版防火墙产品涉及到拦截系统内核信息,或改写硬件驱动的问题。由于这种工作方式,你最好祈祷它们的产品是稳定的,否则将经常看到蓝屏现象,你瞧,当流通量比较大的时候我们的确经常看到系统蓝屏。
另一个问题是,由于这些个人版防火墙的工作模式,所以它们通常会发生排斥,所以不要尝试同时在PC里安装两套个人版防火墙,服务器也是如此。否则,你可能会遇到一些问题。个人防火墙还不适合无人值守的服务器,因为大多数个人防火墙在拦截包的时候都会弹出一个对话框,让用户选择如何处理/操作。一些防火墙我还发现无法通过系统托盘图标顺利访问终端业务。
我最后一次以为已经找到了Windows防火墙的最好解决方案是在我尝试给Windows服务器安装ISA Server 2004的时候。让我惊奇的是,它运行得非常好。它的功能非常完善,在防护范围方面跟个人版差不多,但它运行更稳定。我发现它只有一个问题:ISA Server 2004的许可授权的价格比服务器本身还要贵。这使得它很难被用户接受。
我现在该怎么办?我觉得我如果自己花钱购买一个小型硬件级防火墙来保护我的服务器――仅仅因为我有时要离开它一小段时间――那实在是非常疯狂的事情。
不是所有的希望都破灭了,至少,微软正在努力打造一个新的过滤平台WFP,在不久即将来到的“长角(Longhorn)”系统上。该版本的实际发布日期可能是在未来的一、两年里。WFP是一个集成包过滤技术于操作系统之内的解决方案。
未来,第三方厂商的防火墙很可能只是简单的接入到WFP体系中,并提供配置规则的功能而已。WFP计划支持新TCP/IP协议的多个层,并且可以在通信流被解析之前就进行过滤。WFP甚至还支持IPv6。WFP听起来不错,但是它仍然无法在今天就帮助我们,它离我们还有些距离。并且,它是否有效并稳定还需要我们在实际使用中观察。
你可能认为答案过于简单了,当然不。这些仍然让我们感到适当的惊讶。目前,Windows服务器防火墙完美的解决方案是不存在的。