
核心要点(TL;DR)
- 云WAF挡应用层攻击最省事,主机防护补内网盲区,自建WAF只适合有专职安全团队。
- 选型前先做资产与流量梳理,否则规则调优无从下手。
- 预算有限优先云WAF+主机基线加固,性价比最高。
- 任何方案上线后都要用验证命令确认拦截生效,而非只看控制台。
很多站长在网站被刷、被扫、被注入之后才开始找方案,结果面对云WAF、主机防护、自建WAF三种路线无从下手:买贵的怕浪费,买便宜的怕不顶用,自建又怕没人维护。本文不谈概念,直接按“先梳理、再接入、后验证”的顺序,给出可执行的选型步骤、命令和检查清单,帮你在预算内把网站安全防护方案定下来。
一、三类方案到底防什么:先划清边界
选型第一步不是比价格,而是搞清楚每种方案能挡住哪一层攻击。很多“买了WAF还被黑”的案例,本质是攻击发生在WAF覆盖不到的内网或主机层。
| 方案 | 主要防护层 | 典型能力 | 盲区 |
|---|---|---|---|
| 云WAF | 应用层(L7) | SQL注入、XSS、CC限速、Bot管理、虚拟补丁 | 内网横向、主机提权、源站直连绕过 |
| 主机防护 | 系统与进程层 | 基线加固、文件完整性、入侵检测、漏洞修复 | 大流量CC、0day应用漏洞 |
| 自建WAF | 应用层(自控) | 规则完全自定义、日志本地留存 | 规则维护人力、误报调优、DDoS清洗能力弱 |
结论很直接:云WAF管入口,主机防护管落地,自建WAF只适合有专职安全人力且对数据自主可控有硬要求的团队。三者不是互斥关系,而是覆盖不同层面的组合。
二、动手前先做资产与流量梳理
没有清单的选型都是拍脑袋。用下面几条命令把家底摸清,再决定买什么。
# 查看对外监听端口,确认暴露面
ss -tlnp | grep -E ':(80|443|8080|3306|6379)'
# 统计近7天访问来源Top IP,判断是否有异常集中
awk '{print }' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
# 找出请求量异常的URL路径(疑似CC或扫描)
awk '{print }' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20梳理后形成三张表:域名与源站IP清单、对外开放端口清单、高频异常请求特征。这三张表直接决定WAF规则怎么配、主机要关哪些端口。
三、云WAF接入:四步落地与验证
云WAF是多数站点的首选,但接入不规范等于白买。按以下步骤执行:
- 切解析:域名CNAME指向WAF提供的接入地址,TTL临时调低到60秒便于回滚。
- 锁源站:安全组或iptables只放行WAF回源IP段。
iptables -A INPUT -p tcp --dport 443 -s 回源IP段 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j DROP - 开防护模式:先观察模式跑3到7天,看误报日志,再把高危规则切拦截,CC阈值按业务QPS的1.5到2倍设置。
- 验证生效:构造带攻击特征的探测请求,确认返回拦截页;同时直连源站确认已被拒绝。
防护建议:如果团队没有精力做规则调优,可选择提供托管规则与CC智能限速能力的服务,例如 AegisX 的云WAF在接入向导中内置了源站锁定检查和观察模式报表,能减少手工调规则的试错成本。
四、主机防护:最小基线检查清单
主机防护不需要一次做全,先把下面五项做到位,能挡掉大部分自动化入侵。
- 补丁:
apt list --upgradable或yum check-update,优先修中间件与内核。 - SSH:
PermitRootLogin no、PasswordAuthentication no,只允许密钥登录并限制来源IP。 - 权限:Web目录属主为运行用户,禁止777;上传目录禁用执行权限。
- 完整性:对站点目录做哈希基线,定时比对,发现被篡改立即告警。
- 日志:保留Nginx访问日志与系统认证日志至少30天,便于溯源。
检查命令:lastb | head 看暴力破解来源,ss -tlnp 看是否有意外监听端口,find /var/www -perm -o+w 找全局可写文件。
五、自建WAF:什么时候值得做
自建WAF(如Nginx+ModSecurity+OWASP CRS)的优势是规则与日志完全自控,适合有合规要求或需要深度定制的场景。但代价明确:
- CRS规则误报需要持续调优,没有专人会误杀正常业务;
- CC防护要自己配
limit_req与limit_conn,阈值拍错就影响用户体验; - 面对大流量DDoS,自建节点清洗能力远不如云服务。
判断标准:团队有至少一名能持续跟进安全规则的人,且业务对数据不出域有硬性要求,再考虑自建;否则用云WAF过渡更划算。
六、行动建议:按预算分档落地
给出三档可执行路径:低预算,云WAF基础版+主机五项基线,先解决入口与落地两层;中等预算,云WAF标准版(含CC与Bot管理)+主机防护Agent+日志留存;高要求,云WAF+主机防护+自建规则补充,形成纵深。无论哪档,上线后都要用探测请求验证拦截是否生效,并把源站IP暴露检查列入每月巡检。选型不是一次性的,业务量级变化后重新评估阈值与规则,才能让网站安全防护方案持续有效。
常见问题(FAQ)
小网站预算有限,云WAF和主机防护只能选一个,选哪个?
优先选云WAF。绝大多数站点被打的是SQL注入、XSS、CC这类应用层攻击,云WAF在流量入口就能拦,且无需改动服务器;主机防护更偏补漏洞和防提权,属于第二道防线。等业务稳定后再补主机基线加固即可。
云WAF接入后源站IP暴露了怎么办?
必须做源站隐藏。把域名解析切到WAF提供的CNAME,源站安全组只放行WAF回源IP段,例如用iptables仅允许指定网段访问80/443,其余DROP;同时检查历史DNS记录、邮件头、证书透明度日志是否泄露真实IP,必要时更换源站IP。
自建WAF用ModSecurity够用吗?
中小流量够用,但要接受运维成本。ModSecurity配OWASP CRS能覆盖常见规则,但规则误报需要持续调优,CC防护还要配合Nginx限速模块。没有专人盯日志和规则更新时,误杀业务请求的风险高于收益,建议先用云WAF过渡。
主机防护具体要做哪些检查?
至少覆盖四项:系统与中间件补丁是否最新、SSH是否禁密码登录并限制来源、Web目录权限是否最小化、是否部署了文件完整性监控。可用命令快速核查,如检查监听端口ss -tlnp、查看登录失败记录lastb,发现异常立即处置。
怎么验证WAF规则真的生效了?
用无害探测请求验证。例如请求带明显攻击特征的URL参数,观察是否返回拦截页而非业务页面;同时对比直连源站与经WAF访问的响应差异。注意探测要控制频率并提前告知,避免触发告警或影响真实用户。