带你读《网络防御与安全对策:原理与实践(原书第3版)》之三:防火墙基础-阿里云开发者社区

开发者社区> 华章出版社> 正文

带你读《网络防御与安全对策:原理与实践(原书第3版)》之三:防火墙基础

简介: 本书全面介绍了网络防御和保护网络的方法,内容包括网络安全的基本知识、虚拟专用网络、物理安全和灾备、恶意软件防范以及防火墙和入侵检测系统,加密的基础知识,对网络的攻击、用于确保安全的设备和技术,安全策略的概貌如何评估网络安全,基于计算机的取证等。每一章的末尾都给出了多项选择题、练习、项目和一个案例研究。

点击查看第一章
点击查看第二章

第3章 

防火墙基础
本章目标
在阅读完本章并完成练习之后,你将能够完成如下任务:

  • 解释防火墙如何工作。
  • 评估防火墙解决方案。
  • 区分包过滤和状态包过滤。
  • 区分应用网关和电路层网关。
  • 理解基于主机的防火墙和基于路由器的防火墙。

3.1 引言

本书前两章讨论了网络安全面临的威胁以及防范这些威胁的方法。本章及后续两章将讨论安全设备。实现网络安全最基本的设备之一是防火墙。这在任何安全体系结构中都是一个关键部分。事实上,诸如代理服务器、入侵防御系统(Intrusion Prevention Systems,IPS)和入侵检测系统(Intrusion Detection Systems,IDS)等都要与防火墙协同工作,并在一定程度上依赖于防火墙。
大多数人对什么是防火墙都有基本的了解。本章中,我们将详细分析防火墙,让你对它们有更深入的理解。本章还将研究一些防火墙产品。
本章将探讨防火墙的基本工作原理,为评估在给定情况下哪种防火墙最合适提供基础。

3.2 什么是防火墙

防火墙是处于你的计算机或你的内部网络与外部世界或Internet之间的一个屏障。有时也将它作为非军事区(DeMilitarized Zone,DMZ)后面的区域与面向公众的区域之间的分割。一个特定的防火墙实现可以使用下列一种或多种方法来提供屏障功能。

  • 包过滤
  • 状态包过滤
  • 用户认证
  • 客户端应用认证

在最低限度上,防火墙会根据数据包的大小、源IP地址、协议和目标端口号等参数过滤入站的数据包。图3-1展示了防火墙概念的基本要素。

image.png

正如你可能已经知道的,Linux和Windows(包括从Windows XP 到Windows 10以及各个Server版本的每个Windows版本)都有一个简单的、内置在操作系统中的防火墙。诺顿(Norton)和McAfee都为单台PC提供个人防火墙解决方案。这些防火墙是针对单台机器的,对网络有更高级的解决方案。在一个机构的环境中,在你的网络和外部世界之间可能需要设置一个专用的防火墙。这可能是一个内置了防火墙功能的路由器,或者可能是一个专门运行防火墙软件的服务器。思科系统(Cisco Systems)是一家以高质量路由器和防火墙著称的公司,其多种路由器中都有内置的防火墙功能。有许多防火墙解决方案可供选择。选择防火墙是一项很重要的决定,本章将为你提供必要的基本技能,使你能为你的网络选择合适的防火墙。
供参考:家庭或小型办公室高速连接
随着有线电视、数字用户线(Digital Subscriber Line,DSL)和光纤服务(Fiber Optic Service,FiOS)用于家庭和小型办公室的连接日益普及,加强这些场所计算机系统的安全越来越受重视。这类设计通常称为小型办公室及家庭办公室(Small Office and Home Office, SOHO)设施。现在已经有用于高速Internet连接的、非常便宜的基于路由器的防火墙。消费者还可以购买带防火墙功能的、与DSL或电缆路由器分离的路由器,或内置电缆或DSL路由器功能的路由器。下述网站能提供更多有关信息:

  • Linksys: https://www.linksys.com/
  • 家庭PC防火墙指南(Home PC Firewall Guide): www.firewallguide.com
  • 宽带指南(Broadband Guide): www.firewallguide.com/broadband.htm

3.2.1 防火墙的类型

包过滤防火墙(Packet filtering firewall)是最简单并且通常是最便宜的防火墙类型。其他几种类型的防火墙具有各自不同的优点和缺点。防火墙的基本类型包括:

  • 包过滤(Packet filtering)
  • 应用网关(Application gateway)
  • 电路层网关(Circuit level gateway)
  • 状态包检查(Stateful packet inspection)

3.2.2 包过滤防火墙

包过滤防火墙是最基本的防火墙类型。在包过滤防火墙中,每个入站的数据包都要被检查。只有那些与你设置的标准匹配的数据包才允许通过。许多操作系统,如Windows客户端系统(如Windows 8和Windows 10)及许多Linux发行版本,都在操作系统中包含了基本的包过滤软件。包过滤防火墙也被称为屏蔽防火墙(screening firewall)。它们可以基于数据包的大小、使用的协议、源IP地址以及其他许多参数来过滤数据包。一些路由器除了提供正常的路由功能外,还提供这种类型的防火墙保护。
包过滤防火墙通过检查数据包的源地址、目标地址、源端口、目标端口以及协议类型来工作。它们依据这些因素以及为防火墙配置的使用规则,允许或拒绝数据包的通过。这类防火墙非常容易配置并且价格低廉。一些操作系统,如Windows 10和Linux,有内置的包过滤能力。第4章将详细讨论具体的防火墙产品。这里仅给出一些常用包过滤产品的概要信息:

  • Firestarter:这是Linux系统上的一个免费的包过滤应用程序,在www.fs-security. com网站提供。该软件安装在Linux机器上,可用作网络防火墙。
  • Avast Internet Security:该产品价格低廉,且仅适用于Windows系统。你可以在https://www.avast.com/en-us/f-firewall 上找到这个产品。
  • Zone Alarm Firewall:该产品价格合理,且效果良好。在https://www.zonealarm.com/software/firewall 上可以找到该产品的更多信息。
  • Comodo Firewall:这是一个在Windows客户端上运行的商用防火墙产品。它包括防火墙和防病毒功能。可以在https://personalfirewall.comodo.com/ 上找到更多关于该产品的信息。

屏蔽/包过滤防火墙解决方案存在几个缺点。一个缺点是,它们没有详细检查数据包或将其与先前的数据包进行比较,因此非常容易受到ping泛洪或SYN泛洪攻击的影响。它们也不提供任何用户认证。因为这种类型的防火墙只在数据包首部查找信息,所以没有关于数据包内容的信息。它们也不跟踪数据包,因此没有关于先前数据包的信息。所以,如果在短时间内成千上万个数据包来自同一IP地址,屏蔽主机不会注意到这个模式是不正常的。这种模式通常表示该IP地址正试图对网络执行DoS攻击。
要配置包过滤防火墙,只需建立适当的过滤规则即可。防火墙的规则集需要涵盖以下内容:

  • 允许什么类型的协议(FTP、SMTP、POP3等)
  • 允许什么源端口
  • 允许什么目标端口
  • 允许什么源IP地址(如果愿意,可以阻塞某些IP地址)

这些规则让防火墙决定什么流量允许进入以及阻塞什么流量。由于这种防火墙仅使用非常有限的系统资源,配置相对容易,并且价格低廉甚至免费,所以常常被采用。虽然它不是最安全的防火墙类型,但却是你很可能经常遇到的类型。
实践中:包过滤规则
不幸的是,在众多真实的网络中,存在很多不同的应用程序发送不同类型的数据包,所以设置正确的包过滤规则可能比你想象得更困难。在一个只有几台服务器运行少量服务的简单网络中(也许是Web服务器、FTP服务器和电子邮件服务器),配置包过滤规则确实很简单。但在其他情况下,会变得相当复杂。
考虑一个地理上分散在不同区域的多个站点互连的广域网。当你为这个场景设置包过滤防火墙时,你需要清楚地知道在广域网连接的任何站点的任何计算机上、使用任何类型网络通信的所有应用程序和服务。如果没有考虑这些复杂性,可能会导致防火墙阻塞某些合法的网络服务。

3.2.3 状态包检查

状态包检查(Stateful Packet Inspection,SPI)防火墙是对基本包过滤的改进。这种类型的防火墙会检查每个数据包,并且不仅基于对当前数据包的检查,而且还基于该会话中先前数据包推导出的数据来决定拒绝或允许访问。这意味着防火墙知道特定数据包被发送的上下文(context)。这使得此类防火墙不太容易受到ping泛洪和SYN泛洪攻击的影响,而且更不易被欺骗。SPI防火墙不易受到这类攻击的原因如下:

  • 它们可以识别出一个数据包是否是来自特定IP地址的、异常大的数据包流的一部分,从而判断是否有可能正在发生DoS攻击。
  • 它们可以识别数据包的源IP地址是否看似来自防火墙的内部,从而判断是否有IP欺骗正在发生。
  • 它们也可以考察数据包的实际内容,从而允许拥有某些非常高级的过滤能力。

SPI防火墙是包过滤防火墙的改进版。目前大多数优质的防火墙都使用状态包检查方法。如果有可能,这是为大多数系统推荐的防火墙类型。实际上,大多数家庭路由器都有使用状态包检查的选项。状态包检查这个名字来源于这样一个事实,即,除了检查数据包外,防火墙还检查数据包在整个IP会话中的状态。这意味着防火墙可以参考前面的数据包以及那些数据包的内容、源及目标地址。正如你可能猜测到的,SPI防火墙正变得越来越普遍。我们将在第4章介绍几个这类防火墙。下面列出了一些知名的产品:

  • SonicWall (www.sonicwall.com/ ):SonicWall是一个著名的防火墙产品厂商,它为不同规模的网络提供不同价格范围的多种SPI防火墙产品。
  • Linksys (www.linksys.com/ ):Linksys生产了许多使用SPI技术的小型办公室/家庭办公室防火墙路由器产品。这些产品非常便宜并且易于配置。
  • Cisco (www.cisco.com ):思科(Cisco)是一家非常著名并受到高度推崇的厂商,它提供许多不同类型的网络产品,包括使用SPI技术的基于路由器的防火墙。

供参考:无状态包过滤
状态包检查显然是首选的方法。随之而来的问题自然就是:无状态包过滤是什么?专业人士一般不使用这个术语,它就是指标准的包过滤方法。

3.2.4 应用网关

应用网关(也称为应用代理或应用层代理)是一个在防火墙上运行的程序。这种防火墙的名称来源于它的工作方式,即通过与各种类型的应用程序进行协商来允许其流量通过防火墙。在网络术语中,协商是指认证和验证过程。换言之,应用网关将检查客户端应用程序及其试图连接的服务器端应用程序,而不是查看该数据包使用的协议和端口,来决定特定客户端应用程序的流量是否允许通过防火墙。这与包过滤防火墙显著不同,包过滤防火墙检查数据包,对这些数据包是由什么应用程序发送的毫不知情。应用网关能让管理员指定仅允许访问某些特定类型的应用程序,如Web浏览器或FTP客户端。
当客户端程序(如Web浏览器)与目标服务(如Web服务器)建立连接时,它首先连接到应用网关或代理上。然后,客户端与代理服务器进行协商,以获得对目标服务的访问权限。实质上,代理代表客户建立与防火墙后面的目标服务器的连接,因而隐藏和保护了防火墙内部网络上的各个计算机。这个过程实际创建了两个连接,一个是客户端和代理服务器之间的连接,另一个是代理服务器和目标服务器之间的连接。
一旦建立了连接,应用网关就会全权决定转发哪些数据包。由于所有通信都是通过代理服务器进行的,所以防火墙后面的计算机得到了保护。
使用应用网关时,所支持的每种客户端程序都需要有一个唯一的程序来接收客户端应用程序的数据。这类防火墙允许单独的用户身份认证,这使得它们能非常有效地阻塞不想要的流量。然而,缺点是这类防火墙耗费大量的系统资源。认证客户端应用程序的过程比简单的包过滤要使用更多的内存和CPU时间。
供参考:唯一登录
请注意,对具有大量公共流量的网站(例如电子商务站点)来说,每个用户拥有一个唯一的登录可能不是个理想的解决方案。这类网站希望获取大量的流量,这些流量主要来自新客户,而网站的新访客没有登录ID或口令。让他们通过建立一个账号来访问你的网站,这很可能会将很多潜在客户拒之门外。但对于公司网络来说,这可能是个理想的解决方案。
应用网关也容易受到各种泛洪攻击(如SYN泛洪、ping泛洪等),主要原因有两个。第一个潜在的原因可能是,应用程序需要额外的时间来协商认证请求。不要忘记,客户端应用程序和用户可能都需要进行认证。这比简单地基于某些参数的包过滤要花费更多时间。因此,大量的连接请求会淹没防火墙,阻止防火墙响应合法请求。应用网关更容易受到泛洪攻击的另一个原因是,一旦连接建立,它就不会再检查数据包。如果连接已经建立,就可以通过该连接向连接到的服务器(如Web服务器或电子邮件服务器)发送泛洪攻击。这种脆弱性可以通过用户认证得到一定程度的缓解。如果用户登录方法是安全的(使用适当的口令、加密传输等),那么通过应用网关使用合法连接进行泛洪攻击的可能性会减小。
第4章将讨论具体的防火墙实现,这里提供几种应用网关产品的简要概括:

3.2.5 电路层网关

电路层网关防火墙类似于应用网关,但更安全,通常在高端设备上实现。这类防火墙也使用用户认证,但它们是在访问过程的初期进行认证的。在应用网关中,首先检查客户端应用程序,查看是否应该授予访问权限,然后再对用户进行身份认证。而在电路层网关中,认证用户是第一步。在与路由器建立连接之前检查用户的登录ID和口令,并授予用户访问权限。这意味着每个人,无论是基于用户名还是基于IP地址,都必须在执行任何进一步通信之前进行验证。
一旦通过验证,并且在源和目标之间建立了连接,那么防火墙只需简单地在两个系统之间传递数据。在内部客户端与代理服务器之间存在一个虚拟的“电路”。客户端发出的访问Internet的请求通过这个电路到达代理服务器,代理服务器在改变IP地址之后将这些请求转发到Internet上。外部的用户只看到代理服务器的IP地址。返回的响应由代理服务器接收,并通过这个电路送回客户端。正是这个虚拟的电路使得电路层网关变得安全。与简单的包过滤防火墙和应用网关等其他选择相比,在客户端应用程序和防火墙之间的私有安全连接是更安全的解决方案。
虽然流量被允许通过,但外部系统永远看不到内部系统。应用网关和电路层网关之间的区别如图3-2所示。

image.png

虽然安全性很高,但这种方式可能不适合某些与普通公众的通信,如电子商务网站。这种类型的防火墙也很难配置,因为每个客户端必须设置成与防火墙有一个电路连接。
pfSense是一个开源的防火墙项目(https://www.pfsense.org/ )。该防火墙的源代码可以下载、编译并在基于网络主机的配置下运行。事实上,由于它是开源的而且可以进行修改,所以对那些拥有经验足够丰富的程序员的机构来说,pfSense是一个很有吸引力的选择。

3.2.6 混合防火墙

正如你在本章后面以及第4章将要看到的,有越来越多的厂商正在生产混合防火墙。这是混合采用多种方法、而不是单一方法的防火墙。这种混合的方法往往比使用任何单一的方法都更有效。
一种非常强大的防火墙方法是同时使用电路层网关和状态包过滤的设计。这样的配置把最好的防火墙方法组合到一个单元中。第4章将研究真实世界中一些混合解决方案的例子。

3.2.7 黑名单/白名单技术

许多防火墙还支持使用黑名单或白名单技术。黑名单技术是一种给出禁止列表的安全方法,其中,用户可以访问除禁止列表之外的任何网站或Internet资源,该列表就叫黑名单。这是一种非常宽松的方法,因为用户仅被阻止访问特定列表上的站点。
相反,白名单技术是给出允许列表的方法,用户被阻止访问除列表之外的任何网站或Internet资源,该列表即白名单。白名单方法限制更严格,但也更安全。黑名单方法的问题是,不可能知道和列出用户不应该访问的每个网站。无论黑名单多么彻底全面,都可能会允许到某些不应该访问网站的流量。白名单方法要安全得多,因为所有站点默认都是被阻止的(默认被阻止也称为隐式拒绝),除非它们在白名单上。

3.3 实现防火墙

管理员必须能够评估防火墙的实现问题,以便能为他们的系统取得一个成功的安全解决方案。理解防火墙的类型意味着了解防火墙如何评估流量、决定允许什么和不允许什么。而理解防火墙的实现则意味着理解如何建立防火墙与所保护网络的关系。使用最广泛的防火墙实现包括:

  • 基于网络主机(Network host-based)
  • 双宿主机(Dual-homed host)
  • 基于路由器的防火墙(Router-based firewall)
  • 屏蔽主机(Screened host)

3.3.1 基于网络主机

在基于主机(有时称为基于网络主机)的防火墙场景中,防火墙是一个安装在使用现有操作系统的机器上的软件解决方案。这种场景中最重要的问题在于,不管防火墙解决方案有多么好,它都依赖于底层的操作系统。在这种场景中,安装防火墙的机器拥有安全加固的操作系统至关重要。加固操作系统是指对系统采取多种安全预防措施,包括:

  • 确保所有的补丁已经更新
  • 卸载不需要的应用程序或实用程序
  • 关闭不使用的端口
  • 关闭不使用的服务

第8章将更深入地介绍操作系统的加固问题。
在基于网络主机的防火墙实现中,你将防火墙软件安装到现有服务器上。有时,服务器的操作系统可能会附带这样的软件。常常有管理员使用运行Linux系统的机器,配置其内置的防火墙,并把该服务器用作防火墙。该方案的主要优点是成本低。简单地将防火墙软件安装到现有的机器上,并把该机器用作防火墙,这要便宜得多。
实践中:DMZ
越来越多的机构选择使用DMZ(DeMilitarized Zone, DMZ)。一个DMZ是一个非军事化区。使用两个独立的防火墙可创建一个DMZ。其中,一个防火墙面对外部世界或Internet,另一个面对内部或企业网络。DMZ允许在面向Internet的服务和后端企业资源之间存在一层额外的保护。
典型情况下,Web服务器、电子邮件服务器和FTP服务器都位于DMZ区。域控制器、数据库服务器和文件服务器都位于企业网络内部。这意味着,如果黑客突破了第一道防火墙的安全防线,他也只能影响Web服务器或电子邮件服务器。他不能直接获取企业数据。要获取这些数据需要黑客突破另一道防火墙的安全防线。
不管你使用什么类型的防火墙,这种安排都是优选的方法。通常,管理员选择使用较弱和较便宜的防火墙放在DMZ外部,比如简单的包过滤防火墙。而使用更严格的防火墙放在DMZ内部一侧,如状态包过滤防火墙。如果在外部防火墙上使用入侵检测系统(将在第5章详细讨论),那么远在黑客能够成功突破内部防火墙之前,对外部防火墙的任何攻击很可能被检测到。这也是媒体上充斥着黑客击溃网站的故事,而黑客真正获得敏感数据的故事不太常见的一个原因。
现在许多路由器厂商都提供实现DMZ的单一设备。他们通过在一个设备中创建两个防火墙来实现这种方案,这样你就可以购买实现了整个DMZ功能的单一设备。路由器有一个端口用于外部连接(即Internet),另一个端口用于DMZ,而剩下的端口用于内部网络。图3-3展示了一个DMZ区。

image.png

3.3.2 双宿主机

双宿主机是一种运行在至少拥有两个网络接口的服务器上的防火墙。这是一种很古老的方法。目前大多数防火墙都是在实际的路由器上而不是在服务器上实现的。服务器充当网络和其相连接口之间的一个路由器。为此,服务器的自动路由功能被禁用,这意味着来自Internet的IP数据包不能直接路由到内部网络。管理员可以选择什么样的数据包可以路由以及如何路由。防火墙内部和外部的系统可以与双宿主机通信,但相互之间不能直接通信。
图3-4展示了一个双宿主机防火墙。

image.png

双宿主机配置是基于网络主机的防火墙的简单扩展版本。这意味着,它也取决于底层操作系统的安全性。任何时候,一个防火墙无论运行在何种类型的服务器上,该服务器操作系统的安全性都比一般的服务器更关键。
该种选择具有相对简单和便宜的优点。主要缺点是它对底层操作系统的依赖性。

3.3.3 基于路由器的防火墙

管理员可以在路由器上实现防火墙保护。事实上,目前即使是最简单、最低端的路由器,也都内置了某种类型的防火墙。在具有多层防护的大型网络中,这通常是第一层防护。尽管可以在路由器上实现各种类型的防火墙,但最常见的类型仍然是使用包过滤。家庭或小型办公室的宽带连接用户可以使用带包过滤防火墙功能的路由器,以取代宽带公司提供的基本路由器。
在很多情况下,这也是防火墙新手理想的解决方案。许多厂商提供基于路由器的防火墙,并根据客户的需求进行预先配置。客户可以把它安装在他的网络和外部Internet连接之间。此外,大多数知名品牌(Cisco、3COM等)都提供了关于其硬件的厂商专有培训和认证,从而使得能够相对容易地找到合格的管理员或培训现有员工。
实现基于路由器的防火墙的另一种有价值的方法是在网络的子部分之间使用防火墙。如果一个网络被划分成网段,每个网段都需要使用路由器连接到其他网段。在这种情况下,使用包含防火墙功能的路由器能显著提高安全性。如果网络的一个网段受到侵害,则网络的其余部分不一定被攻破。
或许基于路由器的防火墙的最大优点是它易于设置。在很多情况下,厂商甚至会为你配置防火墙,而你只需简单地插上它即可。目前,大多数的家庭路由器,如来自Linksys、Belkin或Netgear的路由器,都有内置防火墙。事实上,几乎所有高端的路由器都具备防火墙功能。

3.3.4 屏蔽主机

屏蔽主机实际上是防火墙的组合。它组合使用了一个堡垒主机(bastion host)和一个屏蔽路由器(screening router)。这种组合创建了一个双防火墙解决方案,在过滤流量方面很有效。这两个防火墙可以是不同的类型。堡垒主机(见本节的供参考)可以是一个应用网关,而屏蔽路由器可以是包屏蔽器(反之亦然)。这种方法(如图3-5所示)拥有两种类型防火墙的优点,并且在概念上与双宿主机相似。

image.png

屏蔽主机与双宿主机防火墙相比有一些明显的优点。与双宿主机防火墙不同,屏蔽主机只需要一个网络接口,并且在应用网关和路由器之间不需要单独的子网。这使得防火墙更灵活,但可能安全性会低一些,因为,它只依赖于一个网络接口,这意味着它可以被配置成将某些可信服务传递给防火墙的应用网关部分,并直接向网络内的服务器传递。
使用屏蔽主机时,最重要的关注点是它在本质上将两个防火墙结合成一个。因此,任何安全缺陷或错误配置都会影响两个防火墙。但当你使用DMZ时,物理上存在两个独立的防火墙,而一个安全缺陷传播到两个防火墙的可能性很低。
供参考:堡垒主机
堡垒主机是Internet和私有网络之间的单一接触点。它通常只运行有限数量的服务(私有网络绝对必需的服务),而没有其他服务。堡垒主机常常是处于网络和外部世界之间的一个包过滤防火墙。
除了这些防火墙配置之外,防火墙检查数据包的方法也不同。包过滤工作在OSI模型的网络层,它简单地基于协议、端口号、源地址和目标地址这样的标准来阻止某些数据包。例如,包过滤防火墙可能拒绝端口号为1024及以上的所有流量,或者它可能阻止所有使用tFTP协议的入站流量。当然,端口号属于传输层。对入站和出站流量的过滤可以决定什么信息可以进入或离开本地网络。
屏蔽路由器通过让你拒绝或允许来自堡垒主机的某些流量来增加安全性。这是流量的第一站,只有在屏蔽路由器允许的情况下才能继续传递。
实践中:最高安全性
需要最高安全级别的机构经常使用多个防火墙。网络的边界可能实际上有两个防火墙,也许是一个状态包检查防火墙和一个应用网关,一个接在另一个之后(顺序将决定它们如何配置)。这使得机构能够获得两种防火墙的优点。这种类型的配置不是那么普遍,但确实已被一些机构采用。
一种常见的多防火墙场景是使用屏蔽防火墙路由器(screened firewall routers)分割各个网段。网络仍有一个边界防火墙用于阻止入站流量,但它还用包过滤来分割每个网段。这样,如果一个攻击突破了边界防护,并不是所有的网段都会受到影响。
为了获得尽可能高级别的防火墙保护,理想的场景是使用双边界防火墙(dual-perimeter firewall),并在所有路由器上都使用包屏蔽,然后在每个服务器,甚至每个工作站上都使用单独的包过滤防火墙(如内置到某些操作系统中的防火墙)。这样的配置可能设置起来昂贵,并且难以维护,但它能提供极其健壮的防火墙保护。图3-6展示了一种具有多个防火墙的配置。在该图中,每个工作站都配置并运行了基于操作系统的防火墙。

image.png

3.4 选择和使用防火墙

3.4.1 选择防火墙

有多种商用防火墙产品可供选择。很多软件厂商都提供基本的包过滤解决方案。主要的防病毒软件厂商(包括本章前面提到的那些厂商)经常提供防火墙软件作为他们防毒软件的捆绑选项。其他公司,如Zone Labs,则销售防火墙和入侵检测软件。诸如Cisco这样的路由器和交换机主要制造商也提供防火墙产品。
一个特定系统需要的安全程度总是难以确定的。最低限度的建议是,在网络和Internet之间有一个包过滤防火墙或代理服务器,但这是最低限度。一般来说,管理员应该在预算允许范围内购买功能最强的防火墙。第4章将详细研究一些广泛使用的防火墙解决方案。但请记住,这仅仅是经验之谈。一种更好的方法是进行风险分析,第11章和第12章将介绍如何进行风险分析。

3.4.2 使用防火墙

使用防火墙的第一原则是要正确配置它。第4章将介绍一些广泛使用的防火墙解决方案以及如何配置它们。通读并理解与防火墙解决方案相关的所有文档和手册是最基本的要求。在初始设置和配置时,管理员还应该考虑顾问服务的帮助。此外,防火墙厂商通常都提供关于具体产品的培训。
在安全事件发生后,防火墙也是试图确定发生了什么事情的优秀工具。几乎所有的防火墙,不管是什么类型或者怎样实现的,都记录在它们之上发生的各种活动。这些日志可以提供能帮助确定攻击来源、所使用攻击方法的有价值信息,以及其他有助于定位攻击的发起者或至少能防止未来使用相同技术进行攻击的数据。
考虑到网络上的设备数量众多,因此常常把日志合并。使用安全信息和事件管理器(Security Information and Event Manager,SIEM)是一种常见的方法。还有一个协议,即syslog协议,它是一个用来传送日志信息的协议。一个SIEM系统不仅可以合并防火墙日志,而且还可以合并其他日志,如IDS日志。
审查防火墙日志以查找异常活动应该是每个机构中IT人员日常工作的一部分。第5章介绍的入侵检测系统可以在异常发生时,尤其是那些可能标志着潜在攻击的异常发生时,通过通知网络管理员而提供帮助。然而,即使是使用了IDS,周期性地审查日志仍是一个不错的主意。
研究防火墙在正常活动期间的日志,可以为防火墙建立一个基线(baseline)。这个基线应该展示每小时、每分钟以及每天入站和出站数据包的平均数量。它还应该标识数据包的类型(例如,入站数据包的73%是到达你的Web服务器的HTTP数据包)。定义防火墙上的正常活动,能够帮助管理员在异常活动发生时注意到它。

3.5 使用代理服务器

代理服务器常常与防火墙一起使用来隐藏内部网络的IP地址,以单个IP地址(代理服务器自身的地址)的形式呈现在外界面前。代理服务器是处于客户端应用程序(如Web浏览器)和真实的服务器之间的一个服务器。代理服务器能阻止黑客看到网络内部主机的IP地址,知道代理服务器后面有多少台机器,或者了解任何关于网络配置的内容。代理服务器还提供了一种宝贵的控制机制,因为大多数代理服务器都会记录所有的出站流量。这使得网络管理员可以看到员工在Internet上的访问记录。代理服务器通常以软件形式与你的防火墙运行在相同的机器上。
代理服务器可以配置成重定向(redirect)某些流量。例如,使用HTTP协议的入站流量通常允许通过代理服务器,但被重定向到Web服务器。这意味着所有出站和入站的HTTP流量首先通过代理服务器。一个代理服务器可以配置为重定向你想要的任何流量。如果网络上有电子邮件服务器或FTP服务器,那么你可以配置使该网络所有入站和出站的电子邮件流量或FTP流量都通过代理服务器。
使用代理服务器意味着,当网络内部有一台机器访问网站时,网站只能检测到代理服务器对它的访问。事实上,如果网络上数十台不同的机器访问一个能记录入站连接IP地址的站点,那么这些连接会被记录为使用同一IP地址,即代理服务器的IP地址。大多数情况下,这种代理服务器已经被网络地址转换(Network Address Translation,NAT)所取代,我们将在下一节中研究NAT。然而,代理服务器这一术语现在仍在使用,但有了不同的应用。现在,代理服务器与防火墙一起工作,过滤诸如Web内容之类的东西。它允许网络管理员阻塞某些站点并记录指定用户访问的所有网站。
隐藏内部网络是一项很有价值的服务,因为关于内部IP地址的知识可被用于进行某些形式的攻击。例如,IP欺骗(IP spoofing)攻击就是基于知道某个内部服务器的IP地址。隐藏内部IP地址是网络安全的一个重要步骤。此外,了解员工访问了Internet上的哪些网页也非常有用。代理服务器能跟踪这类信息,许多网络管理员使用它来限制员工把公司的网络连接用于非法目的。代理服务器还是能够阻止攻击的有用工具。访问黑客网站的员工可能是潜在的安全风险。他们可能会选择尝试他们在网络上读到的一些技术。管理员还可以检测潜在的工业间谍活动。一个在竞争对手的网站上花费大量时间的员工可能正在考虑更换工作,他可能在考虑带走有价值的数据。

3.5.1 WinGate代理服务器

目前,有许多代理服务器解决方案。有些是商用产品,有些则是开源的。为了帮助你更好地理解代理服务器,我们将分析一款这样的产品。WinGate是一个价格低廉的商用产品,它还提供可供下载的免费试用版(www.wingate.com)。该产品具有代理服务器的所有标准特性,包括:

  • 共享Internet连接
  • 隐藏内部IP地址
  • 允许病毒扫描
  • 过滤站点

免费下载使它成为学生的理想选择。无须缴纳任何费用,就可通过使用30天试用版来学习代理服务器是如何工作的。该产品安装过程简单,并且有易于使用的图形用户界面。
当然,你可以找到其他的代理服务器解决方案,而且其中很多相当不错。这里选择WinGate是因为它具有如下特点:

  • 易于使用
  • 廉价
  • 可免费下载

WinGate对学习之外的其他环境来说也是一个不错的解决方案。过滤某些网站的能力对很多公司来说都相当具有吸引力。公司减少系统资源滥用的一个方法就是阻塞他们不希望员工访问的网站。而扫描病毒的能力在任何环境下也都很有价值。

3.5.2 NAT

对许多机构来说,代理服务器已经被一种称为网络地址转换(Network Address Translation,NAT)的比较新的技术所取代。如今所谓的代理服务器已经不再做它们最初要做的事情了(即,将私有IP地址转换为公有IP地址)。首先,NAT转换内部地址和外部地址,以允许内网的计算机和外部计算机之间的通信。外部只能看到运行NAT的机器的地址(通常是防火墙)。从这个角度来看,它的功能与代理服务器完全一样。
NAT还提供重要的安全性,因为在默认情况下,它只允许从内部网络上发起的连接。这意味着内部网络的计算机可以连接到外部Web服务器,但外部计算机不能连接到内部网络上的Web服务器。你可以通过入站映射(inbound mapping)让外部世界使用某些内部服务器。该映射将某些熟知的TCP端口(如HTTP的80端口、FTP的21端口等)映射到特定的内部地址,从而允许外部世界访问内部的FTP或网站等服务。然而,这种入站映射必须明确地配置,默认情况下是没有的。
正如你将在后续章节中看到的,NAT常被作为另一个产品的一部分提供,例如作为防火墙的一部分。不像代理服务器,NAT不太可能作为独立的产品出现。第4章将展示几种包含网络地址转换功能的防火墙解决方案。

3.6 本章小结

对任何网络来说,在网络与外部世界之间部署防火墙和NAT绝对很关键。有多种防火墙类型和实现可供选择。有些易于实现并且价格低廉。另一些可能需要更多资源、难以配置,或价格昂贵。一个机构应该使用其环境允许的最安全的防火墙。对于某些防火墙,特定厂商的培训对正确配置防火墙来说是必不可少的。配置不好的防火墙与根本没有防火墙可能一样,都是安全隐患。
本章我们研究了各种类型的防火墙(包过滤、应用网关、电路层网关和状态包检查)以及它们的实现(基于网络主机、基于路由器、双宿主机和屏蔽主机)。理解防火墙的工作原理,对于根据网络安全需求选择合适的解决方案来说至关重要。

3.7 自测题

3.7.1 多项选择题

1.下列哪项是四种基本的防火墙类型?

A.屏蔽、堡垒、双宿、电路层             
B.应用网关、堡垒、双宿,屏蔽
C.包过滤、应用网关、电路层、状态包检查    
D.状态包检查、网关、堡垒、屏蔽

2.哪种类型的防火墙与客户端之间创建一个私有的虚拟连接?

A.堡垒                     
B.双宿
C.应用网关                     
D.电路层网关

3.哪种类型的防火墙被认为是最安全的防火墙?

A.双宿                     
B.状态包检查
C.电路层网关                     
D.包屏蔽

4.包过滤防火墙必须设置的四个规则是什么?

A.协议类型、源端口、目标端口、源IP         
B.协议版本、目标IP、源端口、用户名
C.用户名、口令、协议类型、目标IP         
D.源IP、目标IP、用户名、口令

5.哪种类型的防火墙要求单个客户端应用程序被授权连接?

A.屏蔽网关                     
B.状态包检查
C.双宿                     
D.应用网关

6.为什么代理网关可能易于受到泛洪攻击?

A.它没有适当地过滤数据包             
B.它不要求用户认证
C.它允许同时存在多个连接             
D.它的认证方法需要更多的时间和资源

7.为什么电路层网关在某些情况下可能不合适?

A.它没有用户认证                 
B.它阻塞了Web流量
C.它需要客户端的配置                 
D.它太贵

8.为什么SPI防火墙不易受到欺骗攻击?

A.它检查所有数据包的源IP             
B.它自动阻塞伪装的数据包
C.它要求用户认证                 
D.它要求客户端应用程序认证

9.为什么SPI防火墙对泛洪攻击具有更强的抵抗能力?

A.它自动阻塞来自单个IP的大流量         
B.它要求用户认证
C.它根据先前数据包的上下文来检查数据包    
D.它检查所有数据包的目标IP

10.在基于网络主机的配置中最大的危险是什么?

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防火墙
注意:这个练习需要使用安装了Windows 7、8或10的机器。

1.点击“Start”(开始),选择“Settings”(设置),然后点击“control panel”(控制面板)。或者在搜索框中输入“control panel”(控制面板)。

2.单击“Systems and Security”(系统及安全)。

3.单击“Windows Firewall”(Windows防火墙)。在该界面上,你可以启用或关闭防火墙,并且配置防火墙的规则。

练习3.2 Linux防火墙
注意:这个练习需要访问一台Linux机器。考虑到Linux有各种发行版本,这里不可能为所有版本都列出步骤说明。

1.使用Web查找你的特定Linux发行版的防火墙文档。
下述站点可能会有所帮助: http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/firewall.html

https://www.linux.com/

https://www.networkcomputing.com/careers/your-iptable-ready-using-linuxfirewall/885365766

2.使用文档中给出的指令打开并配置你的Linux防火墙。

练习3.3 免费的防火墙
有很多商用防火墙解决方案,但也有免费的解决方案。本练习中你应该完成如下任务:

1.在Web上找到一款免费的防火墙
下述网站可能会有所帮助: https://www.zonealarm.com/software/free-firewall

https://www.pandasecurity.com/security-promotion .

这是一个获得商用产品免费试用版的网站。

2.下载并安装防火墙。

3.配置防火墙。

练习3.4 免费的代理服务器
有许多免费的代理服务器(或至少提供免费的试用版)。下述网站可能会有所帮助:
AnalogX代理:www.analogx.com/contents/download/network/proxy.htm
免费下载中心:http://www.proxy4free.com/

1.下载你选定的代理服务器。

2.安装它。

3.根据厂商的规范说明配置它。

3.7.3 项目题

项目3.1 Cisco防火墙
使用Web资源或你可以访问的文档,查找思科的Cisco Firepower NGFW的详细说明。判断它是什么类型的防火墙以及它是基于什么实现的,还要注意它的任何具体的优点或缺点。

项目3.2 ZoneAlarm 防火墙
使用Web资源或你可以访问的文档,查找Zone Labs的Check Point Integrity防火墙的详细说明。确定它是什么类型的防火墙以及它是基于什么实现的,还要注意它的任何具体的优点或缺点。以下网站可能会有帮助:
http://www.zonealarm.com/security/en-us/zonealarm-pc-security-free-firewall.htm www.checkpoint.com/products/integrity/

项目3.3 Windows 10
使用Web资源或你可以访问的文档,查找Windows 10防火墙的详细说明。确定它是什么类型的防火墙以及它是基于什么实现的,还要注意它的任何具体的优点或缺点。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接