从你的发行版安装
添加官方仓库后,即可通过常规更新命令进行升级,应用内的更新检查也会生效。依赖包(nftables、CJK 字体等)会自动安装。
Ubuntu / Debian / Mint / Pop!_OS / Raspberry Pi OS (APT)
curl -fsSL https://lafine.net/apt/roamswitch-archive-keyring.asc \ | sudo gpg --dearmor -o /usr/share/keyrings/roamswitch-archive-keyring.gpg echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/roamswitch-archive-keyring.gpg] https://lafine.net/apt stable main" \ | sudo tee /etc/apt/sources.list.d/roamswitch.list sudo apt update && sudo apt install roamswitch
Fedora / RHEL / CentOS Stream (DNF)
sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch sudo curl -fsSL -o /etc/yum.repos.d/roamswitch.repo https://lafine.net/rpm/fedora/roamswitch.repo sudo dnf install roamswitch
openSUSE (zypper)
sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch sudo zypper addrepo https://lafine.net/rpm/opensuse/roamswitch.repo sudo zypper refresh && sudo zypper install roamswitch
Arch / Manjaro / EndeavourOS (AUR)
Not published on the AUR. Build from the bundled PKGBUILD (the release tarball is verified against the signing key).
gpg --recv-keys 9C12964366B8547511AAEAF5773A9A39ECBD1537 curl -fsSLO https://lafine.net/linux/dl/PKGBUILD curl -fsSLO https://lafine.net/linux/dl/roamswitch.install makepkg -si
不使用套件庫時,可從 lafine.net/linux/dl 直接下載帶簽章的 tarball(.tar.gz + .tar.gz.asc,amd64 / aarch64)(此時應用程式內的更新檢查將無法使用)。
安装后 roamswitch.service 会自动启动,登录时托盘图标常驻。首次启动会显示引导向导(GTK)。CLI(roamswitch status)会根据系统语言环境以日语或英语输出诊断结果。
以 Linux 原生方式运行的自主防御
🛡️ nftables 配置自主切换仅限客户端版
在受信任网络(家庭)允许顺畅的本地通信,在公司监控可疑端口,在公共 Wi-Fi 上隐身丢弃所有入站。以网关 MAC 判定,切换为毫秒级。
🚨 勒索软件自主隔离仅限客户端版
通过 fanotify + 香农熵检测加密写入爆发,用 SIGSTOP 冻结相关进程并发出通知(通知中包含解除冻结的命令)。同时会紧急切断全部外部通信与共享服务(Air-Gap);检测到金丝雀(诱饵文件)被篡改时同样如此。对写入文件的 YARA 检查则另行进行。
🧷 可疑自启动检测仅限客户端版
检查新创建或被改写的自启动项(systemd、cron、桌面自启动),只对看起来像恶意软件持久化手法的项目发出通知:反向 shell、解码后直接执行、下载后直接执行,或运行位于临时/隐藏文件夹中的程序。仅通知,不阻止任何操作;看起来正常的项目只会记录。默认开启。
📶 Wi-Fi 加密强度警告仅限客户端版
连接到无加密(Open)或 WEP/WPA 时,自动提升保护级别并弹出桌面通知。还会自动停止/恢复共享服务(SSH/Samba/RDP)(默认开启,可随时关闭)。
🔌 非授权 USB / BadUSB 防护仅限客户端版
未获批准的 USB 存储会被暂缓连接并弹出批准对话框;击键注入设备(BadUSB 键盘)仅通过 evdev 在软件层抑制其输入(不会在内核层物理断开端口)。内置对下载文件夹的 ClamAV 自动扫描与隔离。
📜 27/34 项安全综合诊断
对 LUKS、Secure Boot、LSM、SSH/sudo、sysctl、ARP 固定、对外暴露端口、浏览器 Safe Browsing 等客户端 27 项、服务器版则按 CIS 基准 34 项进行 10 种语言评分。可从 GUI / CLI / MCP 查看。 每个项目还附带 NIST CSF 2.0 / CIS Controls v8 对照,可用于审计。
🤖 内置 MCP 服务器
roamswitch-mcp 让 Claude 等 AI 代理通过 JSON-RPC(stdio)读取安全状态。只读、完全本地。参见 MCP 设置。
🔒 VPN 隧道 + 断网开关仅限客户端版
在公共 Wi-Fi 上,通过 WireGuard 或 Tailscale(Exit Node)将所有流量导入加密隧道。nftables 断网开关拦截隧道外的明文泄漏,隧道断开时也不会放行(fail-closed)。这是中间人攻击(MITM)防护的核心。
🎣 被动链接防护(拦截钓鱼连接)仅限客户端版
从 DNS 查询、TLS SNI 和 HTTP Host 头读取出站连接的目标主机名,对钓鱼/诈骗网站的连接进行警告或拦截(默认 block,对 DoH 浏览器同样有效)。warn 模式下无响应即 fail-closed。判定仅使用本地订阅源和离线启发式,目标绝不外发。
🖧 服务器自主防御 & SSH 断连防护仅限服务器版
面向云 VPS 和数据中心自动应用入站默认拒绝(Default Drop)。主动保护当前连接的管理用 SSH 会话(ESTABLISHED),防止管理员被意外断开连接。可通过可选的 guard.yaml 精细设置按严重程度划分的遏制动作,以及安全定时器(无响应时自动恢复)。1.10.4 及之前的服务器版存在缺陷,隔离规则会丢弃 SSH 的应答,因此隔离期间运维人员的 SSH 无法使用。该缺陷已在 1.10.5 中修复。
⚡ eBPF 入侵检测 & 自主隔离(Falco / Tetragon)
通过 UNIX 套接字实时捕获内核层 eBPF 事件(反弹 Shell、权限提升、未授权二进制执行)。可在 Falco(默认)与 Cilium Tetragon(gRPC)之间选择传感器。以毫秒级速度自主隔离被入侵的进程(SIGSTOP/SIGKILL)或主机(Air-Gap)。Server Edition 还会测量从检测到处置的时间,用心跳检测确认告警通路,并自己检测反向 shell。
📂 关键路径 FIM(文件篡改监控)
对 /etc/shadow、/etc/pam.d、/usr/bin/ 等主要系统二进制文件与配置进行事件驱动的 SHA-256 哈希监控,在篡改发生的瞬间即可检测到(周期性扫描作为兜底)。可即时检测后门植入与未授权篡改,并安全地上报、隔离。通知中会附上做出修改的进程,以及该进程所属的 SSH 登录(来源、时间、认证方式)。
🔐 SSH 暴力破解的检测与阻断
在 sshd 的登录失败写入日志的瞬间读取,阻断达到阈值的来源的新连接,并切断该来源已经建立的 SSH 连接(已认证的会话和豁免的来源不会被切断)。服务器版默认启用。客户端版只在 sshd 运行时工作。当 fail2ban 或 CrowdSec 已经在保护 sshd 时,只做检测和通知。
🧠 资源耗尽/进程异常检测防护仅限服务器版
检测内存泄漏型DoS攻击与崩溃循环(UAF漏洞利用尝试的迹象)。带GC的运行时正常的锯齿状内存增减不会被误判,仅判定“无恢复的持续RSS增长”。崩溃循环通过systemd自身的固定词汇进行结构化判定(无需新增轮询)。与eBPF/FIM事件按PID进行关联,赋予置信度(possible/correlated)。
🧱 Egress / C2 阻断 & DNS 黑洞仅限服务器版
通过本地威胁情报自动阻断向已知恶意 IP 的发送。可选择启用 DNS 黑洞(Quad9 / Cloudflare / AdGuard / CleanBrowsing),同时封锁恶意域名解析(为避免破坏企业内部 DNS 环境,默认关闭)。
📢 多渠道紧急通知仅限服务器版
在检测到入侵、终止进程、Air-Gap 隔离或 FIM 违规发生的瞬间,立即向 Slack、Discord、Microsoft Teams、Syslog、Webhook 发送详细的事件信息。
🐳 Docker 风险检测 & 防火墙绕过对策
通过 docker events 实时检测特权容器(--privileged)或 docker.sock 挂载的启动(仅通知)。基于 DOCKER-USER 链的防火墙绕过对策在客户端版与服务器版中均始终生效。
🧫 File Scan Guard(YARA + ClamAV)仅限服务器版
定期扫描用于保存待分发给他人的文件的目录,例如邮件中继、共享文件夹、上传目标等(这是独立于客户端版下载文件夹自动扫描之外、针对任意共享目录的附加层)。内置 YARA 引擎无需外部依赖即可始终运行,也可选择添加 ClamAV。确认的威胁会被自动隔离。
🔑 机密信息・API 密钥泄露扫描器
不仅能在文本中检测 OpenAI・Anthropic・AWS・GitHub・Slack・Stripe 等的 API 密钥及 SSH 私钥,还能对整个目录进行扫描(.git 等会自动排除)。可通过 CLI・MCP・Python SDK 使用,内容绝不会外传。
📦 软件包CVE照合(dpkg/pacman/dnf/zypper + 依赖关系)仅限客户端版
将已安装的OS软件包与开发中项目的依赖关系(npm・PyPI・crates.io等7个生态系统)与本地保存的已知CVE映射进行比对。完全不进行任何网络活动。
🖥️ ClickFix 防护:监控剪贴板检测并清除恶意命令仅限客户端版
应对「ClickFix」型攻击——伪造的广告或验证码页面诱导用户「复制验证码并粘贴」,实际粘贴的却是恶意命令。通过 gtk::Clipboard 轮询(X11 和 Wayland 均支持)在复制的瞬间检测,一旦是已知恶意模式即自动清除内容并发出警告。无论粘贴目标是终端还是 GNOME/KDE 运行对话框,都能在复制时统一检测。
🔔 通知历史(过去7天)
回顾 RoamSwitch 发送过的通知,而不仅限于通知出现的那一刻。可通过 CLI(roamswitch notifications)、GUI、MCP(get_notification_history)及 Python SDK 查看。超过保留期限的通知会自动删除。
🕵️ DNS 隧道/数据外泄检测
检测 iodine、dnscat2 等 DNS 隧道工具所依赖的可疑查询形态——标签过长且高熵,或 TXT/NULL 类型。绝不检查非 DNS 流量,检测进程停止也不会影响域名解析。客户端与服务器版均支持。
📊 漏洞扫描时效追踪(间隔天数)仅限客户端版
针对每个实证型漏洞探测项,可从 GUI / CLI / MCP 查看最后一次确认的结果及经过天数,让「上次确认是什么时候」一目了然。
识别已连接的网关 MAC,自主切换 nftables 配置。共享服务控制与 ARP 固定也在此界面。
在托盘中即时切换保护级别、设置手动覆盖有效期、开关 DNS 威胁防护与语言。
支持的环境
| 完全支持 | Ubuntu 22.04 / 24.04、Debian 12+、Linux Mint、Pop!_OS、elementary、Zorin、Raspberry Pi OS 64 位 (Bookworm)、Ubuntu for Raspberry Pi |
|---|---|
| 架构 | x86_64 / aarch64(Raspberry Pi 4 / 5) |
| 必需 | systemd、nftables。托盘 UI 需要支持 AppIndicator/StatusNotifierItem 的桌面(KDE / Cinnamon / MATE / Budgie,或安装扩展的 GNOME)。无头环境可用 daemon + CLI + MCP 运行。 |
| 软件包 | APT(Ubuntu/Debian 系)、DNF(Fedora/RHEL)、zypper(openSUSE)、AUR(Arch)。不支持非 systemd 发行版(Alpine / Void / Devuan)。 |
| 用途 | 我们提供两个版本:面向工作站、笔记本电脑的客户端版(含 GUI/托盘),以及面向云 VPS、容器主机、数据中心的服务器版(无头・Default Drop・eBPF/Falco 集成)。 |
随附应用
客户端版软件包(deb、rpm、tarball)随附三个独立于 RoamSwitch 的应用(PersonalSOC、PathScope、AccessScope)。它们各有自己的图标,可从应用列表中打开。许可证为 Apache License 2.0,不属于 RoamSwitch 使用许可协议(EULA)的适用范围。服务器版(无界面)只包含三个命令(personalsoc、pathscope、accessscope),不含界面应用。
| PersonalSOC | 汇总本设备的日志和防护状况,按下按钮即可生成一份报告的个人安全运营中心。LLM 联动为可选项,默认关闭。 |
|---|---|
| PathScope | 找出普通用户可到达 root 的路径,并指出应先修复的位置的提权路径分析工具。LLM 联动为可选项,默认关闭。 |
| AccessScope | 访问日志的安全诊断工具,从 Web 服务器和 SSH 的访问日志中找出攻击尝试,并给出作为依据的日志行。LLM 联动为可选项,默认关闭。服务器版软件包中也包含该命令(accessscope)。 |
| 更新与依赖 | 随附应用会随 RoamSwitch 软件包的更新一起更新。窗口显示需要 WebKitGTK 4.1(libwebkit2gtk-4.1),deb / rpm 会自动安装;在 Arch(AUR)上请将 webkit2gtk-4.1 作为可选依赖安装。 |
客户端版 / 服务器版对比
面向工作站、笔记本电脑的「客户端版」,与面向云 VPS、容器主机、数据中心的「服务器版」。针对不同环境提供最优的自主防御。
| 领域 | 客户端版(现行) | 服务器版(无头) |
|---|---|---|
| 网络判定与配置切换 | 按 Wi-Fi / 网关 MAC 自主切换(3 套配置) | Static policy (/etc/roamswitch/server.conf, fixed Default Drop) |
| 防火墙姿态 | 自动在开放 / 标准 / 锁定间选择 | 默认拒绝 + 仅明确放行对外服务端口(最小化入站) |
| 出站(egress)流量 | 被动链接防护 + DNS 威胁防护拦截钓鱼 | 对 C2 / 恶意域名的出站拦截 + 发起限制 |
| VPN 隧道 + 断网开关 | ✅ WireGuard / Tailscale | ❌ 不支持(管理访问仅限 SSH。如需 VPN,请自行通过操作系统搭建 WireGuard 等) |
| 勒索软件检测与自主隔离 / fanotify 恶意软件扫描 | 基于 fanotify 的勒索软件自主检测与进程冻结 | eBPF 入侵检测(Falco / Tetragon)+ 关键路径 FIM(事件驱动、即时检测)+ 资源耗尽/崩溃循环检测 |
| 内核加固(sysctl / Yama / noexec) | 接入不受信任网络时应用 | 恒常应用 |
| 安全健康诊断 | ✅ 27 项(GUI / CLI / MCP) | ✅ 34 项(CIS Benchmark 基准・CLI / MCP) |
| 操作界面 | GTK GUI + 托盘 + CLI + MCP | CLI + MCP + 远程管理(无头) |
| 紧急通知 | 桌面通知(GTK / libnotify) | Slack / Discord / Teams / Syslog / Webhook 即时告警 |
| 集中管理与审计 | 【规划中·尚未提供】通过 Business 许可证追加 | 【规划中·尚未提供】通过 Business 许可证追加(签名策略分发、定期签入;免费版完全本地运行) |
| 详细文档 | 安全白皮书 (Client) → | 服务器版运维手册 / 安全设计白皮书 (Linux 服务器版) |
🏢 RoamSwitch Business(面向组织)
个人版(Community Edition)免费且全功能开放。为便于组织统一管理多台 Linux 设备,我们规划在付费 Business 中提供以下管理层(目前均尚未提供)。设备端防护(nftables 切换、勒索软件隔离、USB 防护、DNS、诊断、MCP)包含在 Community 中,Business 不会削减这些功能。
| 规划中的功能 | 概要 |
|---|---|
| 车队集中管理 | 【规划中·尚未提供】用 Ed25519 签名的组织令牌注册设备,通过定期 check-in 汇总保护级别、诊断分数与策略应用状态。 |
| 签名策略批量下发 | 【规划中·尚未提供】将受信网络、外出级别、共享服务控制与各项防护的强制值以 Ed25519 签名 JSON 下发。设备端显示锁定。 |
| 签名的内部 APT / RPM | 用组织专用 GPG 密钥签名的私有仓库。应用内更新检查照常工作。 |
| SLA 支持 | 以合同为基础提供部署设计、策略设计与故障响应窗口(日语、JST 工作日)。 |
目前不存在管理服务器或集中式设备管理功能,Community Edition 也不与任何管理服务器通信(Zero Telemetry)。Business 的管理功能属于开发路线图中的规划;若引入,将采用仅针对组织明确登记设备的选择加入方式,并提前公开发送的项目。面向 macOS 版 Pro Lifetime 用户的免费授予计划在推出时实施。价格与上线时间请咨询。
咨询 Business🔒 Zero Telemetry / 许可
绝不会将通信内容、连接历史、浏览 URL 或系统日志发送到外部。客户端版默认只有一种对外连接:每天一次、仅接收签名检测数据等的更新(不含任何用户或设备信息,可在设置中关闭)。服务器版默认也只有一种对外连接:仅接收签名数据(内核 CVE 数据、Web 规则,以及在 Ubuntu 服务器上用于操作系统软件包 CVE 比对的 Ubuntu 软件包 CVE 数据)的匿名获取(清单每天确认一次,CVE 数据本体约每 30 天一次;不含本主机的任何信息,运维人员可以关闭)。除此之外,除非运维人员主动启用,否则不会对外通信。RoamSwitch for Linux 为专有免费软件,官方分发包(.deb)可在保留全部版权声明的前提下原样再分发。源代码不公开。全文见 /usr/share/doc/roamswitch/copyright。RoamSwitchKit SDK 另作为开源单独提供。 随附的独立应用(PersonalSOC、PathScope、AccessScope)的 LLM 联动(包括 PathScope 的「LLM 辅助」、AccessScope 的 LLM 分析与日志查找)在各应用中均默认关闭;启用后,内容可能通过您所选的 LLM 命令发送到外部(详见各应用的页面)。