防火墙防止 DDOS SYN Flood 的原理详细介绍
DoS(Denial of Service 拒绝服务)和 DDoS(Distributed Denial of Service 分
布式拒绝服务)攻击是大型网站和网络服务器的安全威胁之一。2000 年 2 月,Yahoo、
亚马逊、CNN 被攻击等事例,曾被刻在重大安全 事件的历史中。SYN Flood 由于其攻击
效果好,已经成为目前最流行的 DoS 和 DDoS 攻击手段。
SYN Flood 利用 TCP 协议缺陷,发送了大量伪造的 TCP 连接请求,使得被攻击方资
源耗尽,无法及时回应或处理正常的服务请求。一个正常的 TCP 连接需要三 次握手,首
先客户端发送一个包含 SYN 标志的数据包,其后服务器返回一个 SYN/ACK 的应答包,表
示客户端的请求被接受,最后客户端再返回一个确认包 ACK,这样才完成 TCP 连接。在
服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时,期间这些半连接
状态都保存在一个空间有限的缓存队列 中;如果大量的 SYN 包发到服务器端后没有应答,
就会使服务器端的 TCP 资源迅速耗尽,导致正常的连接不能进入,甚至会导致服务器的系
统崩溃。
防火墙通常用于保护内部网络不受外部网络的非授权访问,它位于客户端和服务器之
间,因此利用防火墙来阻止 DoS 攻击能有效地保护内部的服务器。针对 SYN Flood,防
火墙通常有三种防护方式:SYN 网关、被动式 SYN 网关和 SYN 中继。
SYN 网关 防火墙收到客户端的 SYN 包时,直接转发给服务器;防火墙收到服务器的
SYN/ACK 包后,一方面将 SYN/ACK 包转发给客户端,另一方面以客户端的名 义给服务
器回送一个 ACK 包,完成 TCP 的三次握手,让服务器端由半连接状态进入连接状态。当
客户端真正的 ACK 包到达时,有数据则转发给服务器,否则丢 弃该包。由于服务器能承
受连接状态要比半连接状态高得多,所以这种方法能有效地减轻对服务器的攻击。
被动式 SYN 网关 设置防火墙的 SYN 请求超时参数,让它远小于服务器的超时期限。
防火墙负责转发客户端发往服务器的 SYN 包,服务器发往客户端的 SYN/ACK 包、以及客
户端发往服务器的 ACK 包。这样,如果客户端在防火墙计时器到期时还没发送 ACK 包,
防火墙则往服务器发送 RST 包,以使服务器从队列中删去该半连接。由 于防火墙的超时
参数远小于服务器的超时期限,因此这样能有效防止 SYN Flood 攻击。
SYN 中继防火墙在收到客户端的 SYN 包后,并不向服务器转发而是记录该状态信息
然 后主动给客户端回送 SYN/ACK 包,如果收到客户端的 ACK 包,表明是正常访问,由防
火墙向服务器发送 SYN 包并完成三次握手。这样由防火墙做为代理来 实现客户端和服务
器端的连接,可以完全过滤不可用连接发往服务器。
评论0
最新资源