Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.5 KiB
7.5 KiB
SecuBox DDoS 防护指南
SecuBox 提供多层 DDoS 防护,适用于家庭、SOHO 和中小企业部署。本文档描述了防护机制和配置选项。
防护层概览
| 层级 | 组件 | 缓解的攻击类型 |
|---|---|---|
| L3 | OpenWrt 防火墙 | SYN 洪水、ICMP 洪水、IP 欺骗 |
| L4 | nftables/iptables | 连接洪水、端口扫描 |
| L4 | CrowdSec | 分布式攻击检测 |
| L7 | HAProxy | HTTP 洪水、slowloris、请求轰炸 |
| L7 | mitmproxy WAF | 应用层洪水、机器人攻击 |
| DNS | Vortex 防火墙 | 僵尸网络 C2、DNS 放大 |
| 情报 | CrowdSec CAPI | 共享威胁情报 (50k+ 节点) |
第3/4层防护
SYN 洪水防护
OpenWrt 防火墙包含 SYN cookies 和 SYN 洪水防护:
# 检查当前状态
cat /proc/sys/net/ipv4/tcp_syncookies
# 通过 UCI 启用
uci set firewall.@defaults[0].synflood_protect='1'
uci commit firewall
/etc/init.d/firewall restart
连接跟踪限制
为高流量场景增加 conntrack 表大小:
# 检查当前限制
cat /proc/sys/net/netfilter/nf_conntrack_max
cat /proc/sys/net/netfilter/nf_conntrack_count
# 增加限制 (添加到 /etc/sysctl.conf)
echo "net.netfilter.nf_conntrack_max=131072" >> /etc/sysctl.conf
sysctl -p
反欺骗 (反向路径过滤)
# 启用 RP 过滤
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# 在 /etc/sysctl.conf 中持久化
echo "net.ipv4.conf.all.rp_filter=1" >> /etc/sysctl.conf
ICMP 速率限制
# 限制 ICMP 响应 (防止 ping 洪水放大)
echo 1000 > /proc/sys/net/ipv4/icmp_ratelimit
echo 50 > /proc/sys/net/ipv4/icmp_msgs_per_sec
丢弃无效数据包
uci set firewall.@defaults[0].drop_invalid='1'
uci commit firewall
/etc/init.d/firewall restart
CrowdSec 防护
CrowdSec 提供基于行为的检测和协作威胁情报。
安装 DDoS 集合
# HTTP 洪水检测
cscli collections install crowdsecurity/http-dos
# 基础 HTTP 攻击检测
cscli collections install crowdsecurity/base-http-scenarios
# Nginx/HAProxy 专用
cscli collections install crowdsecurity/nginx
cscli collections install crowdsecurity/haproxy
# 重启以应用
/etc/init.d/crowdsec restart
DDoS CrowdSec 场景
| 场景 | 描述 | 封禁时长 |
|---|---|---|
crowdsecurity/http-dos-swithcing-ua |
快速切换 user-agent | 4h |
crowdsecurity/http-generic-bf |
通用 HTTP 暴力破解 | 4h |
crowdsecurity/http-slow-bf |
Slowloris 风格攻击 | 4h |
crowdsecurity/http-crawl-non_statics |
激进爬取 | 4h |
查看活动防护
# 列出已安装的场景
cscli scenarios list
# 查看活动决策 (封禁)
cscli decisions list
# 查看实时指标
cscli metrics
HAProxy 速率限制
HAProxy 为发布的服务提供连接和请求速率限制。
全局连接限制
添加到 /etc/haproxy/haproxy.cfg:
global
maxconn 4096
defaults
maxconn 2000
timeout connect 5s
timeout client 30s
timeout server 30s
每后端速率限制
frontend https_in
bind *:443 ssl crt /etc/haproxy/certs/
# 速率限制: 每 IP 10 秒内 100 个请求
stick-table type ip size 100k expire 30s store http_req_rate(10s)
http-request track-sc0 src
http-request deny deny_status 429 if { sc_http_req_rate(0) gt 100 }
# 减慢激进客户端
http-request tarpit if { sc_http_req_rate(0) gt 50 }
连接队列 (吸收峰值)
backend myapp
server app1 192.168.255.1:8080 maxconn 100 maxqueue 500
mitmproxy L7 WAF
mitmproxy 检查 HTTP/HTTPS 流量并检测应用层攻击。
洪水检测
secubox_analytics.py 插件检测:
- 每 IP 的请求速率峰值
- 异常请求模式
- 机器人签名
- 自动扫描工具
启用 WAF
# 启动 mitmproxy 容器
/etc/init.d/mitmproxy start
# 检查状态
mitmproxyctl status
查看检测到的威胁
# 最近的威胁
tail -f /srv/mitmproxy/threats.log
# 威胁统计
mitmproxyctl stats
Vortex DNS 防火墙
Vortex 在 DNS 层面阻止已知的僵尸网络 C2 域名和恶意软件分发站点。
启用防护
# 更新威胁情报源
vortex-firewall intel update
# 启动防护
vortex-firewall start
# 检查统计
vortex-firewall stats
阻止的类别
- 恶意软件分发域名
- 僵尸网络 C2 服务器 (Mirai, Gafgyt 等)
- 钓鱼域名
- 加密矿池
InterceptoR 内网 WAF
InterceptoR 内网 WAF 检测来自被入侵 LAN 设备的 DDoS 参与:
- C2 信标检测 - 识别与 C2 通信的感染设备
- DNS 隧道 - 检测通过 DNS 的数据外泄
- IoT 僵尸网络模式 - Mirai、Gafgyt、Mozi 签名
- 加密矿工活动 - 矿池连接
检查内部威胁
# 查看 InterceptoR 状态
ubus call luci.interceptor status
# 在日志中检查内部威胁
grep "insider" /srv/mitmproxy/threats.log
Config Advisor DDoS 配置文件
运行 DDoS 特定的合规检查:
# 运行所有检查包括 DDoS
config-advisorctl check
# 仅运行 DDoS 检查
config-advisorctl check --category ddos
# 自动修复 DDoS 问题
config-advisorctl remediate --category ddos
DDoS 检查规则
| 规则 ID | 检查项 | 严重性 |
|---|---|---|
| DDOS-001 | SYN cookies 已启用 | 高 |
| DDOS-002 | 连接跟踪限制 | 中 |
| DDOS-003 | CrowdSec http-dos 已安装 | 高 |
| DDOS-004 | ICMP 速率限制 | 中 |
| DDOS-005 | 反向路径过滤 | 高 |
| DDOS-006 | HAProxy 连接限制 | 中 |
| DDOS-007 | mitmproxy WAF 活动 | 中 |
| DDOS-008 | Vortex DNS 防火墙 | 中 |
限制
SecuBox 设计用于家庭/中小企业规模。它不能:
- 吸收超过您 WAN 带宽的容量攻击
- 提供 Anycast/CDN 分发
- 充当清洗服务
严重 DDoS 防护
考虑添加上游防护:
- Cloudflare - 免费层包含基本 DDoS 防护
- Cloudflare Spectrum - 非 HTTP 服务的 TCP/UDP 代理
- AWS Shield - 如果在 AWS 上托管
- OVH Anti-DDoS - 如果使用 OVH 托管
混合设置
互联网 → Cloudflare (L3/L4/L7 清洗) → SecuBox (L7 WAF + 内部检测)
快速加固清单
# 1. 启用防火墙保护
uci set firewall.@defaults[0].synflood_protect='1'
uci set firewall.@defaults[0].drop_invalid='1'
uci commit firewall
# 2. 安装 CrowdSec DDoS 集合
cscli collections install crowdsecurity/http-dos
# 3. 启用内核保护
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_ratelimit=1000
net.netfilter.nf_conntrack_max=131072
EOF
sysctl -p
# 4. 启动 Vortex DNS 防火墙
vortex-firewall intel update
vortex-firewall start
# 5. 使用 Config Advisor 验证
config-advisorctl check --category ddos
攻击期间的监控
# 实时连接计数
watch -n 1 'cat /proc/sys/net/netfilter/nf_conntrack_count'
# CrowdSec 活动
watch -n 5 'cscli metrics'
# 活动封禁
cscli decisions list
# HAProxy 统计 (如果启用)
echo "show stat" | socat stdio /var/run/haproxy.sock
# mitmproxy 威胁
tail -f /srv/mitmproxy/threats.log