防火墙知识点全面图解(一)
1、什么是防火墙?
防火墙(Firewall
)是防止火灾发生时,火势烧到其它区域,使用由防火材料砌的墙。
后来这个词语引入到了网络中,把从外向内的网络入侵行为看做是火灾,防止这种入侵的策略叫做 防火墙。后来,防火墙不但用于防范外网,例如:对企业内网的 DoS 攻击或非法访问等,也开始防范从内部网络向互联网泄露信息、把内部网络作为攻击跳板等行为。
硬件防火墙可以实现 CIA 的 机密性(Confidentiality
)、完整性(Integrity
)、可用性(Availability
)这三种类型的对应策略。小企业会在局域网和互联网的边界部署防火墙。
CIA条目 | 威胁种类 | 策略使用技术 | 策略实施设备 | 说明 |
---|---|---|---|---|
机密性 | 窃听、非法访问、窃取等 | 用户认证、加密 | 防火墙、VPN、IDS/IPS 等 | 只允许合法用户访问相关信息。确保机密性,即保证信息不被泄露,设置防止非法访问等保护策略 |
完整性 | 篡改、冒充等 | 数据认证、电子签名、加密 | 防火墙、VPN、IDS/IPS 等 | 保证信息的完整,防止信息被篡改 |
可用性 | DoS 攻击等 | 过滤、冗余、策略 | 防火墙、带宽控制设备等 | 确保用户能够正常访问信息。也就是服务器或网络设备的运维,避免系统出现宕机问题 |
2、防火墙有哪些类型?
防火墙可分为 软件防火墙 和 硬件防火墙。软件防火墙又可分为 个人防火墙 和 网关防火墙。
(1)个人防火墙
个人防火墙运行在 PC 上,用于监控 PC 和外网的通信信息。在 Windows 操作系统中集成了 Windows 防火墙。
杀毒软件产品厂家的个人防火墙一般包含在安全软件套件里。
功能 | 作用 |
---|---|
确认连接请求 | 咨询用户是否阻止特定的连接请求 |
安全日志 | 根据需要生成安全日志,记录 PC 正常连接与错误连接的信息。在做故障分析时,日志起到了很大的作用 |
反病毒功能 | 阻止 PC 接收病毒和蠕虫通信 |
反间谍软件功能 | 阻止 PC 接收间谍软件或程序的通信 |
个人信息保护功能 | 设置保护策略,防止个人信息被窃取、浏览恶意网站以及钓鱼诈骗等 |
(2)网关防火墙
在网络中的网关上配置防火墙的功能,能对网络中的流量进行策略控制,这就是网关防火墙。
网关防火墙分为两种,一种是在 Windows 、Linux 等操作系统上安装并运行防火墙软件的软件网关防火墙,另一种是使用专用设备的硬件网关防火墙。
个人防火墙主要监控 PC 的通信流量 ,网关防火墙是监控 网络中所有终端的通信流量,在网关处进行策略控制。
个人防火墙 | 网关防火墙 | 区别 |
---|---|---|
安装位置 | 用户的 PC 上 | Windows 或 Linux 等服务器上 |
网络中的位置 | 终端 | 网关 |
安全监控对象 | 流入终端的流量 | 经过网关的流量 |
加密通信 | 在终端上解密后检查 | 不能检查 |
压缩文件检查 | 解压后检查 | 对解压方式、解压基本有限制 |
口令文件检查 | 输入口令后解压检查 | 不能检查 |
(3)硬件防火墙
通过硬件设备实现的防火墙叫做硬件防火墙,外形跟路由器相似,接口类型通常有千兆网口、万兆光口。
3、防火墙有哪些技术类型?
- 分组过滤型:没有防火墙设备时,可以由路由器实现。根据网络中的传输的 IP 分组头部和 TCP/IP 分组头部,获得源 IP 地址和端口号、目的 IP 地址和端口号,以这些信息作为过滤条件,决定是否转发这个分组。分组过滤会用到访问控制列表
- 应用网关型:不以分组为单位进行通信过滤,而是特定的应用程序会话。
- 电路层网关型:在传输层进行连接中继,也就是第四层代理,通过 SOCKS 协议实现。内网终端连接外部网络时,终端与网关建立 TCP 连接,网关和外部服务器建立新的 TCP 连接。使用电路层网关,不用设置安全认证端口和 NAT,就可以让私有地址的内网终端访问外部网络。
- 状态检测型:动态分组过滤的一种,通过检测 TCP 的连接状态阻挡来路不明的分组,简称 SPl。可以抵抗下面类型的攻击。
- 伪装 IP 地址或端口,发送附带 TCP 的 RST 或 FIN 标志位的分组,随意中止正常通信的攻击。
- 在允许通信的范围内发送附带 TCP 的 ACK 标志位的分组,从而入侵内部网络。
- 在 FTP 通信时,无论是否建立控制连接,都会创建数据连接进而入侵内部网络。
- 新一代防火墙:根据上面的所有信息执行安全策略来进行防御,不仅根据端口号或协议号识别应用程序,还根据 IP 地址识别用户信息。
4、什么是代理服务器?
代理服务器 是应用网关防火墙的一种。假设客户端和 HTTP 服务器通信时, 客户端发送请求报文时,代理服务器会替代客户端向 HTTP 服务器发送请求;HTTP 服务器回复响应报文时,代理服务器会代替 HTTP 服务器向客户端回复。对于客户端来说,代理服务器就是 HTTP 服务器。客户端和代理服务器、代理服务器和 HTTP 服务器分别建立两个会话。
- 从客户端收到的请求报文、从服务器收到响应报文,代理服务器都会在应用层进行检查,如果有异常就放弃通信或发送出错信息。
- 由于代理服务器是会话的起点,对互联网的服务器来说,是看不到客户端的 IP 地址。
报文过滤防火墙是以 IP 或 TCP/UDP 为对象,判断是否允许通信。而应用网关防火墙是以应用程序为对象,也就是将 FTP 、HTTP 、Telnet 、DNS 等为对象进行判断。
5、防火墙有哪些接口模式?
防火墙有四种接口模式:
- L3 模式:也叫做 NAT 模式,和路由器接口一样,是拥有 IP 地址的接口。使用路由选择、NAT 以及连接 IPSec VPN 或 SSL VPN 时,必须使用 L3 模式接口。接口可配置静态 IP 地址,也可通过 PPPoE、DHCP 动态获取 IP 地址。
- L2 模式:也叫做透传模式或透明模式,和交换机一样,是进行交接的接口。进行 IP 地址分配时,需要使用 VLAN。
- L1 模式:也叫做虚拟线缆模式。把两个接口组成一组,流量在一个接口输入,在另一个接口输出。这个模式下无法进行路由和桥接
- TAP 模式:与交换机镜像端口连接的模式。对交换机的数据帧进行检测。由于不是串连,无法阻止非法通信
L1 ~ L3 模式是将防火墙进行串连,TAP 模式是防火墙进行旁挂。
6、防火墙能防范哪些威胁?
(1)窃听:通过窃听网络数据获取银行卡号、密码等重要信息。
(2)篡改:将网站主页、邮件等通信内容恶意修改。
(3)破坏:通过电脑病毒或DoS攻击等破坏系统的正常工作。
(4)冒充:冒充他人发送邮件,对接收方进行钓鱼、诈骗等行为。
(5)信息泄露:电脑或服务器上的重要信息或文档泄露。
(6)攻击跳板:作为病毒部署或DoS攻击的跳板。
(7)垃圾邮件:以营利为目的发送大量邮件。
7、有哪些人会威胁安全?
-
黑客(
hacker
):是指精通计算机技术的人,并非特指网络攻击者。 -
破解者(
cracker
):对网络进行非法访问、窃听信息、篡改等行为的人。 -
攻击者(
attacker
):使用 DoS 等攻击系统,以造成系统宕机为目的的人。 -
妨碍者:发送大量垃圾邮件、在论坛粘贴大量广告、发布大量无意义信息的人。
-
普通用户:尽管不会主动攻击,但在病毒、蠕虫等感染电脑后,成为威胁网络安全的对象。
-
僵尸(
bot
):作为攻击跳板的终端,被植入具有攻击程序的病毒,遭受感染的终端叫做僵尸,由大量僵尸程序组成的网络叫做僵尸网络。
8、防火墙有哪些功能?
防火墙常见的功能有:
- 会话管理
- 报文结构解析
- 安全区域
- 安全策略
- NAT
- VPN
- DoS 防御
- 报文攻击防御
- 内容扫描
- 监控和报告
- 报文抓包
9、什么是会话?
会话 是两个终端系统之间的逻辑连接,从开始到结束的通信过程。
- 在 TCP 中,客户端和服务器通信,使用 3 3 3 次握手建立 1 1 1 个 TCP 连接,客户端发送请求(
request
),服务器进行回应(response
),直至结束的过程就是进行了 1 1 1 个会话通信。 - 在 UDP 中,客户端和服务器的源端口和目的端口一致,之后的一系列通信都叫做会话。
- 在 ICMP 中,
Echo request
和对应的Echo reply
组成 1 1 1 个会话。
数据流 是一组有序,有起点和终点的数据序列。一个会话有两个数据流(flow
):一个是 "客户端到服务器 "(client to server
),另一个是 "服务器到客户端 "(server to client
)。
10、什么是 TCP 连接管理?
在数据通信前,客户端发送一个 SYN
包作为建立连接的请求。如果服务器发来回应,则认为可以开始数据通信。如果未收到服务器的回应,就不会进行数据通信。在通信结束时,会使用 FIN
包进行断开连接的处理。
SYN
包和 FIN
包是通过 TCP 头部的控制字段来管理 TCP 连接。一个连接的建立与断开,正常过程至少需要来回发送 7 7 7 个包才能完成。建立一个 TCP 连接需要发送 3 3 3 个包,这个过程叫作 三次握手 。断开一个 TCP 连接需要发送 4 4 4 个包,这个过程也称作 四次挥手 。创建一个 TCP 连接,会产生一个 32 32 32 位随机序列号,因为每一个新的连接使用一个新的随机序列号。
-
SYN 检查:TCP 会话开始时,客户端会发送一个
SYN
消息。如果没有会话信息,或尚未建立会话,即非SYN
消息的 TCP 数据段到达防火墙,防火墙会当做非法消息而丢弃。 -
ACK 检查:通过对
SYN-ACK
的ACK
消息检查,确认进行中的 3 3 3 次握手是否是非法尝试,防范SYN Flood
攻击。 -
重复数据段检查:防火墙收到重复数据段,也就是序列号相同的 TCP 数据段,可以选择接收或者丢弃。
-
窗口检查:防火墙可以检测 TCP 头部的序列号和滑动窗口大小,拦截超过滑动窗口容量数据的序列号。
-
数据段重组:防火墙可以验证 TCP 数据段序列号是否完整。
11、防火墙如何建立会话?
-
防火墙收到报文后,首先检查会话表,确认是否有相同的会话。如果有相同会话,那么会禁止会话建立,确保会话都是唯一的。
-
如果是不同会话,那么检查报文,通常是查看路由表或 MAC 地址表来确定转发路径。如果可以转发,就确定对应的转发出接口和目的网段。如果不能转发,就丢弃这个数据。
-
报文检查目的地址是否需要进行 NAT 。如果需要,就先完成 NAT ,然后转发到相应出接口和目的网段。
-
对报文和目的信息进行安全策略检查,源信息是源接口、源区域和源地址,目的信息是目的接口、目的区域和目的地址。如果有匹配的安全策略,就根据策略进行处理,允许通信就进行转发,拒绝通信就进行丢弃。如果没有匹配的安全策略,就根据默认拒绝的策略丢弃数据。
-
当报文被允许通信时,防火墙的会话表中就会生成相应的会话信息。
12、什么是会话生存时间?
自动生成的会话表信息,是有一定的 生存时间。会话建立后,一段时间内一直没有进行通信,防火墙会删除生存时间到期的会话表项。如果长期保留会话表项,这些会话信息可能会被恶意攻击。同时,会话表是会占用防火墙资源,防火墙的会话表项的数量也是有限的,长期保留闲置的会话,会影响新会话的生成。
会话时间可以根据协议的不同,分别进行设置。
TCP 的话,会话的超时时间通常是 30 30 30 分钟到 1 1 1 小时,UDP 是 30 30 30 秒。比如,Telnet 连接在防火墙上建立会话后,如果在 1 1 1 个小时内没有任何数据通信,防火墙会自动删除这个会话表项。客户端无法再次使用这个 Telnet 会话了。
13、会话如何正常终止?
客户端完成数据传输后,发送 FIN
消息,即使用 FIN
标志位的 TCP 数据段。
服务器收到 FIN
消息后,在回复消息中,使用 FIN
和 ACK
标志位,并将 ACK
编号设置为 "接收的 Seq 编号 + 1"。
客户端相同处理方式,在回复消息中,使用 ACK
标志位,并将 ACK
编号设置为 "接收的 Seq 编号 + 1"。
如果客户端或服务器在连接过程发生故障,只有一方是侦听状态,这叫做 半侦听 或 半关闭。如果通信恢复,接收到故障前的数据段,那么会回复 RST
消息,强制终止 TCP 连接。
当防火墙收到 FIN
或 RST
消息时,会启动一个 30 30 30 秒的定时器。即使 FIN → FIN-ACK → ACK
的终止过程没完成,防火墙也会强制删除会话表项。
14、什么是 UDP 数据流?
UDP 不需要像 TCP 一样 3 3 3 次握手,客户端和服务器直接使用应用程序的 UDP 数据进行交互。
UDP 数据流 是指 源 IP 地址、源端口号、目的 IP 地址 和 目的端口号 这 4 4 4 个参数都相同的一系列 UDP 数据。
DNS 和 SNMP 这类应用程序,只需要 1 1 1 个 UDP 数据,就能构成 1 1 1 个数据流。
音频和视频使用的 RTP ,就需要多个 UDP 数据,来构成 1 1 1 个数据流。
15、没有端口号的协议如何生成会话?
像 ICMP 这类没有端口号的协议,是直接根据 IP 头部的 协议号 来生成会话。
防火墙通过识别 ICMP 不同的请求消息和对应的响应消息,来判断这些消息序列是否属于同一个会话。
16、两台防火墙,如何管理会话?
通常两台防火墙会使用主备方式的冗余结构,对主防火墙和备防火墙的会话信息进行 同步。主防火墙负责建立用户通信的会话,并把会话信息记录到会话表中,同时将信息转发到备防火墙。
17、会话管理有什么防御功能?
防火墙可以通过 限制会话数量,能够防范 DoS 攻击,还能控制防火墙的负载,提高防火墙的性能。
防火墙可以以 TCP SYN 、UDP 、ICMP 等协议为单位,通过指定源与目的的组合方式,来限制这类会话的数目。
18、如何防范非法报文?
为了防止非法报文的流入和流出,防火墙会对报文的头部和数据进行解析。常见的有:IP 头部解析、TCP 头部解析、UDP 头部解析。
(1)IP 头部解析
数据帧和 IPv4 头部的解析内容如下:
- 以太网类型与 IP 版本:以太网数据帧头部的类型字段为
0x0800
时表示 IPv4 ,同时 IPv4 头部的版本也是 4 4 4 。类型字段为0x86DD
时表示 IPv6 ,IP 头部的版本也是 6 6 6。 - IP 头部:确认数据是否完整,并检查报文长度与实际长度是否一致。
- IP 协议号、TTL:检查字段值,如果值为 0 0 0 就丢弃报文。
- 源地址、目的地址:确认是否存在
LAND attack
。 - 数据总长度:确认是否存在
ping of death
攻击。 - 标志位、分片偏移:丢弃无法进行分片的报文。
- 可选项:丢弃无用可选项的报文。
(2)TCP 头部解析
TCP 头部的解析内容如下:
- TCP 头部:确认各个字段是否完整、是否有被中途截断。
- 数据偏移:确认数据偏移字段的值是否是 5 5 5 以下,TCP 头部长度最小是 5 5 5 字符 = 20 20 20 字节。
- 校验和:确认校验和是否错误。
- 端口号:确认源端口号和目的端口号是否为 0 0 0。
- 控制位:检查
SYN
、ACK
等字段是否存在组合不正确的情况。
(3)UDP 头部解析
UDP 头部的解析内容如下:
- UDP 头部:确认各个字段是否完整、是否有被中途截断。
- 校验和:确认校验和是否错误。
19、什么是安全区域?
防火墙有 安全区域(Security Zone
,简称区域)的概念。防火墙的物理接口和逻辑接口会分配到不同的区域中,也就是将防火墙的网段分别划分到不同的区域中。一个网络接口只能属于一个区域。
在同一个区域内,可以自由进行通信,但是跨区域通信,必须符合安全策略才行。当然,防火墙也可以设置安全策略,根据源或目的地址等条件,判断在同一区域内能否允许通信。
-
信任区域(
Trust Zone
),也叫做 内部区域 ,所属接口是G1/1
、tunnel1
、Loopback1
,是指公司内部网络区域,表示可以信赖的区域。通常区域内是可以自由通信。 -
不信任区域(
Untrust Zone
),也叫做 外部区域 ,所属接口是G1/2
,是指公司外部网络区域,比如互联网。与信任区域相对,是不可信任的区域,通常只会拦截通信,不允许所有通信。也可以设置安全策略,允许从信任区域到不信任区域的通信。 -
DMZ 区域(
DeMilitarized Zone
),所属接口是G1/4
,是对外公开的服务器使用的区域,与信任区域是分开的。- 为了防止攻击,从外部网络访问内部网络的通信会被防火墙拦截,但是内部网络中有对外公开的服务器,比如 Web 服务器,对于 Web 请求就不能一刀切的拦截。但如果把服务器放在内部网络中,一旦从外部网络恶意入侵,就会导致内网的重要数据泄露。因此,我们把需要对外公开的服务器放在 DMZ 中,这样即使服务器遭到入侵,DMZ 区域也无法直接访问内部网络。
-
自定义区域(
Custom Zone
),这里说的是上图Sales Zone
,所属接口是G1/3
,只有销售部门员工才能访问的区域,是人为划分和定义的自定义区域。当然,也能根据具体内容、安全策略描述和管理目的自定义其它区域。
20、什么是安全策略?
防火墙的主要功能是访问控制,也就是判断特定源和特定目的之间是否允许进行特定的通信。访问控制是通过规则来实现,每一条规则都指定了源、目的和通信内容等信息。这些访问控制规则的集合,在路由器中,叫做 访问控制列表,而在防火墙中,叫做 安全策略 或 安全规则。