💡 官方FAQ
常见问题解答 (FAQ)
关于 RoamSwitch (Mac / Linux) 的核心概念、零遥测架构、自主防御机制、运行环境以及 AI/MCP 集成的常见问题解答。
🍎 基本概念与核心理念
Q1. 什么是 RoamSwitch for Mac?
RoamSwitch for Mac 是一款专为 macOS 设计的零信任自主网络防御与安全诊断工具,严格恪守“Zero Telemetry(零遥测,不向外部发送使用情况和诊断结果)”原则。它提供基于 Wi-Fi 环境的内核包过滤器 (pf) 毫秒级自动切换、勒索软件加密行为检测与 Air-Gap 物理级网络隔离、开发服务器局域网暴露防护、未知端口自动拦截、恶意 USB 存储与 BadUSB 键盘防御、18 项安全综合诊断以及基于 MCP 的只读 AI 集成。
Q2. 免费版 (Free) 与 Pro 永久版(买断制)有什么区别?
免费版支持 Wi-Fi 自动检测、pf 三级安全策略切换、共享服务自动暂停与恢复、18 项手动安全诊断、Wi-Fi 加密安全警告以及端口/USB 设备监控(仅供查看),无使用期限。Pro 永久版($19.99 / ¥2,980 一次性买断,终身免费更新)增加了勒索软件实时检测与 Air-Gap 网络隔离、开发服务器局域网暴露隔离、异常端口自动拦截、ARP 欺骗自动响应与网关 ARP/NDP 静态绑定(预防)、VPN 自动隧道与 Kill Switch(WireGuard / Tailscale 联动)、恶意 USB 存储与 BadUSB 键盘防护、网页/邮件下载 ClamAV 自动扫描与隔离、危险 AI 模型 (.pkl) 下载拦截、DNS 威胁防御、恶意链接拦截(/etc/hosts 黑洞机制)、链接安全诊断、剪贴板 API Key 泄露防护、非信任网络自动关闭蓝牙、自主巡检、CSV/JSON 导出以及单用户授权 2 台 Mac 使用。
Q3. RoamSwitch 与传统杀毒软件或 Little Snitch 等工具有何不同?
传统杀毒软件主要依赖已知病毒特征库的被动扫描,而 RoamSwitch 专注于毫秒级感知 Wi-Fi 网络环境变化,在内核层 (pf) 自主拦截端口与共享服务。与 Little Snitch 等频繁弹出确认对话框的交互式防火墙不同,RoamSwitch 在配置好信任网络后实现真正的“零点击 (Zero-Click)”全自动后台防护,绝不打扰您的日常工作。
Q4. 如何保证 Zero Telemetry(不发送使用情况的设计)?
软件内部不包含任何分析统计(Analytics)、外部追踪或遥测数据上传代码。开发商 Lafine 在安全设计文档(白皮书)中公开了全部对外通信路径,用户可自行使用 Wireshark 或 tcpdump 验证,通信仅发生在已公开的路径上(许可证激活、更新检查、接收已签名的更新数据等)。
⚙️ 功能与技术规格
Q5. 什么是网络安全配置文件的自动切换 (pf 控制)?
RoamSwitch 能在毫秒内识别连接的 Wi-Fi 网关 MAC 地址 (BSSID) 与 SSID,自动应用三套 macOS 内核包过滤 (pf) 规则之一:信任(家庭/办公室)、Balanced(标准防护)或 Lockdown(公共 Wi-Fi/未登记)。在咖啡厅打开 Mac 的瞬间,所有未授权的入站监听端口将被即刻封锁。
Q6. 勒索软件自主检测与 Air-Gap 隔离是如何工作的?
通过在核心目录(桌面、文稿、下载等)部署诱饵金丝雀 (Canary) 文件,并利用 FSEvents 监控高频修改与加密熵值突增,一旦检测到勒索加密迹象,立刻使用 SIGSTOP 冻结恶意进程,切断所有网络连接 (pf Air-Gap) 并暂停文件共享,防止局域网横向扩散及 Time Machine 备份损坏。
Q7. 什么是开发服务器局域网暴露隔离?
在启动前端开发服务(Vite、Next.js 等)或本地 AI 模型后端(Ollama、LM Studio 等)时,服务常默认绑定 0.0.0.0,导致同一 Wi-Fi 下的他人可直接访问。RoamSwitch 会自动侦测并在公网 LAN 阻断该端口,同时保持 localhost 本地正常访问。
Q8. 共享服务(SSH / SMB / 屏幕共享 / AirDrop)自动控制是如何运作的?
即使在家庭 LAN 中开启了远程登录 (SSH)、文件共享 (SMB)、屏幕共享 (VNC) 或 AirDrop,一旦 Mac 连接到非信任 Wi-Fi,RoamSwitch 会自动暂停这些入站服务;返回信任网络后则会自动恢复。
Q9. 什么是恶意 USB 存储防御与 BadUSB 键盘防御?
当插入未经登记的未知 USB 存储设备时,自动卸载并弹出确认(或设为只读并使用 ClamAV 扫描)。当插入伪装成键盘、以超高速度注入恶意命令的 BadUSB(如 Rubber Ducky)时,软件会临时拦截按键输入并弹出授权弹窗,阻止自动化恶意载荷注入。
Q10. 什么是 ARP 欺骗检测与网关预防性绑定?
实时监控同一 Wi-Fi 内冒充网关进行窃听篡改的中间人攻击 (MitM),一旦发现立即执行紧急 Air-Gap 网络切断。此外,在连入非信任网络时,自动将网关与 DNS 的 MAC 地址固化至邻居缓存中,从源头预防 ARP/NDP 投毒。
Q11. 什么是 DNS 威胁防御与网页/邮件下载保护?
通过切换到 Quad9/Cloudflare/AdGuard 等防护 DNS,拦截恶意 C2 服务器与钓鱼网站的域名解析(在外出使用的 Wi-Fi 下,DNS 查询会发送到该服务商),并通过 FSEvents 实时感知浏览器或邮件下载的文件及危险 AI 模型 (.pkl/.pt),调用 ClamAV 自动扫描与隔离。
Q12. 什么是链接安全诊断 (Link Audit) 与被动链接保护?
在点击邮件或聊天软件中的链接前,对短链接展开、重定向追踪、Unicode 仿冒字符和域名信誉进行诊断(不会将诊断结果或您输入的 URL 发送给开发商;展开短链接和追踪重定向时,会为确认目的直接向目标 URL 发送 HEAD 请求)。被动链接保护还会将已确认的钓鱼域名自动通过 /etc/hosts 黑洞拦截。
💻 运行环境、安装与配置
Q13. 支持哪些 macOS 版本与硬件架构?
支持 macOS 13 Ventura 及更高版本。专为 Apple Silicon Mac(M1 / M2 / M3 / M4 及后续芯片)打造,不支持 Intel Mac。
Q14. 为什么通过官网 (.dmg) 而非 Mac App Store 分发?
RoamSwitch 的核心能力(内核 pf 毫秒控制与 SMAppService.daemon 特权守护进程)无法在 App Store 严苛的沙盒限制下运行。官网分发的 .dmg 包均拥有 Apple 开发者官方签名并通过 Apple 官方公证 (Notarization)。
Q15. 提示“Helper 连接失败”或“Operation not permitted”该如何处理?
请打开 系统设置 → 通用 → 登录项与扩展,在“允许在后台”列表中将 RoamSwitch 守护进程设为开启。确保 App 放置在 /Applications 文件夹中,然后重启应用。
Q16. 启用防病毒功能后,RoamSwitch 会请求访问「桌面」和「下载」文件夹的权限。这是危险行为吗?
不是,这并非危险行为。「Web·邮件保护」功能会在浏览器或邮件下载文件的瞬间立即进行病毒扫描,因此会通过 macOS 的标准权限系统请求访问桌面、下载和文稿文件夹。RoamSwitch 会在该提示出现之前先在应用内说明原因,这是正规的系统权限(TCC),而非未经授权的访问。扫描完全在您的 Mac 本机完成,文件内容绝不会发送到外部服务器(Zero Telemetry)。如果您不想授予此权限,也可以让该功能保持关闭,其他防护功能(如 DNS 威胁防护)仍会正常工作。
Q17. 许可证是否支持迁移或在多台 Mac 上使用?
单张 Pro 永久版许可证支持同一用户拥有的最多 2 台 Mac 安装激活。如需迁移至新 Mac,可在旧设备上反激活或联系官方技术支持。
如何卸载 RoamSwitch?删除后网络会一直不通吗?
在菜单栏中选择“🧰 恢复与卸载”→“🗑 卸载 RoamSwitch…”(1.10.5 及以后版本)。在删除之前,RoamSwitch 会先撤销它对网络所做的全部更改(隔离、VPN 终止开关、网关 ARP 固定、DNS、链接防护的 hosts 条目等),因此不会让网络一直不通。详情请参阅卸载步骤。
🤖 安全诊断、AI 集成 (MCP) 与开发者工具
Q18. Mac 安全综合诊断(15 项)包含哪些检查?
覆盖 FileVault 全盘加密、SIP 系统完整性保护、Gatekeeper、自动安全更新、XProtect 状态、系统防火墙、隐身模式、Wi-Fi 加密强度、ARP 欺骗状态、外部暴露端口等 18 个关键安全维度,并给出综合评分 (0~100)。
Q19. 附带的 MCP 服务器是什么?支持哪些 AI 工具?
它是符合 Model Context Protocol (MCP) 行业标准的安全接口,支持 Claude Desktop、Claude Code、Cursor、OpenCode、Google Antigravity 等 AI 助手直接读取 Mac 的安全诊断报告与状态。
Q20. AI 是否可能通过 MCP 恶意修改 Mac 的系统配置?
绝无可能。附带的 MCP 服务器 (RoamSwitchMCPServer) 基于本地 stdio 设计为“完全只读 (Read-Only)”。即使 AI 遭遇 Prompt Injection,也无法修改防火墙规则或篡改系统文件。
Q21. 是否可以通过自定义 Swift 应用或脚本调用 RoamSwitch 数据?
可以。我们提供了官方开源的 Swift 客户端 SDK RoamSwitchKit(支持 SPM)。只需几行 Swift 异步代码即可轻松读取安全评分、开放端口、防护状态与链接安全报告。
Q22. USB键盘突然无法使用了,是坏了吗?
A. 很可能不是故障。RoamSwitch的「不明USB / BadUSB键盘防护」可能检测到了未注册的键盘,正在暂时阻止其输入。在连接时弹出的批准对话框中选择「允许」,该键盘之后即可正常使用(如果错过了对话框,重新插拔键盘即可再次显示)。若3分钟内无操作,输入会自动解除阻止。如果问题仍未解决,请在菜单的「USB / BadUSB防护设置…」中检查允许列表。
Q23. 各保护级别(信任・标准防护・最大锁定)具体有什么区别?锁定模式下还能使用互联网吗?
A. 可以,无论处于哪个保护级别,普通的网页浏览、邮件、聊天等出站通信都不会受到限制。三个级别的区别在于「允许多少来自外部的入站连接」。🟢信任会关闭防火墙,并允许共享服务(SSH/SMB/屏幕共享)和AirDrop。🟡标准防护通过防火墙和隐身模式阻止外部探测,同时保留共享服务。🔴最大锁定在全面阻止防火墙、启用隐身模式的基础上,还会停用共享服务和AirDrop。在任何级别下,由你自己发起的通信(如浏览网页)都不会受到阻碍。
Q24. 如果 RoamSwitch 停止开发,会怎么样?
A. 发布间隔变长不属于触发条件。触发条件是:宣布终止开发或支持、或业务关闭;或者已受理的安全报告或支持请求 90 天无人回应,且之后没有维护者声明。后一种情况会先发布公开预告,30 天内维护者回应即撤销预告。若没有回应,将在预告后 90 天内以 Apache License 2.0 公开源代码(macOS 应用与 root 辅助程序、Linux 版、Sensor、MCP 服务器),并发布一个不依赖我们服务器的最终版本:许可证令牌由 Mac 上内置的公钥验证,因此已激活的副本在我们的服务器消失后仍可继续使用。签名私钥和客户记录不会公开。详情请见支持仓库中的《开发停止时》(CONTINUITY.md)。
Q25. Mac 和 Linux 客户端版能检测未授权访问和入侵吗?
一部分可以检测,一部分是服务器版独有的功能。
客户端上起作用的功能
默认拒绝入站连接(防护级别随网络类型而变)。在此基础上,有端口扫描的检测与阻断、未知监听端口的检测、安全日志审计、勒索软件诱饵(金丝雀)、凭据诱饵(蜜罐令牌)、关键文件篡改监控(FIM)以及自启动(持久化)监控。通知为桌面通知,也会保留在历史记录中。在 Mac 上,这些功能大多属于 Pro 版,启用 Pro 后会自动开启。
SSH 暴力破解
即时阻断仅在远程登录(sshd)开启时工作(Mac 使用 pf,Linux 使用 nftables)。在 sshd 没有运行的设备上,不读取任何内容,也不改动任何内容。
FIM 的线索
通知关键文件被篡改的消息中,会附上与 SSH 登录有关的线索。Linux 会从做出修改的进程出发,关联到它所属的 SSH 登录。Mac 因为 macOS 不告知是哪个进程写入了文件,只能列出修改前后开始的 SSH 登录。这只是时间重合的线索,并不是该登录做出了修改的证据。
仅限服务器版的功能
基于 eBPF 的检测(安装了 Falco 等传感器时)存在于 Linux 客户端版,Mac 上没有。RoamSwitch 自带的反向 shell 检测只有 Server Edition 才有。
客户端上起作用的功能
默认拒绝入站连接(防护级别随网络类型而变)。在此基础上,有端口扫描的检测与阻断、未知监听端口的检测、安全日志审计、勒索软件诱饵(金丝雀)、凭据诱饵(蜜罐令牌)、关键文件篡改监控(FIM)以及自启动(持久化)监控。通知为桌面通知,也会保留在历史记录中。在 Mac 上,这些功能大多属于 Pro 版,启用 Pro 后会自动开启。
SSH 暴力破解
即时阻断仅在远程登录(sshd)开启时工作(Mac 使用 pf,Linux 使用 nftables)。在 sshd 没有运行的设备上,不读取任何内容,也不改动任何内容。
FIM 的线索
通知关键文件被篡改的消息中,会附上与 SSH 登录有关的线索。Linux 会从做出修改的进程出发,关联到它所属的 SSH 登录。Mac 因为 macOS 不告知是哪个进程写入了文件,只能列出修改前后开始的 SSH 登录。这只是时间重合的线索,并不是该登录做出了修改的证据。
仅限服务器版的功能
基于 eBPF 的检测(安装了 Falco 等传感器时)存在于 Linux 客户端版,Mac 上没有。RoamSwitch 自带的反向 shell 检测只有 Server Edition 才有。
🐧 基本概念与核心理念
Q1. 什么是 RoamSwitch for Linux?
RoamSwitch for Linux 是一款专为 Linux 打造的免费零信任自主网络防御与安全诊断工具,严格遵循 Zero Telemetry 零遥测架构。它以单一轻量二进制文件提供 nftables 防火墙毫秒级自动切换、勒索软件隔离、27 项安全综合诊断以及基于 MCP 的 AI 联动支持。
Q2. 与传统 Linux 安全工具(ClamAV、Lynis 等)有什么区别?
传统工具多局限于被动文件扫描或周期性手动审计,而 RoamSwitch 专注于实时的主动自动化防御:基于 Wi-Fi 变更毫秒级切换 nftables 规则、威胁检测瞬间自主实施网络隔离,实现无感后台自动防护。
Q3. Linux 版本是否开源 (OSS)?
核心二进制程序属于免费专有软件(Community Edition,闭源)。而周边客户端 SDK (Rust/Python) 以及 MCP 服务定义均已在 GitHub 上开源。
Q4. 核心程序闭源,如何确保其安全性?
为确保透明度,Lafine 在安全白皮书中详尽公开了抓包与系统调用验证方法。用户可使用 tcpdump 或 eBPF 工具随时自主验证没有任何用户或设备信息被发送到外部(默认的对外通信只有每天一次、仅接收签名数据的更新)。
⚙️ 功能与技术规格
Q5. “Zero Telemetry(零遥测)”的具体含义是什么?
意味着安全日志、系统配置、流量历史与诊断评分绝不向任何外部服务器(包括 Lafine 官方)传输。所有计算与策略均 100% 在本地 Linux 机器上完成。
Q6. 什么是 nftables 防火墙策略自主切换?
毫秒级识别当前 Wi-Fi 网关 MAC 地址,自动无缝切换针对家庭 (Trusted)、办公室 (Balanced) 或公共 Wi-Fi (Lockdown) 优化的 nftables 规则集,无需手动管理 iptables/nftables。
Q7. 勒索软件自主隔离功能是如何工作的?
检测到金丝雀诱饵文件被篡改时,会紧急切断全部外部通信(Air-Gap)和共享服务,阻断向局域网内蔓延。通过 fanotify/inotify + 香农熵分析检测到异常高速的加密操作时,会立即通过 SIGSTOP 冻结相关进程并发出通知,同样会紧急切断全部外部通信(Air-Gap)和共享服务。
Q8. 恶意 USB 与 BadUSB 防护功能是如何工作的?
插入未经授权的 USB 存储时,通过 udev 拦截挂载并弹出确认(可选 ClamAV 扫描)。针对伪装成键盘注入恶意指令的 BadUSB 设备,通过 evdev (EVIOCGRAB) 在软件层临时排他独占按键并显示审批弹窗,防止恶意注入(非物理端口切断)。
Q9. VPN 自动隧道与 Kill Switch 功能是如何运作的?
连入非信任网络时,自动连接用户配置的 WireGuard (.conf) 或 Tailscale (Exit Node) 加密隧道,并通过 nftables Kill Switch 阻断隧道外明文泄漏(fail-closed 机制,用户可选)。
Q10. 什么是被动链接防护(钓鱼连接拦截)?
从本地 DNS 查询、TLS SNI、HTTP Host 头提取目标域名,基于本地签名威胁库与仿冒字符判定警告或拦截钓鱼连接(支持 DoH 浏览器,不上传 URL)。
💻 运行环境与支持系统
Q11. 支持哪些 Linux 发行版?
支持 Ubuntu 22.04/24.04、Debian 12+、Linux Mint、Pop!_OS、Fedora、RHEL、CentOS Stream、openSUSE、Arch Linux 及 Raspberry Pi OS (64位) 等所有基于 systemd 与 nftables 的主流发行版。
Q12. 如何在 Linux 上安装 RoamSwitch?
可通过官方软件源便捷安装:Ubuntu/Debian 使用 APT (lafine.net/apt),Fedora/RHEL 使用 DNF (lafine.net/rpm),openSUSE 使用 zypper (lafine.net/rpm),Arch Linux 支持 PKGBUILD 与签名 tarball (lafine.net/linux/dl/)。
Q13. 无桌面环境的无头服务器 (CLI/CUI) 是否支持?
完全支持。除提供 GTK 原生图形界面外,在无头服务器上通过后台守护进程、'roamswitch' 命令行工具及 MCP 接口可完整使用全部功能。
Q14. 是否适用于 Linux 服务器?
客户端版(本标签页)针对工作站、笔记本电脑等会在不同网络间移动(漫游)的设备进行了优化。若用于云 VPS 或数据中心的服务器,请使用专用的无头版「
roamswitch-server」(免费、独立软件包)。它内置了入站默认拒绝、SSH 防锁定、eBPF 入侵检测等面向服务器的功能。详情请参见「🖧 Linux 服务器版」标签页。Q15. 未来是否会推出正式的“服务器专用版”?
是的,该版本已经正式发布,并与客户端版一样免费提供(Community Edition,包含全部功能,无需激活许可证)。可通过 APT / DNF / zypper / AUR 单独安装
roamswitch-server 软件包。如何卸载 RoamSwitch?删除后网络会一直不通吗?
在托盘中选择“🧰 恢复与卸载”→“🗑 卸载 RoamSwitch…”,或使用命令
sudo roamswitch uninstall,或使用 apt remove 等包管理器(1.10.7 及以后版本)。无论哪种方式,在删除之前,RoamSwitch 都会先撤销它对网络所做的全部更改(防火墙表、网关 ARP 固定、DNS 等),因此不会让网络一直不通。详情请参阅卸载步骤。🤖 安全诊断与 AI 集成 (MCP)
Q16. 27 项安全综合诊断(MCP 诊断)包含哪些内容?
包含 Secure Boot、LUKS 全盘加密、LSM (AppArmor/SELinux)、安全自动更新、SSH/Sudo 配置、sysctl 内核加固、开放端口、浏览器安全浏览、ARP 绑定及 DNS 威胁防护等 27 个项目并输出标准化评分 (0~100)。
Q17. 如何查看诊断结果?
可通过 GTK 仪表盘查看,或直接在终端运行 'roamswitch status' 获取完整的文本格式安全报告。
Q18. 附带的 MCP (Model Context Protocol) 服务是什么?
roamswitch-mcp 是标准的 AI 集成接口,支持 ChatGPT、Claude、Cursor 及 Antigravity 等 AI 助手直接安全地读取 Linux 本地安全状态。
Q19. 与 AI (MCP) 结合能实现哪些应用?
您可以用自然语言询问 AI:“当前系统安全评分是多少?”或“是否存在危险的暴露端口?”,AI 将读取本地诊断数据并自动生成清晰的加固建议与报告。
Q20. 使用 MCP 功能是否存在系统配置被 AI 篡改的风险?
完全没有。附带的 MCP 服务设计为纯本地 stdio 通信的“完全只读”模式。即使遭遇提示注入,AI 也无法修改防火墙规则或修改系统设置。
Q21. USB键盘突然无法使用了,是坏了吗?
A. 很可能不是故障。RoamSwitch的「BadUSB键盘防护」可能正在暂时阻止不在允许列表中的键盘输入,并显示批准对话框。在对话框中选择「允许」即可将该键盘加入允许列表并恢复输入。若3分钟内无响应,输入会自动解除阻止(避免无显示器主机被锁死)。若未看到对话框,重新插拔键盘即可再次显示。
Q22. 各保护级别(open・balanced・lockdown)具体有什么区别?lockdown模式下还能使用互联网吗?
A. 可以,无论处于哪个保护级别,网页浏览、软件包更新等出站通信都不会受到限制。三个级别的区别在于「nftables允许多少来自外部的入站连接」。open面向家庭局域网,允许本地通信。balanced面向办公网络或网络共享,会监控可疑端口但不影响正常使用。lockdown面向公共Wi-Fi,会以隐身方式阻止所有入站连接。在任何级别下,由你自己发起的通信(浏览网页、作为SSH客户端的出站连接等)都不会受到阻碍。
Q23. Mac 和 Linux 客户端版能检测未授权访问和入侵吗?
一部分可以检测,一部分是服务器版独有的功能。
客户端上起作用的功能
默认拒绝入站连接(防护级别随网络类型而变)。在此基础上,有端口扫描的检测与阻断、未知监听端口的检测、安全日志审计、勒索软件诱饵(金丝雀)、凭据诱饵(蜜罐令牌)、关键文件篡改监控(FIM)以及自启动(持久化)监控。通知为桌面通知,也会保留在历史记录中。在 Mac 上,这些功能大多属于 Pro 版,启用 Pro 后会自动开启。
SSH 暴力破解
即时阻断仅在远程登录(sshd)开启时工作(Mac 使用 pf,Linux 使用 nftables)。在 sshd 没有运行的设备上,不读取任何内容,也不改动任何内容。
FIM 的线索
通知关键文件被篡改的消息中,会附上与 SSH 登录有关的线索。Linux 会从做出修改的进程出发,关联到它所属的 SSH 登录。Mac 因为 macOS 不告知是哪个进程写入了文件,只能列出修改前后开始的 SSH 登录。这只是时间重合的线索,并不是该登录做出了修改的证据。
仅限服务器版的功能
基于 eBPF 的检测(安装了 Falco 等传感器时)存在于 Linux 客户端版,Mac 上没有。RoamSwitch 自带的反向 shell 检测只有 Server Edition 才有。
客户端上起作用的功能
默认拒绝入站连接(防护级别随网络类型而变)。在此基础上,有端口扫描的检测与阻断、未知监听端口的检测、安全日志审计、勒索软件诱饵(金丝雀)、凭据诱饵(蜜罐令牌)、关键文件篡改监控(FIM)以及自启动(持久化)监控。通知为桌面通知,也会保留在历史记录中。在 Mac 上,这些功能大多属于 Pro 版,启用 Pro 后会自动开启。
SSH 暴力破解
即时阻断仅在远程登录(sshd)开启时工作(Mac 使用 pf,Linux 使用 nftables)。在 sshd 没有运行的设备上,不读取任何内容,也不改动任何内容。
FIM 的线索
通知关键文件被篡改的消息中,会附上与 SSH 登录有关的线索。Linux 会从做出修改的进程出发,关联到它所属的 SSH 登录。Mac 因为 macOS 不告知是哪个进程写入了文件,只能列出修改前后开始的 SSH 登录。这只是时间重合的线索,并不是该登录做出了修改的证据。
仅限服务器版的功能
基于 eBPF 的检测(安装了 Falco 等传感器时)存在于 Linux 客户端版,Mac 上没有。RoamSwitch 自带的反向 shell 检测只有 Server Edition 才有。
🖧 基本概述与价格
Q1. 什么是 RoamSwitch Server Edition?
完全无头(零 GUI 依赖)的自主防御与安全套件,专为云 VPS、本地数据中心和容器主机设计。软件包名为
roamswitch-server,作为独立的软件包与二进制文件提供,与客户端版(roamswitch)区分开来。通过一个轻量级的 systemd 守护进程,提供入站默认拒绝(Default Drop)、SSH 防锁定、eBPF 入侵检测、关键路径 FIM(篡改监控)、Egress/C2 阻断以及紧急通知等功能。Q2. 客户端版(桌面版)与服务器版有什么区别?
客户端版的重点在于「漫游(移动)支持」:检测所连接 Wi-Fi(网关 MAC)的变化,并在三套防火墙策略之间自主切换。服务器版则不考虑网络迁移场景,默认采用常驻运行的入站默认拒绝姿态,专注于常驻服务器特有的威胁,包括 SSH 管理通道保护、容器端口暴露防护,以及基于 eBPF/Falco、Tetragon 的内核层入侵检测。没有 GUI 或托盘图标,通过 CLI(
roamswitch 命令)、配置文件和 MCP 进行操作。Q3. 服务器版的价格是多少?
与客户端版一样,Community Edition 免费、包含全部功能、无需许可证激活。为需要集中管理多台服务器的组织,我们规划推出付费的 RoamSwitch Business(集中式设备管理、签名策略下发、SLA 支持),目前尚未提供。终端侧的防护功能本身包含在免费版中。
Q4. 服务器版是否同样保持 Zero Telemetry(不发送任何用户或环境信息)?
是的。通信内容、连接记录、诊断结果等信息,即使在默认状态下也绝不会对外发送。默认的对外通信只有通过操作系统包管理器(apt/dnf/zypper)进行的更新,以及仅接收签名数据(内核 CVE 数据、Web 规则,以及在 Ubuntu 服务器上用于操作系统软件包 CVE 比对的 Ubuntu 软件包 CVE 数据)的匿名获取(对 lafine.net 的 HTTPS GET,签名清单每天确认一次,CVE 数据本体约每 30 天一次,不含本主机的任何信息,可用
roamswitch server config set cve_kernel_map_updates_enabled false 关闭)。通知、事件转发、npm 签名验证等,只有在运维人员明确选择启用后才会通信。守护进程本身不含对外通信库,该点已通过审计脚本(audit_no_network.sh)在构建阶段完成验证。例外的完整列表已在 Server Edition 安全设计文档的 Zero Telemetry 一节中公开。⚙️ 安装与初始设置
Q5. 支持哪些 Linux 发行版?
支持 Ubuntu 22.04/24.04、Debian 12+、Fedora、RHEL、Rocky Linux、AlmaLinux、openSUSE 以及 Arch Linux(均要求具备 systemd + nftables 环境)。同时支持 x86_64 与 aarch64(包括 AWS Graviton 等)架构。
Q6. 如何安装?
可从与客户端版相同的官方软件仓库安装,仅需更换软件包名称:
sudo apt install roamswitch-server(Ubuntu/Debian)、sudo dnf install roamswitch-server(Fedora/RHEL 系)、sudo zypper install roamswitch-server(openSUSE)。由于与客户端版软件包(roamswitch)之间设置了相互 Conflicts,两者无法同时安装在同一主机上。Q7. 安装完成后应该先做什么?
请执行
sudo roamswitch server setup 启动交互式安装向导。该向导会依次引导您设置 SSH 管理端口、运维来源 IP、紧急通知渠道(Telegram/LINE/Webhook),以及 eBPF 检测到重大事件时的应对动作(isolate/freeze/alert_only),最后发送一条测试通知并重启服务。Q8. 如果直接编辑配置文件,需要做什么才能使其生效?
编辑
/etc/roamswitch/server.conf 后,请执行 sudo roamswitch server restart。roamswitch-server.service 不支持通过 systemctl reload 重新加载配置(仅支持 restart)。Q9. guard.yaml 是什么?是必需的配置吗?
这是可选设置。创建
/etc/roamswitch/guard.yaml 后,可以针对 Falco/Tetragon 的每个严重级别(warning/error/critical/emergency)分别指定遏制动作(仅通知/隔离进程/全主机断网)与安全定时器。若该文件不存在,系统会根据 server.conf 中的 action_on_critical 自动合成等效策略,因此不会影响现有部署。模板文件位于 /etc/roamswitch/guard.yaml.example。🔥 防火墙与 SSH 防锁定
Q10.「入站默认拒绝(Default Drop)」是什么意思?
自安装完成起,除
allowed_ports(默认 80、443)中明确允许的端口外,所有入站连接均被拒绝。这可以防止意外的管理端口或调试端口暴露到公网。Q11. 会不会因为配置失误而把自己锁在 SSH 之外?
提供多层防护:① 已建立的 ESTABLISHED/RELATED 连接会话始终保留;②
ssh_ports(默认 22)始终无条件放行;③ 即使在重大事件触发紧急隔离(Air-Gap)时,preserve_ssh_on_isolation=true(默认)也会保留管理员的 SSH 会话;④ 配置语法错误或 nftables 加载失败时会自动回滚到上一次正常运行的规则集。共四重保障。1.10.4 及之前的服务器版存在缺陷,隔离规则会丢弃 SSH 的应答,因此隔离期间运维人员的 SSH 无法使用。该缺陷已在 1.10.5 中修复。Q12. Docker/Podman 容器的端口也会受到保护吗?
是的。Docker 在使用
-p 选项时默认会创建自己的 iptables 规则,可能绕过主机的标准防火墙,将端口直接暴露到公网。启用 protect_docker_ports=true(默认)后,RoamSwitch 会在 DOCKER-USER 链的开头插入检查规则,使发往容器的流量同样受 allowed_ports / whitelist_ips 策略的约束。Q13. 如果不小心把自己锁在外面了怎么办?
通过云服务商的网页管理控制台(VNC/串行控制台)登录,执行
sudo roamswitch emergency-restore 将防火墙恢复到上一次正常运行的基线并解除任何紧急隔离,或执行 sudo systemctl stop roamswitch-server 直接停止该服务。⚡ 威胁检测与自主响应
Q14. 什么是 eBPF 运行时防护?Falco 与 Tetragon 有什么区别?
该功能与运行在内核空间的 eBPF 传感器联动,实时检测反弹 shell、权限提升、容器逃逸等行为。默认传感器为 Falco(通过 UNIX 域套接字传输 JSONL),也可在
guard.yaml 中设置 sensor.type: tetragon 切换为 Cilium Tetragon(原生 gRPC,同样通过该 UNIX 套接字)。两者均不会新增监听端口。Q15. 检测到重大威胁时,实际会发生什么?
系统会根据
action_on_critical(或 guard.yaml 中的策略)自动触发以下动作之一:isolate(将相关进程从网络中隔离)、freeze(通过 SIGSTOP 冻结进程并同时进行网络隔离)、alert_only(仅通知)。若指定 kill_process: true,则在隔离的同时还会发送 SIGKILL。init、容器运行时、包管理器等基础守护进程始终被列入保护列表,不会被冻结或强制终止。Q16. 什么是安全定时器?
这是主机整体紧急隔离(Air-Gap)触发后,管理员需要通过
sudo roamswitch server ack 确认响应的宽限时间(对应 guard.yaml 中的 safety_timer_secs,默认 300 秒)。如果是误报且在此期间未收到响应,隔离会自动解除,避免服务器因误报而被无限期切断网络。Q17. 关键路径 FIM(文件篡改监控)具体是如何工作的?
监控 150 多个关键二进制文件、认证配置和 systemd 单元的 SHA-256 哈希值。通过
fanotify(FAN_CLASS_NOTIF)对文件的写入完成事件进行逐一监视,可在篡改发生的瞬间即时检测,无需等待下一次周期性扫描(周期性扫描仍作为后备手段并存)。在通过 OS 包管理器进行正规更新时,会分别通过 Debian/Ubuntu 的 DPkg::Post-Invoke 钩子或 Fedora/RHEL/openSUSE 的 systemd.path 单元自动重新同步基线,避免误报。Q18. 什么是勒索软件金丝雀(诱饵文件)?
该功能会定期检查放置在 Web 根目录(
/var/www、/srv 等)下的诱饵文件的完整性。一旦检测到诱饵文件被非法篡改或加密,会立即定位访问该文件的进程并将其冻结、隔离,同时向管理员发送紧急通知。Q19. 什么是 Egress 阻断和 DNS 沉洞?
Egress 阻断(
egress_ip_blocklist_enabled,默认 true,自带的种子仅含 JPCERT/CC 公布的 3 个攻击服务器,未导入情报源时不会阻断其他任何内容)通过 nftables 阻止向已知恶意 IP 发起的出站连接;DNS 沉洞(dns_sinkhole_enabled,默认 false,以避免破坏内部 DNS 或 split-horizon 环境)则强制将 DNS 解析转发至过滤型 DNS 解析服务(Quad9/Cloudflare/AdGuard/CleanBrowsing),同时阻止恶意域名的解析。📢 通知、运维与诊断
Q20. 紧急通知支持哪些渠道?
支持 Telegram Bot、LINE Messaging API,以及通用 Webhook(Slack / Discord / Microsoft Teams / 自建监控平台)。在发生端口非法暴露、FIM 篡改、eBPF 威胁检测、紧急隔离触发等重大事件时会立即推送通知。可通过
roamswitch server test-notify 验证配置是否正确。Q21. Telegram 测试通知显示「chat not found」时该怎么办?
多数情况下是超级群组的 Chat ID 缺少必需的
-100 前缀(例如:-1001234567890)。请通过 curl -s "https://api.telegram.org/bot<token>/getUpdates" 返回结果中的 "chat":{"id":...} 字段确认正确的值。Q22.「34 项安全诊断」会检查哪些内容?
可通过
roamswitch status --server 执行。该命令会依据 CIS Benchmark 标准,对防火墙状态、Frag Gap 防护(禁用非特权 User Namespace)、Yama LSM 内存保护、关键文件权限、Docker 暴露情况等 34 个项目进行一次性审计,并给出 0~100 分的安全评分及等级评定(S~C)。Q23. 是否存在 AI 通过 MCP 服务器擅自更改防火墙设置的风险?
没有。随附的
roamswitch-mcp 被设计为「完全只读」(仅提供状态获取与审计类工具)。即使 Web 应用的日志中混入了恶意的提示注入,也无法通过 AI 代理开放防火墙或解除隔离。策略变更以及解除进程冻结,始终要求在本地 TTY(SSH 终端)中显式执行命令。🏢 许可与未来规划
Q24. 付费版 RoamSwitch Business 增加了哪些功能?
这些是规划中的功能,目前尚未提供。设想的内容包括:使用 Ed25519 签名的组织令牌登记多台服务器并汇总保护级别、诊断分数和策略应用状态的“集中式设备管理”;以签名 JSON 下发受信网络及各防护强制值的“签名策略下发”;使用组织专用 GPG 密钥签名的内部 APT/RPM 仓库;以及基于合同的 SLA 支持。目前不存在管理服务器或集中式设备管理功能。终端侧的防护功能本身包含在免费版中,Business 不会削减。
Q25. 是否有计划支持 Kubernetes 等容器编排平台?
目前仅面向独立的 Docker/Podman 主机。针对整个 Kubernetes 集群的策略分发与审计功能,正作为 Business 版舰队管理功能未来可能的扩展方向进行评估。如有具体需求,请通过支持渠道与我们联系。
Q26. RoamSwitch Server 能实时检测未授权访问和入侵吗?
可以,但能看到的范围是有限的。下面把能检测的内容和限制分开说明。
检测后会阻止或通知的内容
- SSH 暴力破解:在 sshd 日志写入的瞬间读取,对失败次数达到阈值(默认 600 秒内 6 次)的来源进行阻断(实测约 0.2 秒)。丢弃新连接的同时,也会切断该来源已经建立的 SSH 连接。已认证的会话和豁免的来源不会被切断。
- 入侵之后的行为:eBPF 运行时防护(Falco / Tetragon)检测反向 shell、权限提升和容器逃逸,并自动处置,从隔离进程直到整台主机的 Air-Gap。RoamSwitch 自己也每 2 秒查找连向外部的反向 shell(实测在连接后约 2.4 秒)。从检测到处置的时间会被记录,实测为 42~64 毫秒。
- 文件篡改:FIM 会立即检测到关键文件的改动,并在通知中附上是谁(账户、可执行文件、命令)通过哪次 SSH 登录(来源 IP、时间、认证方式)做出的修改。无法查明时,会写明无法查明。
- 另外还有:对勒索软件金丝雀和诱饵凭据的接触、端口扫描的检测与阻断、DNS 隧道检测、对已知恶意 IP 的出站通信阻断,以及对云元数据地址连接的检测(仅通知)。
关于通知
只有在运维人员设置了通知目的地(Telegram、LINE、Webhook、事件转发)时,通知才会发送到外部。默认关闭,历史记录一定会保存在服务器内部。
限制
- eBPF 隔离的准确度和速度取决于 Falco 或 Tetragon 的规则。实际上,Falco 0.45.0 的标准规则(29 条)里没有检测主机上反向 shell 的规则。RoamSwitch 用确认告警通路是否畅通的心跳检测,以及自己的反向 shell 检测来弥补,但并不能填补规则的所有漏洞。
- FIM 显示的是变更这一事实,以及做出变更的进程和登录。入侵的入口本身(例如被利用的漏洞)无法得知。
- SSH 阻断按来源统计,所以对从大量 IP 各尝试一次的分布式暴力破解不太有效。当 fail2ban 或 CrowdSec(已启用 sshd 防护)在运行时,RoamSwitch 会让出阻断,只做检测和通知。
- 作为根本对策,请同时停用密码认证(只用密钥认证),并限制可连接的来源(允许列表)。
检测后会阻止或通知的内容
- SSH 暴力破解:在 sshd 日志写入的瞬间读取,对失败次数达到阈值(默认 600 秒内 6 次)的来源进行阻断(实测约 0.2 秒)。丢弃新连接的同时,也会切断该来源已经建立的 SSH 连接。已认证的会话和豁免的来源不会被切断。
- 入侵之后的行为:eBPF 运行时防护(Falco / Tetragon)检测反向 shell、权限提升和容器逃逸,并自动处置,从隔离进程直到整台主机的 Air-Gap。RoamSwitch 自己也每 2 秒查找连向外部的反向 shell(实测在连接后约 2.4 秒)。从检测到处置的时间会被记录,实测为 42~64 毫秒。
- 文件篡改:FIM 会立即检测到关键文件的改动,并在通知中附上是谁(账户、可执行文件、命令)通过哪次 SSH 登录(来源 IP、时间、认证方式)做出的修改。无法查明时,会写明无法查明。
- 另外还有:对勒索软件金丝雀和诱饵凭据的接触、端口扫描的检测与阻断、DNS 隧道检测、对已知恶意 IP 的出站通信阻断,以及对云元数据地址连接的检测(仅通知)。
关于通知
只有在运维人员设置了通知目的地(Telegram、LINE、Webhook、事件转发)时,通知才会发送到外部。默认关闭,历史记录一定会保存在服务器内部。
限制
- eBPF 隔离的准确度和速度取决于 Falco 或 Tetragon 的规则。实际上,Falco 0.45.0 的标准规则(29 条)里没有检测主机上反向 shell 的规则。RoamSwitch 用确认告警通路是否畅通的心跳检测,以及自己的反向 shell 检测来弥补,但并不能填补规则的所有漏洞。
- FIM 显示的是变更这一事实,以及做出变更的进程和登录。入侵的入口本身(例如被利用的漏洞)无法得知。
- SSH 阻断按来源统计,所以对从大量 IP 各尝试一次的分布式暴力破解不太有效。当 fail2ban 或 CrowdSec(已启用 sshd 防护)在运行时,RoamSwitch 会让出阻断,只做检测和通知。
- 作为根本对策,请同时停用密码认证(只用密钥认证),并限制可连接的来源(允许列表)。
未找到匹配的问题。请尝试其他关键词。