目录

四层协议攻防手册从SYN-Flood到UDP反射的深度防御

四层协议攻防手册:从SYN Flood到UDP反射的深度防御

一、四层协议攻击类型与特征

攻击类型协议层特征
SYN FloodTCP大量半开连接, SYN_RECV 状态堆积
UDP反射放大UDP小请求包触发大响应(如NTP、DNS响应)
TCP分片攻击TCP发送异常分片耗尽重组资源
连接耗尽攻击TCP建立大量空闲连接占用端口资源

二、TCP层定制防御方案

1. SYN Cookie防护(内核参数优化)
# 启用SYN Cookie  
echo 1 > /proc/sys/net/ipv4/tcp_syncookies  

# 优化半连接队列  
echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog  
echo 60 > /proc/sys/net/ipv4/tcp_synack_retries  
2. 动态防火墙规则(对抗IP伪造)
# 基于连接速率自动封禁(保存为syn_protect.py)  
from scapy.all import sniff, TCP, IP  
import os  

syn_counts = {}  
MAX_SYN = 50  # 每秒50个SYN包触发封禁  

def handle_packet(pkt):  
    if TCP in pkt and pkt[TCP].flags == 'S':  
        src_ip = pkt[IP].src  
        syn_counts[src_ip] = syn_counts.get(src_ip, 0) + 1  
        if syn_counts[src_ip] > MAX_SYN:  
            os.system(f"iptables -A INPUT -s {src_ip} -j DROP")  
            print(f"封禁SYN Flood IP: {src_ip}")  

sniff(filter="tcp", prn=handle_packet, store=0)  
3. TCP选项过滤(防协议栈指纹探测)
# 使用iptables过滤异常TCP选项  
iptables -A INPUT -p tcp -m tcp --tcp-option ! 2 -j DROP  # 仅允许MSS选项  
iptables -A INPUT -p tcp --tcp-flags ALL URG -j DROP       # 丢弃URG标志包  

三、UDP层定制防御方案

1. 反射攻击源端口封禁
# 封禁常见反射协议端口  
iptables -A INPUT -p udp --dport 123 -j DROP    # NTP  
iptables -A INPUT -p udp --dport 53 -j DROP     # DNS  
iptables -A INPUT -p udp --dport 1900 -j DROP   # SSDP  
2. 速率限制与包大小过滤
# 限制UDP包速率(每秒1000个包)  
iptables -A INPUT -p udp -m limit --limit 1000/sec -j ACCEPT  
iptables -A INPUT -p udp -j DROP  

# 过滤大尺寸UDP包(>512字节视为可疑)  
iptables -A INPUT -p udp -m length --length 512:65535 -j DROP  
3. 业务端口动态切换(对抗扫描)
# 每日更换UDP服务端口(保存为udp_port_rotate.py)  
import random, subprocess  

new_port = random.randint(10000, 65535)  
subprocess.run(f"sed -i 's/bind .*/bind 0.0.0.0:{new_port}/' /etc/service.conf", shell=True)  
subprocess.run("systemctl restart service", shell=True)  
print(f"今日UDP端口已更换为:{new_port}")  

四、工具链与监控方案

  1. 网络层监控工具
    • ntopng :实时流量分析
    • iftop :带宽占用排名
  2. 自动化防御框架
    • Suricata(IDS规则示例):

      # suricata.yaml 自定义规则  
      drop udp any any -> any 123 (msg:"Block NTP反射"; sid:100001;)  
  3. 云原生方案
    • AWS Shield Advanced(自动清洗四层流量)
    • GCP Cloud Armor(TCP/UDP防护策略)