OpenBot出口网络策略:allowlist_only与deny_all如何让AI同事不越界上网
【免费下载链接】OpenBotOpen-source AI coworkers that each get a computer of their own: a browser, files and tools, with every action decided before it happens and recorded after. Bring any AG-UI agent.项目地址https://gitcode.com/GitHub_Trending/openb/OpenBot点击查看免费下载OpenBot 是一套开源的 AI 同事AI coworkers系统每位 AI 同事都拥有一台自己的电脑浏览器、文件和命令行工具。本文带你快速搞懂 OpenBot 的出口网络策略——尤其是allowlist_only和deny_all这两个模式看看它如何像一道防火墙一样让 AI 同事的上网行为始终在你的掌控之内。为什么 AI 同事需要一道网络边界 在 OpenBot 中AI 同事不是简单地调用一个聊天接口而是拥有一台完整的云电脑它会驱动浏览器、执行 shell 命令、读写文件。这意味着它随时可能发起网络请求。如果放任不管风险是真实存在的网页上的 JavaScript 可能诱导 AI 同事连接部署内部的数据库或其他服务AI 同事可能访问云厂商的元数据地址如169.254.169.254从而窃取机器凭据不同 AI 同事之间的网络权限无法隔离OpenBot 的解法很直接每台云电脑上运行一个出口过滤代理egress filter proxy。浏览器和 shell 命令的所有出站流量都必须先经过它由它对照网络策略逐条裁决。策略的完整实现位于 agent-computer/src/egress.ts官方架构说明可参考 docs/architecture.md。四种策略模式allow_all 到 deny_all 怎么选OpenBot 提供了 4 种出口网络策略模式见 egress.ts 中的模式定义模式含义适用场景allow_all允许访问任何目的地元数据地址除外开发测试、个人笔记本部署defaults_plus_allowlist默认软件源 你自定义的白名单兼顾开发效率与安全的折中选择allowlist_only仅允许白名单内的地址其余全部拒绝对安全要求高的生产部署deny_all禁止一切出站连接完全离线运行的 AI 同事其中defaults_plus_allowlist的默认目的地是一份内置的软件包注册表与源码主机清单包括github.com、registry.npmjs.org、pypi.org、crates.io、Docker Hub 等完整列表见 DEFAULT_EGRESS_DESTINATIONS——简单说就是让 AI 同事能正常安装依赖所需的最小集合。allowlist_only 详解白名单支持域名和 IP 段allowlist_only是最受安全团队青睐的模式白名单之外的所有连接一律返回403 Forbidden并附上一句清晰的拒绝原因例如 not on this deployments network allowlist。白名单规则支持两种类型域名规则如example.com自动覆盖其所有子域名、*.corp.example仅覆盖子域名不含根域IP 段规则如10.0.0.0/8还可以附加端口限制如10.0.0.0/8 443,5432在管理界面中白名单就是一行一条规则非常直观example.com *.corp.example 10.0.0.0/8 443,8443规则的解析与校验逻辑见 parseEgressRules裁决引擎核心是纯函数 egressDecision——它同时被 API 服务器和云电脑引用保证导航拦截与连接拦截两个端点永远不会不一致。一个值得注意的细节策略不仅检查域名还会解析域名后检查每一个解析出的 IP 地址且全部落在允许范围内才放行随后连接只使用已检查过的地址地址固定防止二次解析偷渡到别的地址。这让域名合法但解析到内网的绕路攻击无处遁形。deny_all一键关闭 AI 同事的上网能力 deny_all有点特别它不是让你在模式列表里手动选出来的而是由权限开关自动触发的。在 OpenBot 的企业控制中每位成员都有一组能力capability其中Cloud network access云端网络访问的描述是Bot 电脑可以在网络策略允许范围内访问互联网见 server/src/admin/capabilities.ts。当某位成员的Cloud network access被关闭时无论组织策略写得多么宽松该成员的 AI 同事都会立即获得deny_all策略——这条优先级规则实现在 effectiveNetworkPolicy 中先看权限关闭 → 直接deny_all再看策略组织策略可被成员所在群组的专属策略覆盖除非组织策略勾选了锁定什么都没有配置 → 等价于allow_all集群层面另行兜底换句话说deny_all是总闸一刀切断不费笔墨。配置步骤3 步设定组织或团队的出口策略整个配置过程在管理界面完成无需接触命令行进入企业控制页面在管理后台打开Enterprise controls选择 Network网络区块。界面实现位于 app/src/routes/_authed/admin/enterprise.tsx选择作用域为整个组织或某个群组设定策略。群组策略在组织策略未锁定时优先生效适合公司统一底线、团队按需细化的场景填写模式与白名单在模式下拉框中选择allow_all、defaults_plus_allowlist或allowlist_only界面文案分别为 Allow all network access 等在 Allowlist 文本框中每行一条规则组织级策略还可勾选Lock so groups cant replace this policy防止群组覆盖。表单实现见 NetworkDialog 小提示界面上的规则编辑器会自动识别 IP 段与域名10.0.0.0/8 443,5432这种写法即可同时限定 IP 段和端口。内置的永远禁止云元数据地址不可碰即使选择最宽松的allow_all有一组地址也是任何策略都放不行的——云厂商的元数据端点包括169.254.0.0/16AWS、Azure、GCP、Oracle 的凭据服务所在网段、阿里云的100.100.100.200及对应 IPv6 地址见 ALWAYS_DENIED 列表。检查逻辑还会识别伪装形态IPv4-mapped IPv6 地址、NAT64 前缀地址等全部还原后照查不误。这是默认安装下真正生效的一道守卫——因为 Helm Chart 中的 Kubernetes NetworkPolicy 默认是关闭的。策略如何实时生效推送机制 ⚡改完策略后无需重启任何 AI 同事的电脑。工作机制如下策略变更时API 服务器向所有运行中的电脑实时推送新策略推送逻辑见 pushEgressPolicies电脑每次启动、从挂起中唤醒时服务器也会在第一次动作前补推一次见 withPolicyPushOnWake电脑的策略过滤器启动即拒绝一切出站直到策略到达——先拒绝、后放行宁可短暂不可用也不留空窗期唯一的例外是环境变量EGRESS_POLICY_REQUIRED0用于不依赖 API 服务器独立运行的电脑此外OpenBot 还区分了AI 同事的浏览器和人自己的浏览器后者的可达范围由 server/src/browser/egress.ts 单独定义云浏览器可以访问公开互联网但同样进不了部署内部不会被 AI 同事的策略误伤。边界说明这套机制管什么、不管什么诚实地说出口过滤代理拦不住故意无视代理环境变量、直接开原始 socket 的进程——那属于操作系统/集群层面的职责。OpenBot 的做法是让 Kubernetes NetworkPolicy 负责兜底Helm Chart 中提供了配置两者互补而非互相替代。对普通用户来说这已经是纵深防御的标准姿势应用层egress 过滤代理 四种策略模式 元数据地址硬拒绝集群层Kubernetes NetworkPolicy按需启用快速回顾 OpenBot 的出口网络策略有 4 种模式allow_all、defaults_plus_allowlist、allowlist_only、deny_allallowlist_only是生产环境的推荐选择白名单外的连接一律 403 拒绝deny_all由Cloud network access权限关闭自动触发优先级最高策略实时推送到每台云电脑未收到策略时默认拒绝一切出站云元数据地址在所有模式下都被硬拒绝延伸阅读官方文档docs/architecture.md —— 出口过滤代理在整体架构中的位置核心实现agent-computer/src/egress.ts —— 规则解析、裁决引擎与过滤代理策略下发server/src/computer/policy-network.ts —— 策略计算与实时推送管理界面app/src/routes/_authed/admin/enterprise.tsx —— 企业控制中的 Network 配置测试用例agent-computer/tests/egress-policy.test.ts、server/tests/egress-policy-on-wake.test.ts赞分享【免费下载链接】OpenBotOpen-source AI coworkers that each get a computer of their own: a browser, files and tools, with every action decided before it happens and recorded after. Bring any AG-UI agent.项目地址https://gitcode.com/GitHub_Trending/openb/OpenBot点击查看免费下载相关推荐VirtualApp网络缓存策略对比不同策略的效果VirtualApp网络缓存策略对比不同策略的效果 在移动应用开发中网络缓存是提升用户体验和优化性能的关键技术。VirtualApp作为一款Android沙移动开发虚拟化FrostDB快速入门10分钟上手Go语言嵌入式宽列数据库FrostDB快速入门10分钟上手Go语言嵌入式宽列数据库 FrostDB是一款用Go语言编写的嵌入式宽列数据库它采用半结构化模式使用Apache ParJellium Desktop性能监控工具实时查看CPU、GPU与内存占用Jellium Desktop性能监控工具实时查看CPU、GPU与内存占用 Jellium Desktop作为一款非官方的Jellyfin桌面客户端为用户提桌面应用音视频视频上一篇终极游戏开发利器raylib让你10分钟创建跨平台游戏应用下一篇从零开始5分钟用raylib创建你的第一个游戏窗口创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考