有读者提问:你能解释一下硬件防火墙与软件防火墙有什么区别吗?据我所知,几乎所有的路由器都随带内置防火墙,是不是说我确实也需要在自己的个人电脑上安装防火墙软件?
答复如下:在典型的家庭办公室环境下,硬件防火墙和软件防火墙可以执行互为补充的功能;结合使用可以提供比单独使用更有力的保护。
先来说说硬件防火墙。
硬件防火墙很重要,因为它们提供了第一道防线,可以抵御来自外界的几种常见类型的攻击。另外,它们一般几乎不用什么配置就能起到很好的效果,可以保护本地网络上的每台机器。
典型宽带路由器中的硬件防火墙使用一项名为数据包过滤的技术,这项技术可以分析数据包报头,确定其源地址和目的地址。这些信息与一组预先定义的规则及/或用户定义的规则进行比对,确定该数据包是不是合法的,因而再确定是允许进入还是拒之门外。
一种更先进的技术名为状态数据包检测(SPI),它会检查数据包的另外特点,比如数据包的性质和实际来源(也就是说该数据来自互联网还是来自本地网络)、入站流量是不是现有出站连接(如网页请求)的响应。
简而言之,宽带路由器中的硬件防火墙主要负责阻止外面的不良流量进入。这种防火墙的局限性在于,它通常把从本地网络传送到互联网的各种流量也当作是安全的,这有时候是个问题。
不妨考虑这种情形:你打开了一封电子邮件,或者访问一个网站,里面含有一个隐藏的恶意程序,目的在于偷偷把自己植入到你的机器上(或者骗你安装它),然后通过互联网把信息发送出去–此举可能是为了窃取你的个人数据,也可能是将你的机器当作分布式拒绝服务(DDoS)攻击的僵尸机器。目前这是一种最常见的感染方法。
由于这类程序生成的流量貌似合法(毕竟它来自你的网络内部),一般会被允许离开网络。如果硬件防火墙经配置后,可以阻止经由恶意程序使用的某个或某些TCP/IP端口传输的出站流量,就可以阻止恶意流量;但是考虑到可能使用的端口有65000多个,无法确信这种性质的程序可能会使用哪些端口,所以阻止合适端口的可能性就微乎其微。
此外,阻止端口还阻止了在你的任何联网个人电脑上运行的合法程序使用这些端口。比如说,如果硬件防火墙阻止了旨在从你的机器生成和发送垃圾电子邮件的某个恶意软件,同时也就阻止了使用微软Outlook或Mozilla Thunderbird的功能(因为它们都生成同一种流量:经由端口25传输的SMTP流量)。
再来说说软件防火墙的优点。
这时候软件防火墙的优点正好可以弥补硬件防火墙的不足。由于软件防火墙直接在计算机上运行,它势必能够了解关于网络流量的更多情况,而不是只了解使用哪个端口、流量去向哪里;它还知道哪个程序试图访问互联网,该程序是合法程序还是恶意程序(软件防火墙会查询定期更新的数据库,来确定这一点)。
根据这些信息,软件防火墙可以允许或禁止程序收发数据的功能。如果防火墙对于该程序的性质不太确定,就会提示用户进一步确认,之后才允许流量通过。
简而言之,软件防火墙能够更深入地检查恶意流量,及时拦截,以免它离开你的计算机。
软件防火墙的主要缺点在于,它们只能保护安装了软件防火墙的机器, 所以要用软件防火墙来保护多台计算机,必须购买多套软件防火墙(或多个许可证),安装到每一台机器上,并逐一配置。这样一来成本可能很高,管理起来也有难度,不过许多面向企业的防火墙软件的确提供了集中安装和管理的功能。
值得一提的是,Windows 7和Vista中的内置防火墙在默认情况下不会自动阻止出站流量,它们只会阻止入站流量。这是考虑使用第三方防火墙的原因之一,因为第三方防火墙在默认情况下一般就能处理入站流量和出站流量。(你得手动配置Windows防火墙来阻止出站流量,但对用户来说不是很方便。)
这里有一个好办法可以概括硬件防火墙与软件防火墙之间的区别。不妨把硬件防火墙当成是夜总会的看门人,他手持名单检查每个来者的身份,确保他们收到了邀请函。另一方面,软件防火墙就好比是安保人员,确保没有人偷偷溜进来,在里面搞些不适宜的活动,同时确保没人把什么东西偷偷带出去。