配置宝塔面板的CC防御规则的黑白名单时,如何配置日志闭环?
美国、香港服务器
配置宝塔面板的CC防御规则的黑白名单时,如何配置日志闭环?
02-05 来源:
配置宝塔面板 CC 防御黑白名单的日志闭环,核心是 “日志采集→分析→规则联动→审计清理→告警” 全链路自动化,结合面板可视化与命令行,实现静态黑白名单与动态规则的闭环优化,以下是可落地的配置方案。
一、日志闭环核心架构与关键路径
闭环逻辑:开启全量日志(攻击 / 访问 / 防御)→ 实时分析异常 IP/UA→ 自动联动黑白名单与动态规则→ 定期审计优化规则→ 日志归档清理→ 告警通知,形成防护 - 反馈 - 优化的循环。
关键日志路径:
CC 防御 / 攻击日志:/www/wwwlogs/waf/attack.log
Nginx 访问日志:/www/wwwlogs/[域名].log
Nginx 错误日志:/www/wwwlogs/[域名].error.log
防火墙规则日志:/www/server/panel/logs/firewall.log
二、面板可视化配置(快速部署)
1. 开启全量日志记录
WAF 攻击日志:安全 → Web 防火墙 → 设置,开启 “攻击日志记录”,日志目录默认 /www/wwwlogs/waf/,可自定义路径。
站点访问日志:网站 → 目标站点 → 设置 → 配置文件,添加access_log /www/wwwlogs/[域名].log;,开启访问日志,用于溯源攻击源。
CDN 真实 IP:安全 → Web 防火墙 → 设置,开启 “获取真实 IP”,确保日志记录源 IP 而非 CDN 节点 IP,避免误判。
2. 日志分析与规则联动
攻击日志一键联动:安全 → 攻击日志 → CC 防御,筛选高频攻击 IP/UA,点击 “加入黑名单”,自动同步至 IP/UA 黑名单,触发动态封禁。
误拦日志白名单补充:分析正常用户被拦截日志,将误拦 IP/UA 加入白名单,调大 CC 频率阈值,优化动态规则。
计划任务自动化:计划任务 → 新增任务,类型 “Shell 脚本”,实现日志分析与规则同步:
bash
运行
# 示例:每日分析攻击日志,将攻击超100次的IP加入黑名单
grep -oE "([0-9]+\.){3}[0-9]+" /www/wwwlogs/waf/attack.log | sort | uniq -c | awk "$1>100 {print $2}" | while read ip; do
bt firewall add blacklist --ip=$ip --expire=86400 --scope=global
done
bt reload firewall
3. 日志归档与清理
日志切割:计划任务 → 新增任务,类型 “日志切割”,选择日志路径(如 /www/wwwlogs/waf/),设置切割周期(每日)、保留天数(7 天)、压缩格式(gzip),防止日志过大占用磁盘。
定期清理:新增 Shell 脚本任务,清理过期日志:
bash
运行
find /www/wwwlogs/waf/ -mtime +7 -name "*.log*" -delete
4. 告警通知配置
面板设置 → 消息通知,开启 “安全告警”,配置邮件 / 钉钉 / 企业微信,接收 CC 攻击、黑白名单变更、日志异常等告警。
结合第三方监控工具(如 Zabbix),通过 API 对接攻击日志,实现实时告警。
三、命令行底层配置(批量 / 自动化)
1. 编辑 WAF 日志配置(config.lua)
打开配置文件:
bash
运行
vi /www/server/panel/vhost/wafconf/config.lua
开启日志并配置路径:
lua
attacklog = "on", -- 开启攻击日志
logdir = "/www/wwwlogs/waf/", -- 日志存储目录
CCDeny = "on", -- 开启CC防御
CCrate = "50/60", -- 60秒50次请求触发防御
autoBlackIP = "on", -- 攻击IP自动加入黑名单
保存后重启服务:
bash
运行
nginx -s reload && bt reload firewall
2. 日志分析与规则联动脚本(进阶)
bash
运行
#!/bin/bash
# 分析CC攻击日志,联动黑白名单与Fail2ban
# 1. 提取攻击IP并统计次数
attack_ips=$(grep -oE "([0-9]+\.){3}[0-9]+" /www/wwwlogs/waf/attack.log | sort | uniq -c)
# 2. 攻击超50次加入黑名单,超100次同步至Fail2ban
echo "$attack_ips" | awk "$1>50 {print $2}" | while read ip; do
bt firewall add blacklist --ip=$ip --expire=3600 --scope=global
if [ $(echo "$attack_ips" | grep -c "$ip") -gt 100 ]; then
fail2ban-client set nginx banip $ip
fi
done
# 3. 误拦IP加入白名单(从白名单候选文件读取)
while read ip; do
bt firewall add whitelist --ip=$ip --expire=0 --scope=global
done < /root/whitelist_candidates.txt
# 4. 重载规则
bt reload firewall && systemctl restart fail2ban
3. 日志审计与合规备份
配置 logrotate:编辑 /etc/logrotate.d/bt_waf,添加:
plaintext
/www/wwwlogs/waf/attack.log {
daily
rotate 7
compress
missingok
notifempty
postrotate
nginx -s reload
endscript
}
执行logrotate -f /etc/logrotate.d/bt_waf测试生效,实现日志自动轮转。
四、联动有效性验证与故障排除
验证方法
面板查看:安全 → 攻击日志,确认攻击 IP/UA 已记录并联动黑白名单。
命令行验证:
bash
运行
tail -f /www/wwwlogs/waf/attack.log
bt firewall list blacklist
fail2ban-client status nginx
模拟测试:用非黑白名单 IP 高频访问,检查日志是否记录、是否触发动态封禁并加入黑名单。
常见故障排除
日志无记录:检查 WAF 攻击日志是否开启,站点 access_log 是否配置,CDN 真实 IP 是否获取。
规则不同步:重启 Nginx、WAF 与 Fail2ban 服务,确保规则重载生效。
告警失效:检查消息通知配置,测试邮件 / 钉钉 / 企业微信连通性。
五、最佳实践与安全建议
分层日志:区分全局与站点级日志,全局日志用于通用分析,站点日志用于业务特定优化。
闭环优化:每周审计攻击日志,优化静态黑白名单与动态规则阈值,清理过期动态封禁 IP。
合规留存:根据法规要求,日志保留 30-90 天,确保可溯源与合规检查。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快