丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
防火墙基础本章目标在阅读完本章并完成练习之后,你将能够完成如下任务:
本书前两章讨论了网络安全面临的威胁以及防范这些威胁的方法。本章及后续两章将讨论安全设备。实现网络安全最基本的设备之一是防火墙。这在任何安全体系结构中都是一个关键部分。事实上,诸如代理服务器、入侵防御系统(IntrusionPreventionSystems,IPS)和入侵检测系统(IntrusionDetectionSystems,IDS)等都要与防火墙协同工作,并在一定程度上依赖于防火墙。大多数人对什么是防火墙都有基本的了解。本章中,我们将详细分析防火墙,让你对它们有更深入的理解。本章还将研究一些防火墙产品。本章将探讨防火墙的基本工作原理,为评估在给定情况下哪种防火墙最合适提供基础。
防火墙是处于你的计算机或你的内部网络与外部世界或Internet之间的一个屏障。有时也将它作为非军事区(DeMilitarizedZone,DMZ)后面的区域与面向公众的区域之间的分割。一个特定的防火墙实现可以使用下列一种或多种方法来提供屏障功能。
在最低限度上,防火墙会根据数据包的大小、源IP地址、协议和目标端口号等参数过滤入站的数据包。图3-1展示了防火墙概念的基本要素。
包过滤防火墙(Packetfilteringfirewall)是最简单并且通常是最便宜的防火墙类型。其他几种类型的防火墙具有各自不同的优点和缺点。防火墙的基本类型包括:
包过滤防火墙是最基本的防火墙类型。在包过滤防火墙中,每个入站的数据包都要被检查。只有那些与你设置的标准匹配的数据包才允许通过。许多操作系统,如Windows客户端系统(如Windows8和Windows10)及许多Linux发行版本,都在操作系统中包含了基本的包过滤软件。包过滤防火墙也被称为屏蔽防火墙(screeningfirewall)。它们可以基于数据包的大小、使用的协议、源IP地址以及其他许多参数来过滤数据包。一些路由器除了提供正常的路由功能外,还提供这种类型的防火墙保护。包过滤防火墙通过检查数据包的源地址、目标地址、源端口、目标端口以及协议类型来工作。它们依据这些因素以及为防火墙配置的使用规则,允许或拒绝数据包的通过。这类防火墙非常容易配置并且价格低廉。一些操作系统,如Windows10和Linux,有内置的包过滤能力。第4章将详细讨论具体的防火墙产品。这里仅给出一些常用包过滤产品的概要信息:
这些规则让防火墙决定什么流量允许进入以及阻塞什么流量。由于这种防火墙仅使用非常有限的系统资源,配置相对容易,并且价格低廉甚至免费,所以常常被采用。虽然它不是最安全的防火墙类型,但却是你很可能经常遇到的类型。实践中:包过滤规则不幸的是,在众多真实的网络中,存在很多不同的应用程序发送不同类型的数据包,所以设置正确的包过滤规则可能比你想象得更困难。在一个只有几台服务器运行少量服务的简单网络中(也许是Web服务器、FTP服务器和电子邮件服务器),配置包过滤规则确实很简单。但在其他情况下,会变得相当复杂。考虑一个地理上分散在不同区域的多个站点互连的广域网。当你为这个场景设置包过滤防火墙时,你需要清楚地知道在广域网连接的任何站点的任何计算机上、使用任何类型网络通信的所有应用程序和服务。如果没有考虑这些复杂性,可能会导致防火墙阻塞某些合法的网络服务。
状态包检查(StatefulPacketInspection,SPI)防火墙是对基本包过滤的改进。这种类型的防火墙会检查每个数据包,并且不仅基于对当前数据包的检查,而且还基于该会话中先前数据包推导出的数据来决定拒绝或允许访问。这意味着防火墙知道特定数据包被发送的上下文(context)。这使得此类防火墙不太容易受到ping泛洪和SYN泛洪攻击的影响,而且更不易被欺骗。SPI防火墙不易受到这类攻击的原因如下:
供参考:无状态包过滤状态包检查显然是首选的方法。随之而来的问题自然就是:无状态包过滤是什么?专业人士一般不使用这个术语,它就是指标准的包过滤方法。
正如你在本章后面以及第4章将要看到的,有越来越多的厂商正在生产混合防火墙。这是混合采用多种方法、而不是单一方法的防火墙。这种混合的方法往往比使用任何单一的方法都更有效。一种非常强大的防火墙方法是同时使用电路层网关和状态包过滤的设计。这样的配置把最好的防火墙方法组合到一个单元中。第4章将研究真实世界中一些混合解决方案的例子。
许多防火墙还支持使用黑名单或白名单技术。黑名单技术是一种给出禁止列表的安全方法,其中,用户可以访问除禁止列表之外的任何网站或Internet资源,该列表就叫黑名单。这是一种非常宽松的方法,因为用户仅被阻止访问特定列表上的站点。相反,白名单技术是给出允许列表的方法,用户被阻止访问除列表之外的任何网站或Internet资源,该列表即白名单。白名单方法限制更严格,但也更安全。黑名单方法的问题是,不可能知道和列出用户不应该访问的每个网站。无论黑名单多么彻底全面,都可能会允许到某些不应该访问网站的流量。白名单方法要安全得多,因为所有站点默认都是被阻止的(默认被阻止也称为隐式拒绝),除非它们在白名单上。
管理员必须能够评估防火墙的实现问题,以便能为他们的系统取得一个成功的安全解决方案。理解防火墙的类型意味着了解防火墙如何评估流量、决定允许什么和不允许什么。而理解防火墙的实现则意味着理解如何建立防火墙与所保护网络的关系。使用最广泛的防火墙实现包括:
在基于主机(有时称为基于网络主机)的防火墙场景中,防火墙是一个安装在使用现有操作系统的机器上的软件解决方案。这种场景中最重要的问题在于,不管防火墙解决方案有多么好,它都依赖于底层的操作系统。在这种场景中,安装防火墙的机器拥有安全加固的操作系统至关重要。加固操作系统是指对系统采取多种安全预防措施,包括:
双宿主机是一种运行在至少拥有两个网络接口的服务器上的防火墙。这是一种很古老的方法。目前大多数防火墙都是在实际的路由器上而不是在服务器上实现的。服务器充当网络和其相连接口之间的一个路由器。为此,服务器的自动路由功能被禁用,这意味着来自Internet的IP数据包不能直接路由到内部网络。管理员可以选择什么样的数据包可以路由以及如何路由。防火墙内部和外部的系统可以与双宿主机通信,但相互之间不能直接通信。图3-4展示了一个双宿主机防火墙。
双宿主机配置是基于网络主机的防火墙的简单扩展版本。这意味着,它也取决于底层操作系统的安全性。任何时候,一个防火墙无论运行在何种类型的服务器上,该服务器操作系统的安全性都比一般的服务器更关键。该种选择具有相对简单和便宜的优点。主要缺点是它对底层操作系统的依赖性。
屏蔽主机实际上是防火墙的组合。它组合使用了一个堡垒主机(bastionhost)和一个屏蔽路由器(screeningrouter)。这种组合创建了一个双防火墙解决方案,在过滤流量方面很有效。这两个防火墙可以是不同的类型。堡垒主机(见本节的供参考)可以是一个应用网关,而屏蔽路由器可以是包屏蔽器(反之亦然)。这种方法(如图3-5所示)拥有两种类型防火墙的优点,并且在概念上与双宿主机相似。
有多种商用防火墙产品可供选择。很多软件厂商都提供基本的包过滤解决方案。主要的防病毒软件厂商(包括本章前面提到的那些厂商)经常提供防火墙软件作为他们防毒软件的捆绑选项。其他公司,如ZoneLabs,则销售防火墙和入侵检测软件。诸如Cisco这样的路由器和交换机主要制造商也提供防火墙产品。一个特定系统需要的安全程度总是难以确定的。最低限度的建议是,在网络和Internet之间有一个包过滤防火墙或代理服务器,但这是最低限度。一般来说,管理员应该在预算允许范围内购买功能最强的防火墙。第4章将详细研究一些广泛使用的防火墙解决方案。但请记住,这仅仅是经验之谈。一种更好的方法是进行风险分析,第11章和第12章将介绍如何进行风险分析。
目前,有许多代理服务器解决方案。有些是商用产品,有些则是开源的。为了帮助你更好地理解代理服务器,我们将分析一款这样的产品。WinGate是一个价格低廉的商用产品,它还提供可供下载的免费试用版(www.wingate.com)。该产品具有代理服务器的所有标准特性,包括:
免费下载使它成为学生的理想选择。无须缴纳任何费用,就可通过使用30天试用版来学习代理服务器是如何工作的。该产品安装过程简单,并且有易于使用的图形用户界面。当然,你可以找到其他的代理服务器解决方案,而且其中很多相当不错。这里选择WinGate是因为它具有如下特点:
WinGate对学习之外的其他环境来说也是一个不错的解决方案。过滤某些网站的能力对很多公司来说都相当具有吸引力。公司减少系统资源滥用的一个方法就是阻塞他们不希望员工访问的网站。而扫描病毒的能力在任何环境下也都很有价值。
对许多机构来说,代理服务器已经被一种称为网络地址转换(NetworkAddressTranslation,NAT)的比较新的技术所取代。如今所谓的代理服务器已经不再做它们最初要做的事情了(即,将私有IP地址转换为公有IP地址)。首先,NAT转换内部地址和外部地址,以允许内网的计算机和外部计算机之间的通信。外部只能看到运行NAT的机器的地址(通常是防火墙)。从这个角度来看,它的功能与代理服务器完全一样。NAT还提供重要的安全性,因为在默认情况下,它只允许从内部网络上发起的连接。这意味着内部网络的计算机可以连接到外部Web服务器,但外部计算机不能连接到内部网络上的Web服务器。你可以通过入站映射(inboundmapping)让外部世界使用某些内部服务器。该映射将某些熟知的TCP端口(如HTTP的80端口、FTP的21端口等)映射到特定的内部地址,从而允许外部世界访问内部的FTP或网站等服务。然而,这种入站映射必须明确地配置,默认情况下是没有的。正如你将在后续章节中看到的,NAT常被作为另一个产品的一部分提供,例如作为防火墙的一部分。不像代理服务器,NAT不太可能作为独立的产品出现。第4章将展示几种包含网络地址转换功能的防火墙解决方案。
对任何网络来说,在网络与外部世界之间部署防火墙和NAT绝对很关键。有多种防火墙类型和实现可供选择。有些易于实现并且价格低廉。另一些可能需要更多资源、难以配置,或价格昂贵。一个机构应该使用其环境允许的最安全的防火墙。对于某些防火墙,特定厂商的培训对正确配置防火墙来说是必不可少的。配置不好的防火墙与根本没有防火墙可能一样,都是安全隐患。本章我们研究了各种类型的防火墙(包过滤、应用网关、电路层网关和状态包检查)以及它们的实现(基于网络主机、基于路由器、双宿主机和屏蔽主机)。理解防火墙的工作原理,对于根据网络安全需求选择合适的解决方案来说至关重要。
1.下列哪项是四种基本的防火墙类型?
A.屏蔽、堡垒、双宿、电路层B.应用网关、堡垒、双宿,屏蔽C.包过滤、应用网关、电路层、状态包检查D.状态包检查、网关、堡垒、屏蔽2.哪种类型的防火墙与客户端之间创建一个私有的虚拟连接?
A.堡垒B.双宿C.应用网关D.电路层网关3.哪种类型的防火墙被认为是最安全的防火墙?
A.双宿B.状态包检查C.电路层网关D.包屏蔽4.包过滤防火墙必须设置的四个规则是什么?
A.屏蔽网关B.状态包检查C.双宿D.应用网关6.为什么代理网关可能易于受到泛洪攻击?
A.它没有用户认证B.它阻塞了Web流量C.它需要客户端的配置D.它太贵8.为什么SPI防火墙不易受到欺骗攻击?
A.它检查所有数据包的源IPB.它自动阻塞伪装的数据包C.它要求用户认证D.它要求客户端应用程序认证9.为什么SPI防火墙对泛洪攻击具有更强的抵抗能力?
A.它自动阻塞来自单个IP的大流量B.它要求用户认证C.它根据先前数据包的上下文来检查数据包D.它检查所有数据包的目标IP10.在基于网络主机的配置中最大的危险是什么?
A.SYN泛洪攻击B.ping泛洪攻击C.IP欺骗D.操作系统的安全缺陷11.下列哪项是基于网络主机配置的优势?
A.它对IP欺骗有抵抗力B.它便宜或免费C.它更安全D.它要求用户认证12.下列哪一个可以在交付时预先配置?
A.状态包检查防火墙B.基于网络主机的防火墙C.基于路由器的防火墙D.双宿防火墙13.下列哪种解决方案实际上是防火墙的组合?
A.屏蔽防火墙B.基于路由器的防火墙C.双宿型防火墙D.堡垒主机防火墙14.下列哪项是IT安全人员的日常工作?
A.通过尝试ping泛洪攻击测试防火墙B.审查防火墙日志C.重新启动防火墙D.物理地检查防火墙15.隐藏内部IP地址的设备称为什么?
A.屏蔽主机B.堡垒防火墙C.代理服务器D.双宿主机16.NAT最重要的安全优点是什么?
A.它阻止入站的ICMP数据包B.它隐藏内部网络地址C.默认情况下,它阻塞所有ICMP数据包D.默认情况下,它只允许出站连接3.7.2练习题不要使用实际系统做实验室。下面所有的练习中,你应该只使用专门用于实验目的的实验室计算机。不要在实际系统上进行这些实验练习。练习3.1打开Windows防火墙注意:这个练习需要使用安装了Windows7、8或10的机器。
1.点击“Start”(开始),选择“Settings”(设置),然后点击“controlpanel”(控制面板)。或者在搜索框中输入“controlpanel”(控制面板)。
2.单击“SystemsandSecurity”(系统及安全)。
3.单击“WindowsFirewall”(Windows防火墙)。在该界面上,你可以启用或关闭防火墙,并且配置防火墙的规则。
练习3.2Linux防火墙注意:这个练习需要访问一台Linux机器。考虑到Linux有各种发行版本,这里不可能为所有版本都列出步骤说明。
2.使用文档中给出的指令打开并配置你的Linux防火墙。
练习3.3免费的防火墙有很多商用防火墙解决方案,但也有免费的解决方案。本练习中你应该完成如下任务:
2.下载并安装防火墙。
3.配置防火墙。
1.下载你选定的代理服务器。
2.安装它。
3.根据厂商的规范说明配置它。
项目3.1Cisco防火墙使用Web资源或你可以访问的文档,查找思科的CiscoFirepowerNGFW的详细说明。判断它是什么类型的防火墙以及它是基于什么实现的,还要注意它的任何具体的优点或缺点。
项目3.3Windows10使用Web资源或你可以访问的文档,查找Windows10防火墙的详细说明。确定它是什么类型的防火墙以及它是基于什么实现的,还要注意它的任何具体的优点或缺点。