上一篇 (03) Wazuh 接入实战我们接进了第一台主机,告警开始流进你的 SOC。但很快你发现一个新问题:

“我管的几台服务器全在 Wazuh 里了,可办公室/家里的手机、电脑、IoT 设备——它们没装 agent,SOC 一点都不知道它们的存在。”

这是一个典型的盲区:小到家里的智能音箱,大到公司的小办公网络,没有 agent 也不想装 agent。但它们都连了同一台路由器——

这一篇解的就是这个问题。单台 TP-Link 路由器 = 一双看到全网的眼睛。你不需要在每台设备装什么,连上路由器的那一刻,它就在替你看所有流量了。

老规矩,先看路径:

TP-Link 路由器接入路径:路由器开启上网行为日志 → OTLP 推送到 Loki → AI-miniSOC 解析 → 资产/行为/异常

这一篇假设你已经把 02 篇的部署 走完了——Loki 已经跑着、AI-miniSOC 已经能登录。剩下的就是让路由器把日志推过去。


为什么是路由器?

这个问题的答案其实和"为什么 Wazuh 是主机入侵检测的事实标准"是同一个思路——你不需要在每个观测点都装软件,找到那个"天然的汇聚点"就够了。

家庭/小公司网络里,所有设备上网都得经过路由器。路由器天然就知道两件事:

  • 谁在上网:你的手机、笔记本、智能音箱——每台设备分配了 IP、MAC、主机名;
  • 上了什么网:访问了哪些网站、用了什么应用、花了多久。

厂商(TP-Link/华为/小米/华硕/爱快……)基本都在路由器管理界面提供了"上网行为日志"功能。这功能默认是关的——因为它量大、占存储、绝大多数人用不上。但对我们做 SOC 的人来说,这正是最便宜、最全的内部数据源。

本篇以 TP-Link TL-R479GP-AC(商用 VPN 路由器,企业级、家庭都常见)为例。其他品牌原理相同——大致路径都是「开日志 → 配远程推送 → 接收端解析」。

💡 成本:零。你已经有的路由器 + 你已经有的 Loki + 一点配置时间。


第 1 步:路由器端开启日志(5 分钟)

不同品牌 UI 略不同,但核心三件事相同:

  1. 开启"上网行为日志"——大部分 TP-Link 在「行为管理 → 上网行为管理」里,默认是关闭状态。把它打开;
  2. 开启 syslog 远程推送——行为管理 → syslog 设置 → 启用 → 填 Loki 的 OTLP 接收端地址(一般填 Loki 服务的 IP + 3100 端口);
  3. 重启路由器让它生效。

关于如何在路由器上配置和开启上网行为分析请参考《通过TPLink路由器进行用户行为审计实战》

这一步做完,所有联网设备的"谁 + 干了什么"就会实时推到 Loki 里——24 小时约 20 万条日志(实测 78% 是访问网址、22% 是使用应用类型),量不大但价值密度高。

在路由器上配置上网行为日志外发到Loki 关于如何配置Loki作为日志服务器请参考《Loki+Alloy+Grafana构建轻量级的日志分析系统》

配置完成后就可以在AI-miniSOC看到路由器送过来的行为日志数据 AI-miniSOC 接收到 TP-Link 推送的行为日志数据

🕳️ 坑 #1(血的教训):8 月我们栽过一次——tplink-collector 的 __main__.py 在 --test 分支里连开了 3 个 asyncio.run,第二个会抛 RuntimeError: Event loop is closed。修法:三个测试分支各收敛为单次 asyncio.run,收尾在同一循环内做。所以——升级到最新代码再跑。

🕳️ 坑 #2:路由器日志里同时含公网 IP(如 8.160.215.x,被路由器作为"访问源"记下),解析时必须区分内网/公网,否则公网 IP 的"行为"会被误算成内网基线——评估模块里专门加了这一步。


第 2 步:让 AI-miniSOC 知道路由器(5 分钟)

把 tplink-collector 加到采集器层(上一篇讲过采集器是 Docker Compose 起的):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# src/collectors/.env 加 TPLink 凭据
TP_LINK_URL=http://<router-ip>
TP_LINK_USERNAME=admin
ROUTER_PASSWORD=<路由器管理员密码>
MINISOC_API_KEY=<AI-miniSOC 控制台生成的 Key>

# 启动
cd src/collectors
docker compose up -d tplink-collector
docker compose logs -f tplink-collector

TP-Link 管理界面(SLP)的密码用 XOR 混淆加密(不是明文也不是 RSA,是它自己的一套字符映射)——这部分逻辑在 collector 框架里已经实现,不用你操心。

过关标准:docker compose logs 里看到 registered to AI-miniSOC backend, device count: N,且 soc_assets 表里冒出你办公室那堆手机/电脑——包括平时不装的 IoT 设备。

路由器里的接入设备列表 TP-Link 路由器在线终端列表:IP / MAC / 主机名 / 连接类型

同步到AI-miniSOC的设备 AI-miniSOC 资产管理页:同步进来的设备列表(含 MAC/操作系统/更新时间)

点开资产详情,可以看到资产的数据来源是TP- LINK路由器或Wazuh,不需要手工录入资产,解决手工录入资产导致的资产数据不准不及时的问题。 资产详情:数据来源字段同时显示 TP-Link 路由器和 Wazuh(自动多源汇聚)

🕳️ 坑 #3:TP-Link SLP 登录接口要求 X-Requested-With: XMLHttpRequest 请求头——少这个头服务器会返回 HTML 登录页(不是 JSON),采集器会卡在"解析 HTML 失败"上。这个坑集成在框架里了,但你如果写自己的脚本记得带上。


第 3 步:看每台设备在干什么(立刻)

第二步一旦通过,AI-miniSOC 的"行为画像"页就自动有内容了——不需要你做任何配置:

关于AI-miniSOC的“行为画像”请参考《从"凌晨在干啥"到"看清一个人"——我给 AI-miniSOC 做了套行为画像》

整体的行为画像AI-miniSOC 整体行为画像:所有设备活动总览 单个设备的行为画像 AI-miniSOC 单设备行为画像:某台设备 24h 访问域名/应用类型/活跃时段 AI-miniSOC 行为画像:某台设备 24h 访问域名/应用类型/活跃时段,访问习惯与每个阶段都在干什么都可以清晰的展现 AI-miniSOC 行为画像:各阶段访问习惯与在干什么清晰展现

这一页能告诉你三件事:

  • 最近 24 小时在访问什么域名——api.github.com、i.yximgs.com、… 一个普通员工的工作日长什么样;
  • 活跃时段——00:00-06:00 突然活跃的设备要么是定时任务,要么值得看一眼;
  • 应用类型分布——是 web 流量为主、还是大量 P2P/远程桌面?后者该查查是不是被当跳板了。

这是 Wazuh 看不到的信息——Wazuh 只在装了 agent 的主机上活动;路由器则覆盖了所有联网设备。两个数据源互补。


第 4 步:异常检测——单台路由器能告诉你这些

路由器日志单独看只是"谁访问了什么",但聚合起来它能告诉你哪些事?6 类常见异常场景:

六类异常场景——单台路由器能告诉你这些

#异常场景路由器日志里的特征真实例子
①未知域名爆增同一 IP 短时间内访问大量陌生域名自家设备上观察到的 stun-heyuan-v6.easytier.cn 隧道域名
②异常时段活跃凌晨 3 点突然大量访问04 篇真实场景
③隧道/穿透类域名frp.* ngrok.* *.nat.* stun.* 等内部主机被控后常见
④大量访问公网 IP路由器 ip 标签中公网 IP 占比异常数据外泄/代理出网
⑤高风险应用/端口P2P/远程桌面/未知协议占比上升内网被当跳板
⑥影子设备接入资产台账里没有的 IP 出现在流量里访客/未授权设备

AI-miniSOC 异常告警列表:路由器触发的异常访问告警

⚠️ 重要提醒:04 篇完成的是「检测能力 + 告警落地」,误报在所难免——比如某员工日常就在凌晨跑备份脚本。第一周多花点时间"调基线":哪些 IP 的行为算正常、哪些阈值合理。基线稳了,告警才是有价值的信号。


第 5 步:调基线(持续,1~2 周)

这一步是 6 类异常检测真正"为你所用"的关键:

  • 每个 IP 维护自己的基线:192.168.0.8 的工作日白天高活跃是正常、192.168.0.30 的凌晨 3 点突然活跃就值得看;
  • 告警阈值在配置中心调——AI-miniSOC 留了配置接口,不用改代码;
  • 误报收集到一张表里(“我这台开发机的 GitHub Actions 经常凌晨跑批”),后续规则里加白名单。

💡 基线 ≠ 锁死:网络变了(公司新业务、新人入职、IoT 增减)基线就要跟着调。告警治理是一个长期调参过程,不是上线就完事。


收尾:常见问题

Q:我用的小米/华为/华硕路由器,能用吗?

A:原理相同(都是 syslog/远程日志),但具体 API 抓终端列表这一步需要适配——tplink-collector 是 TP-Link SLP 专用。其他品牌做适配或换 Wazuh agent 装到路由器上(OpenWrt 系支持)。本篇以 TP-Link 为例。

Q:性能影响大吗?一台路由器扛得住吗?

A:现代路由器日志吞吐是百万级/天级别,对 100 台以下设备网络根本不是瓶颈。真正可能扛不住的是 Loki 的存储——所以 01 篇架构里我们设了 7 天保留期(你也可以调长,但要相应扩磁盘)。

Q:能在公司用吗?合法吗?

A:员工上网行为监控确实有合规要求——网安法、企业内控条例都有规定。建议:①公司内部有明确告知(员工手册/入职签字);②日志只用于安全审计、不做绩效依据;③查阅权限分级(普通 IT 不看、能看的人需要审计)。这一篇只讲"技术上怎么接",合规的事请你和法务/HR 一起定。

Q:和 03 篇 Wazuh 是什么关系?

A:互补,不重叠。

  • Wazuh = 装了 agent 的主机上的所有动作(文件、登录、进程……);
  • 路由器 = 所有联网设备(包括没装 agent 的手机/IoT/访客)的网络行为。

理想的小公司 SOC 应该是两者都有:装 agent 的服务器/重要工位有 Wazuh;全员所有设备的网络流量由路由器统一采。


写在最后

00 篇回答"为什么做",01 篇回答"凭什么行",02 篇回答"怎么跑",03 篇回答"第一台主机的告警怎么看",这一篇回答"没装 agent 的那堆设备怎么也能管"。

回头看这条主线:你的 SOC 现在能看见装了 Wazuh 的服务器、没装 agent 但连了路由器的所有设备——这个覆盖度,对小公司/家庭网络已经足够全面。剩下的是怎么从数据里自动找出那些不对劲的事——下一篇 (05) Nmap 攻击面扫描——零 agent 接入主题的收官之作。

老李的路由器已经替他家三口人加四台 IoT 看着上网行为了。你的呢?


【系列导航】《一个人的SOC》总目录(持续更新)

【上一篇】(03) Wazuh 接入实战——把第一台主机纳管进你的 SOC

【系列开篇】(00) 中小企业为什么需要自己的安全运营中心

【项目地址】AI-miniSOC - GitHub · MIT 开源,欢迎 Star ⭐

https://github.com/xiejava1018/AI-miniSOC 同步gitee https://gitee.com/xiejava/AI-miniSOC

【交流】 路由器接入卡住了?把 docker compose logs tplink-collector 的输出发到 Issue,我会逐个回复。


作者博客:http://xiejava.ishareread.com/

“fullbug”微信公众号

关注:微信公众号,一起学习成长!