大家好, 随着公司年底考核的结束,同时也为了保住这一年的运营成果,重大的项目或变更,统统挪到了春节之后再启动。目前,算是迎来了一年当中最空闲的时候,做做明年的工作计划,其余时间用来摸鱼。也就下周还有线上年会的事情要忙一下,之后就是等着回家过年。
但是,深圳的疫情突然严重了起来,现在已经有了 4 个中风险地区。深圳官方积极的响应速度和灵活的应对策略,算是把疫情控制住了。很多人也担心疫情原因,而无法回家过年。小弗最近也经常查看最新的防疫要求,主要是看老家的政策。感慨自由的生活,变得多么珍贵。不知道各位可爱的读者准备如何过年呀?期待您在留言区的反馈。
防火墙( Firewall )是防止火灾发生时,火势烧到其它区域,使用由防火材料砌的墙。
后来这个词语引入到了网络中,把从外向内的网络入侵行为看做是火灾,防止这种入侵的策略叫做防火墙。后来,防火墙不但用于防范外网,例如:对企业内网的 DoS 攻击或非法访问等,也开始防范从内部网络向互联网泄露信息、把内部网络作为攻击跳板等行为。
硬件防火墙可以实现 CIA 的机密性( Confidentiality )、完整性( Integrity )、可用性( Availability )这三种类型的对应策略。小企业会在局域网和互联网的边界部署防火墙。
防火墙可分为软件防火墙和硬件防火墙。软件防火墙又可分为个人防火墙和网关防火墙。
个人防火墙运行在 PC 上,用于监控 PC 和外网的通信信息。在 Windows 操作系统中集成了 Windows 防火墙。
杀毒软件产品厂家的个人防火墙一般包含在安全软件套件里。
在网络中的网关上配置防火墙的功能,能对网络中的流量进行策略控制,这就是网关防火墙。
网关防火墙分为两种,一种是在 Windows 、Linux 等操作系统上安装并运行防火墙软件的软件网关防火墙,另一种是使用专用设备的硬件网关防火墙。
个人防火墙主要监控 PC 的通信流量,网关防火墙是监控网络中所有终端的通信流量,在网关处进行策略控制。
通过硬件设备实现的防火墙叫做硬件防火墙,外形跟路由器相似,接口类型通常有千兆网口、万兆光口。
代理服务器是应用网关防火墙的一种。假设客户端和 HTTP 服务器通信时, 客户端发送请求报文时,代理服务器会替代客户端向 HTTP 服务器发送请求;HTTP 服务器回复响应报文时,代理服务器会代替 HTTP 服务器向客户端回复。对于客户端来说,代理服务器就是 HTTP 服务器。客户端和代理服务器、代理服务器和 HTTP 服务器分别建立两个会话。
报文过滤防火墙是以 IP 或 TCP/UDP 为对象,判断是否允许通信。而应用网关防火墙是以应用程序为对象,也就是将 FTP 、HTTP 、Telnet 、DNS 等为对象进行判断。
防火墙有四种接口模式,分别是 L3 模式、L2 模式、L1 模式和 TAP 模式。
L1 ~ L3 模式是将防火墙进行串连,TAP 模式是防火墙进行旁挂。
防火墙能够防范的威胁如下:
防火墙常见的功能有:会话管理、报文结构解析、安全区域、安全策略、NAT 、VPN 、DoS 防御、报文攻击防御、内容扫描、监控和报告、报文抓包。
会话是两个终端系统之间的逻辑连接,从开始到结束的通信过程。
在 TCP 中,客户端和服务器通信,使用 3 次握手建立 1 个 TCP 连接,客户端发送请求( request ),服务器进行回应( response ),直至结束的过程就是进行了 1 个会话通信。
在 UDP 中,客户端和服务器的源端口和目的端口一致,之后的一系列通信都叫做会话。
在 ICMP 中,Echo request 和对应的 Echo reply 组成 1 个会话。
数据流是一组有序,有起点和终点的数据序列。一个会话有两个数据流( flow ):一个是 “ 客户端到服务器 ”( client to server ),另一个是 “ 服务器到客户端 ”( server to client )。
在数据通信前,客户端发送一个 SYN 包作为建立连接的请求。如果服务器发来回应,则认为可以开始数据通信。如果未收到服务器的回应,就不会进行数据通信。在通信结束时,会使用 FIN 包进行断开连接的处理。
SYN 包和 FIN 包是通过 TCP 头部的控制字段来管理 TCP 连接。一个连接的建立与断开,正常过程至少需要来回发送 7 个包才能完成。建立一个 TCP 连接需要发送 3 个包,这个过程叫作三次握手。断开一个 TCP 连接需要发送 4 个包,这个过程也称作四次挥手。创建一个 TCP 连接,会产生一个 32 位随机序列号,因为每一个新的连接使用一个新的随机序列号。
TCP 会话开始时,客户端会发送一个 SYN 消息。如果没有会话信息,或尚未建立会话,即非 SYN 消息的 TCP 数据段到达防火墙,防火墙会当做非法消息而丢弃。
通过对 SYN-ACK 的 ACK 消息检查,确认进行中的 3 次握手是否是非法尝试,防范 SYN Flood 攻击。
防火墙收到重复数据段,也就是序列号相同的 TCP 数据段,可以选择接收或者丢弃。
防火墙可以检测 TCP 头部的序列号和滑动窗口大小,拦截超过滑动窗口容量数据的序列号。
防火墙可以验证 TCP 数据段序列号是否完整。
a.防火墙收到报文后,首先检查会话表,确认是否有相同的会话。如果有相同会话,那么会禁止会话建立,确保会话都是唯一的。
b.如果是不同会话,那么检查报文,通常是查看路由表或 MAC 地址表来确定转发路径。如果可以转发,就确定对应的转发出接口和目的网段。如果不能转发,就丢弃这个数据。
c.报文检查目的地址是否需要进行 NAT 。如果需要,就先完成 NAT ,然后转发到相应出接口和目的网段。
d.对报文和目的信息进行安全策略检查,源信息是源接口、源区域和源地址,目的信息是目的接口、目的区域和目的地址。如果有匹配的安全策略,就根据策略进行处理,允许通信就进行转发,拒绝通信就进行丢弃。如果没有匹配的安全策略,就根据默认拒绝的策略丢弃数据。
e.当报文被允许通信时,防火墙的会话表中就会生成相应的会话信息。
自动生成的会话表信息,是有一定的生存时间。会话建立后,一段时间内一直没有进行通信,防火墙会删除生存时间到期的会话表项。如果长期保留会话表项,这些会话信息可能会被恶意攻击。同时,会话表是会占用防火墙资源,防火墙的会话表项的数量也是有限的,长期保留闲置的会话,会影响新会话的生成。
会话时间可以根据协议的不同,分别进行设置。
TCP 的话,会话的超时时间通常是 30 分钟到 1 小时,UDP 是 30 秒。比如,Telnet 连接在防火墙上建立会话后,如果在 1 个小时内没有任何数据通信,防火墙会自动删除这个会话表项。客户端无法再次使用这个 Telnet 会话了。
客户端完成数据传输后,发送 FIN 消息,即使用 FIN 标志位的 TCP 数据段。
服务器收到 FIN 消息后,在回复消息中,使用 FIN 和 ACK 标志位,并将 ACK 编号设置为“接收的 Seq 编号 + 1 ” 。
客户端相同处理方式,在回复消息中,使用 ACK 标志位,并将 ACK 编号设置为“接收的 Seq 编号 + 1 ” 。
如果客户端或服务器在连接过程发生故障,只有一方是侦听状态,这叫做半侦听或半关闭。如果通信恢复,接收到故障前的数据段,那么会回复 RST 消息,强制终止 TCP 连接。
当防火墙收到 FIN 或 RST 消息时,会启动一个 30 秒的定时器。即使 FIN → FIN-ACK → ACK 的终止过程没完成,防火墙也会强制删除会话表项。
UDP 不需要像 TCP 一样 3 次握手,客户端和服务器直接使用应用程序的 UDP 数据进行交互。
UDP 数据流是指源 IP 地址、源端口号、目的 IP 地址和目的端口号这 4 个参数都相同的一系列 UDP 数据。
DNS 和 SNMP 这类应用程序,只需要 1 个 UDP 数据,就能构成 1 个数据流。
音频和视频使用的 RTP ,就需要多个 UDP 数据,来构成 1 个数据流。
像 ICMP 这类没有端口号的协议,是直接根据 IP 头部的协议号来生成会话。
防火墙通过识别 ICMP 不同的请求消息和对应的响应消息,来判断这些消息序列是否属于同一个会话。
通常两台防火墙会使用主备方式的冗余结构,对主防火墙和备防火墙的会话信息进行同步。主防火墙负责建立用户通信的会话,并把会话信息记录到会话表中,同时将信息转发到备防火墙。
防火墙可以通过限制会话数量,能够防范 DoS 攻击,还能控制防火墙的负载,提高防火墙的性能。
防火墙可以以 TCP SYN 、UDP 、ICMP 等协议为单位,通过指定源与目的的组合方式,来限制这类会话的数目。
之前就是文章写完才发,有时候忙或者不在状态,就会出现偷懒的情况,一拖拖几周。现在调整下策略,每周输出一篇,写不完的就做成上下篇,维持持续输出文章的好习惯,看下效果会不会好一些。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8