1. 总体概述与部署前准备
部署前先确认:服务器公网IP、带宽上限、是否支持BGP/Anycast与云厂商提供的DDoS服务。
准备:一台测试服务器(非生产)、SSH密钥、管理控制台权限、基础监控(Prometheus/Grafana或云厂商监控)。
2. 推荐的网络架构(分层防护)
架构要点:外侧使用CDN/边缘清洗、接着是流量清洗层(云厂商Anti-DDoS或第三方清洗),最后是负载均衡+源站。
步骤:1) 将域名指向CDN/Anycast IP;2) 配置回源为负载均衡器或多个台湾节点;3) 在源站开放仅负载均衡器IP的访问。
3. 启用云厂商/第三方DDoS清洗
如果租用的云支持Anti-DDoS:登录控制台,选择按流量/按带宽防护,绑定目标IP并设置阈值(例如突发>200 Mbps触发清洗)。
若无内建,购买第三方清洗服务或使用CDN厂商WAF+DDoS模块并完成DNS切换与回源白名单。
4. 边缘与负载层的实作要点
使用Anycast/多个POP可以分散流量;负载均衡器开启健康检查。
配置健康检查:协议HTTP/HTTPS,路径/health,间隔10s,超时5s,失败阈值3。
5. 服务器内核与网络参数硬化(具体命令)
修改sysctl以抵御SYN泛滥与连接耗尽,编辑 /etc/sysctl.conf 并应用:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.ip_local_port_range=1024 65535
net.netfilter.nf_conntrack_max=262144(视内存调整)
执行 sysctl -p 生效。
6. iptables/nftables基础限速规则示例
防止单IP泛滥连接:示例iptables(Debian/Ubuntu):
iptables -N SYNFLOOD
iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 100 -j RETURN
iptables -A INPUT -p tcp --syn -j DROP
对SSH使用fail2ban结合iptables限制频繁连接。
7. Web层限流与WAF部署(Nginx + ModSecurity示例)
Nginx限流示例:在http或server块加入:
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;
limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;
limit_req zone=req burst=20 nodelay;
部署ModSecurity或云WAF并启用OWASP规则集拦截常见攻击。
8. 入侵检测系统(Suricata)安装与规则配置
Ubuntu安装:
apt update && apt install -y suricata
编辑 /etc/suricata/suricata.yaml 指定home-net为内网网段(例如 192.168.0.0/24 或服务器公网IP/32),启用eve-log输出。
下载规则:suricata-update && systemctl restart suricata。
验证:suricata -c /etc/suricata/suricata.yaml -i eth0 并查看 /var/log/suricata/eve.json。
9. 主机入侵防护与自动封禁(fail2ban, PSAD)
安装fail2ban并新增jail(例如保护ssh、nginx-auth):/etc/fail2ban/jail.local 示例:
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
对于更底层的端口扫描检测,安装psad并启用与iptables配合的告警与自动封禁。
10. 日志集中与告警(SIEM/ELK)
收集Suricata eve.json、nginx access/error、syslog到ELK或Prometheus+Grafana,建立告警规则:
示例:5分钟内出现同一IP超过1000次请求触发高优先级告警并自动触发防火墙加入黑名单脚本。
11. 演练与应急响应流程
建立SOP:流量升高→切换到全流量清洗→增加黑名单→启动取证(抓包/保存日志)。
定期演练:每季度一次模拟DDoS/入侵并评估恢复时间与误伤率。
12. 日常维护与合规注意事项
保持Suricata和WAF规则更新(suricata-update或供应商规则),定期查看conntrack与iptables计数。
遵守当地法律与隐私规定,必要时与台湾当地网络服务提供商沟通流量清洗细节。
13. 常见问:台湾服务器在DDoS防护上优先考虑什么?
答:优先考虑是否能接入云厂商或第三方的清洗服务与Anycast/CDN能力,其次是带宽峰值与BGP支持,最后是本地法务与合规。实践上先开启边缘清洗再做源站硬化。
14. 常见问:如何快速在攻击时自动封禁攻击IP?
答:组合Suricata/Fail2ban/自写脚本:Suricata通过eve.json识别恶意IP,调用报警脚本将IP写入iptables黑名单并同步到云防火墙或负载均衡白名单/黑名单,脚本示例:iptables -I INPUT -s
-j DROP,并设置定时清理策略。
15. 常见问:入侵检测误报太多怎么办?
答:调优规则集与阈值:先在被动模式(告警不阻断)观察7~14天,统计误报样本并通过whitelist或自定义规则减少误报,再逐步提高阻断策略;同时完善日志与上下文以便人工复核。
来源:安全防护台湾服务器租用云空间DDoS防护与入侵检测部署建议