什么是DDoS?DDoS详解和部分防护手段。

2022.04.14

分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如 IoT 设备)。总体而言,DDoS 攻击好比高速公路发生交通堵塞,妨碍常规车辆抵达预定目的地。

1、攻击原理与攻击危害

按照攻击对象的不同,将对攻击原理和攻击危害的分析分成 3 类,分别是攻击网络带宽资源、系统以及应用。
 
攻击网络带宽资源

攻击网络带宽资源

攻击系统资源

攻击系统资源

攻击应用资源

攻击应用资源

2、如何识别 DDoS 攻击

DDoS 攻击最明显的症状是网站或服务突然变慢或不可用。但是,造成类似性能问题的原因有多种(如合法流量激增),因此通常需要进一步调查。流量分析工具可以帮助您发现 DDoS 攻击的一些明显迹象:

1. 来自单个 IP 地址或 IP 范围的可疑流量;
2. 来自共享单个行为特征(例如设备类型、地理位置或 Web 浏览器版本)的用户的大量流量;
3. 对单个页面或端点的请求数量出现不明原因的激增;
4. 奇怪的流量模式,例如一天中非常规时间段的激增或看似不自然的模式(例如,每 10 分钟出现一次激增);
5. DDoS 攻击还有其他更具体的迹象,具体取决于攻击的类型。

3、如何简单预防DDoS攻击

iptables 防护

sysctl -w net.ipv4.ip_forward=1 &>/dev/null
#打开转发

sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null
#打开 syncookie (轻量级预防 DOS 攻击)

sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null
#设置默认 TCP 连接最大时长为 3800 秒(此选项可以大大降低连接数)
sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/n
#设置支持最大连接树为 30W(这个根据你的内存和 iptables 版本来,每个 connection 需要 300 多个字节)

iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
#防止SYN攻击 轻量级预防

iptables -A INPUT -i eth0 -p tcp –syn -m connlimit –connlimit-above 15 -j DROP
iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
#防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃

应用自身防护

以 Nginx 为例,限制单个 ip 请求频率。

http {

//触发条件,所有访问ip 限制每秒10个请求

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; 

server{

location ~ \.php$ {

//执行的动作,通过zone名字对应

limit_req zone=one burst=5 nodelay; 

}

}

location /download/ {

// 限制同一时间内1个连接,超出的连接返回503

limit_conn addr 1; 

}

}

宁波网站制作DDos