Livebox路由管理服务

通过本地REST API管理和监控Orange Livebox 6路由器的服务。

  • by BenjaminDuthe
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BenjaminDuthe/livebox-mcp

使用说明

Livebox MCP服务器

🚧 进行中 -该项目正在开发中。

MCP服务器通过其本地REST API管理和监控Orange Livebox 6路由器。

安装

uv sync

用法

uv run livebox-mcp

环境变量

  • LIVEBOX_HOST -路由器IP(默认值:192.168.1.1)
  • LIVEBOX_PASSWORD -管理员(要求)

发展

# Lancer les tests
uv run pytest

# Vérification de types
uv run mypy src/

🚧 遇到的障碍点

1.未记录的身份验证

Livebox 6 API使用特定的身份验证机制 Orange未记录.

初始问题: 请求与 Authorization: Basic 或者标准标题失败,出现错误 "Object or parameter not found".

发现解决方案:

POST /ws HTTP/1.1
Content-Type: application/x-sah-ws-4-call+json
Authorization: X-Sah-Login

{
  "service": "sah.Device.Information",
  "method": "createContext",
  "parameters": {
    "applicationName": "webui",
    "username": "admin",
    "password": "votre_mot_de_passe"
  }
}

答案包括 contextID 包含在标题中 X-Context 对于以下请求。

2.端点系统总线vs/ws

问题: L终点 /ws 仅适用于身份验证。

解决方案: API调用必须使用Sysbus端点:

POST /sysbus/{service}:{method}

示例: POST /sysbus/DeviceInfo:get

3、🔒 Livebox 6的主要API限制

这是金发女郎校长。 Orange严重限制了对Livebox 6固件的API访问。

服务可访问性✅

服务 方法 描述
DeviceInfo get 系统信息(型号、版本、正常运行时间)
NMC getWANStatus 互联网连接状态
NMC get 网络信息
UserInterface getLanguage 语言界面

服务块❌ (“权限被拒绝”)

服务 描述 法规
NMC.Wifi WiFi控制 🔒 被阻止
Hosts 连接的设备 🔒 被阻止
DHCPv4.Server DHCP配置 🔒 被阻止
Firewall 防火墙、端口转发 🔒 被阻止
VoiceService 电话 🔒 被阻止
Time 系统时钟 🔒 被阻止
NMC.NetworkConfig 诊断(ping、traceroute) 🔒 被阻止
UserManagement 用户管理 🔒 被阻止

4.绕过尝试失败

我们测试了几种方法,但没有成功:

方法 结果
替代用户(root, su, support) 独自一人 admin 工作
HTTPS(端口443) 不可用
替代端点(/api/, /cgi-bin/) 404
附加标题(X-Requested-With等) 无影响
扫描所有Sysbus服务 相同的限制

5.关于限制的假设

  • 固件Livebox 6: Orange似乎有意限制本地API
  • 用户组: 重新验证 groups: "http" -权限有限的组
  • 加强安全: 可能是为了避免通过脚本进行未经授权的更改

6.与Livebox 5的比较

根据社区文档,Livebox 5提供了更全面的API访问。Livebox 6代表了API可访问性方面的显著回归。


项目现状

什么有效✅

  • 身份验证X-Sah-Login
  • 系统信息恢复(DeviceInfo)
  • 互联网连接状态(NMC.getWANStatus)
  • 全套测试套件(123项测试)

什么已实现,但被Orange阻止🔒

  • 30个定义的MCP工具(WiFi、DHCP、防火墙等)
  • 完整的API客户端
  • 所有功能的处理程序

潜在的下一步

  1. 监控Orange固件更新
  2. 探索其他访问方法(如果启用Telnet?)
  3. 记录Livebox版本之间的差异
  4. 联系社区获取替代解决方案

资源