OpenWRT(UBUS)
这是一个存在的检测扫描仪OpenWrt使用Ubus。它扫描以改变Hostapd。*
,它将检测并报告连接到路由器上接入点的设备的更改。
在可以使用此扫描仪之前uhttpd-mod-ubus
包裹):
OPKG Update OPKG安装rpcd-mod-file uhttpd-mod-ubus
并在OpenWrt设备上创建一个只读用户,可以通过设置ACL文件来使用/USR/share/rpcd/acl.d/user.json
。
{“用户”:{“描述”:“仅阅读用户访问角色”,,,,“读”:{“ Ubus”:{“*”:[[“*”这是给予的},,“ UCI”:[[“*”这是给予的},,“写”:{}}}
重新启动服务。更新/升级OpenWRT固件后,需要重新创建此ACL文件。
#/etc/init.d/rpcd restart && /etc/init.d/uhttpd restart
检查是否文件
名称空间已在RPC服务器上注册。
#UBUS列表|GREP文件文件
完成此操作后,将以下内容添加到您的configuration.yaml
文件:
#示例Configuration.yaml条目device_tracker:-平台:Ubus主持人:router_ip_address用户名:your_admin_username密码:your_admin_password
看到设备跟踪器集成页面有关说明,如何配置要跟踪的人。
故障排除
如果您发现这永远不会创造nown_devices.yaml
,或者,如果您需要有关家庭助理和OpenWrt之间的通信链的更多信息,请按照以下步骤获取数据包流并了解正在发生的事情。必威是什么
增加日志级别
在您的必威体育存款家庭助理设必威是什么备上,停止家庭助理
调整
configuration.yaml
记录更多细节device_tracker
零件记录器:默认:警告日志:homeassistant.components.device_tracker:调试
在另一个窗口中,在配置目录中的日志文件:
尾巴-Fhome-assistant.log |格雷普device_tracker
如果您看到以下python堆栈跟踪,请检查您的配置是否正确,以获取正确的用户名/密码。
17-04-28 10:43:30信息(mainthread)[homeassistant.loader]来自homeassistant.components.device_tracker 17-04-28 10:43:43:30 info(mainthread)来自homeassistant.components.device_tracker.ubus 17-04-28 10:43:30 Info(mainthread)[HOMEASSISTANT.SETUP]设置Device_tracker 17-04-28 10:43:31信息(mainthread)]设置device_tracker.ubus 17-04-28 10:43:31错误(mainthread)[homeassistant.components.device_tracker]错误设置平台ubus ubus ubus文件“//homeassistant/integrations/device_tracker/__init__.py”,第152行,在async_setup_platform文件中,“/在get_scanner文件中“/nt/venv/lib/python3.4/site-packages/homeassistant/intermations/intection_tracker/ubus.py”,第156行,在_get_session_id file”中/integrations/device_tracker/ubus.py”,第147行,在_req_json_rpc 17-04-28 10:43:31 info(mainthread)[homeassistant.core] [homeassistant.core]总线:处理
17-04-28 10:43:31信息(mainthread)[homeassistant.core]总线:处理 如果您看到类似于以下的线路重复的行,则与配置的检查间隔相对应(默认为12秒),则家庭助手正在正确轮询路由器,您需要查看路由器的发送内容。必威是什么
17-04-28 10:50:34信息(thread-7)[homeassistant.components.device_tracker.ubus]检查arp
使用TCPDUMP检查数据包
这些步骤要求tcpdump
安装在您的家庭助理设备上,并且您必威体育存款有一个实用必威是什么程序Wireshark用于查看数据包。它还假设家庭助理正在通过HTTP而不是HT必威是什么TP与您的路由器进行通信。
在您的必威体育存款家庭助理设必威是什么备上,停止家庭助理
在您的家庭助理设备上的另一个外壳中,启动必威体育存款TCPDU必威是什么MP
Sudotcpdump-nnvxss0-w/var/tmp/dt.out'主机
和端口80' - 在此示例中,我们只是在寻找往返80或端口的流量,我们将数据包流写为
/var/tmp/dt.out
- 在此示例中,我们只是在寻找往返80或端口的流量,我们将数据包流写为
开始家庭助理必威是什么
几秒钟后,您应该看到像
有xx
在哪里xx
是一个增加的数字。这表明它已经捕获了与我们的过滤器相匹配的数据包。看到此数字增加几次(> 20)后,您可以点击ctrl-c
取消捕获。转移
/var/tmp/dt.out
到您正在运行Wireshark的机器,然后将其拖动到Wireshark窗口上,或使用文件/打开以打开捕获文件。在打开的窗口中,查找读取的第一行
帖子 /ubus
。右键单击此行,选择“关注”,然后选择HTTP流以查看此连接的HTTP流。首先
邮政
将显示家庭助理登录U必威是什么BUS并接收会话标识符。看起来像这样:post/ubus http/1.1主机:10.68.0.1接受: */ *用户 - 代理:python-requests/2.13.0连接:keep-alive接受编码:gzip,gzip,deflate content lengtth:161 {“ jsonrpc”:“ jsonrpc”:“:”:2.0“,“ params”:[“ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000来id“:1} http/1.1 200 ok content-type:application/json传输编码:块连接:keep-alive {“ jsonrpc”:“ 2.0”,“ id”,“ id”:1,“ result”:[0,{0,{"ubus_rpc_session":"8b4e1632389fcfd09e96a792e01c332c","timeout":300,"expires":300,"acls":{"access-group":{"unauthenticated":["read"],"user":["read"]},“ ubus”:{“*”:[“*”],“ session”:[“ access”,“ login”]},“ uci”:{“*”:[“读”]}},“ data”:{“用户名”:“ root”}}]}}
在上面的响应中,读取的部分
“结果”:[0,
表示Ubus接受了登录而没有问题。如果不是0
,在线搜索UBUS状态与您接收的数字相对应,并解决其带来的任何问题。否则,在主Wireshark窗口中返回单击
X
在读取的过滤栏的右侧TCP.Stream EQ 0
。向下滚动直到找到下一个帖子 /ubus
排列并再次查看HTTP流。此请求是实际要求信息的家庭助理,必威是什么并且看起来如下:post/ubus http/1.1主机:10.68.0.1接受: */ *用户 - 代理:python-requests/2.13.0连接:keep-alive接受编码:gzip,gzip,deflate content-lengtth:114 {“ jsonrpc”:“ jsonrpc”:“:”:2.0“,“ params”:[“ 8B4E1632389FCFD09E9E96A792E01C332C”,“ HOSTAPD。JSON转移编码:块连接:keep-alive {“ jsonrpc”:“ 2.0”,“ id”:1,“结果”:{}}}
在这种情况下,我们实际上是在没有数据的情况下收到有效响应。该请求说我们正在寻找来自
Hostapd。*
,这是路由器上的访问点。在我的环境中,我不使用路由器上的AP,因此它正确返回没有数据。有了这些信息,我知道我不能将此集成用于设备跟踪或存在。
清理
完成故障排除后,请记住重置记录配置并删除任何包含敏感信息的捕获文件。