# 基于连接速率自动封禁(保存为syn_protect.py) from scapy.allimport sniff, TCP, IP
import os syn_counts ={}
MAX_SYN =50# 每秒50个SYN包触发封禁 defhandle_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)+1if 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 --dport123-j DROP # NTP
iptables -A INPUT -p udp --dport53-j DROP # DNS
iptables -A INPUT -p udp --dport1900-j DROP # SSDP
2. 速率限制与包大小过滤
# 限制UDP包速率(每秒1000个包)
iptables -A INPUT -p udp -m limit --limit1000/sec -j ACCEPT
iptables -A INPUT -p udp -j DROP # 过滤大尺寸UDP包(>512字节视为可疑)
iptables -A INPUT -p udp -m length --length512:65535 -j DROP
从零开发Chrome广告拦截插件:开发、打包到发布全攻略
想打造一个属于自己的Chrome插件,既能拦截烦人的广告,又能优雅地发布到Chrome Web Store?别担心,这篇教程将带你从零开始,动手开发一个功能强大且美观…