宝塔面板可通过日志分析与告警机制识别敏感访问行为。具体包括:一、启用网站日志并确认路径;二、Web界面关键词扫描;三、配置实时关键字告警;四、SSH命令行深度检索;五、Logstash+ELK结构化审计。

如果您希望在宝塔面板中识别包含特定关键词的用户访问行为,例如检测“/wp-admin”、“phpmyadmin”、“shell.php”等敏感路径请求,或追踪“sqlmap”、“xss”、“union select”等攻击特征字符串,则需借助日志分析与告警机制实现精准捕获。以下是具体操作步骤:
一、启用网站日志并确认日志路径
宝塔面板默认为每个网站生成标准格式的访问日志(access.log)和错误日志(error.log),其存储位置固定,是后续关键词审计的基础。确保日志功能已启用且路径可读,才能进行有效筛选。
1、登录宝塔面板,进入【网站】页面。
2、点击目标站点右侧的【设置】按钮。
3、切换至【日志】选项卡,确认【访问日志】和【错误日志】状态为“开启”。
4、记录该站点日志路径:/www/wwwlogs/域名.log(如未启用SSL则为纯域名;启用后通常为域名-ssl.log)。
二、使用Web界面执行关键词日志扫描
宝塔面板内置的“Web日志分析”功能支持按正则表达式匹配关键词,可快速定位含指定字符串的请求行,适用于一次性审计或周期性抽查。
1、在左侧菜单栏点击【日志】→【网站日志】。
2、在顶部下拉框中选择需审计的目标网站。
3、点击【Web日志分析】按钮,进入分析界面。
4、在“自定义规则”输入框中填入关键词,例如:/admin|phpmyadmin|\.php\?id=.*union.*select(支持管道符“|”分隔多个关键词,也支持基础正则语法)。
5、点击【日志扫描】,系统将遍历最近7天的访问日志并高亮显示匹配项。
三、配置关键字实时告警
当需对特定关键词实现持续监控并即时响应时,应启用日志关键字告警功能,触发后通过预设通道通知管理员,避免人工巡检遗漏。
1、进入【安全】→【安全策略】→【日志监控】(若未安装“日志监控”插件,请先前往【软件商店】搜索并安装)。
2、点击【添加监控规则】。
3、在“监控日志路径”中填写:/www/wwwlogs/域名.log。
4、在“匹配关键词”中输入目标字符串,例如:curl.*-X POST|wget.*http.*sh$|base64.*[A-Za-z0-9+/=]{20,}。
5、设置告警方式:勾选邮件、钉钉、企业微信等已配置的通知渠道。
6、保存规则,系统将每5分钟轮询一次日志末尾新增内容并触发匹配判断。
四、通过SSH命令行进行深度关键词检索
对于需跨多日志文件、支持复杂正则或导出原始匹配行的高级审计场景,直接使用Linux命令工具可获得更高灵活性与执行效率。
1、通过SSH登录服务器,切换至网站日志目录:cd /www/wwwlogs。
2、使用grep命令检索关键词,例如查找所有含“shell.php”的GET请求:grep -r "GET.*shell\.php" *.log | head -n 50。
3、结合awk提取IP与时间字段,生成简易攻击源清单:grep "xss" *.log | awk '{print $1,$4}' | sort | uniq -c | sort -nr。
4、将结果保存为审计报告:grep -i "sqlmap" *.log > /tmp/sqlmap_audit.log。
五、部署Logstash+ELK实现结构化关键词审计
针对多站点、高并发环境,需将非结构化的Nginx/Apache日志转换为可索引、可聚合的JSON格式,并在Kibana中构建关键词仪表盘,支撑长期趋势分析与关联研判。
1、在ELK服务器上编辑Logstash配置文件,添加网站日志输入源:path => "/www/wwwlogs/*.log"。
2、在filter段加入grok解析与关键词标记逻辑:if [message] =~ /(?i)webshell|eval\(base64_decode/ { mutate { add_tag => ["malicious"] } }。
3、启动Logstash服务,确保日志事件被写入Elasticsearch索引。
4、在Kibana中创建Discover视图,使用查询语句:tags: "malicious" AND @timestamp >= now-7d。
5、保存为“高危关键词访问记录”搜索,并加入Dashboard进行可视化展示。










