Lafine Systems Design · 技術文件

RoamSwitch 伺服器版技術白皮書

適用於雲端和無頭 Linux 伺服器基礎架構的自主網路安全和完整性防禦套件

版本 v1.1.0 適用對象 RoamSwitch Server Edition 1.3.2 需求 systemd + nftables 發布日期 2026-09-07

§1概述與核心原則

RoamSwitch 伺服器版 是一款無頭、常駐自主網路安全性和完整性保護套件,專為跨雲端供應商(AWS、GCP、Azure、裸機 VPS)和本地資料中心的 Linux 伺服器基礎架構而建置。

與專注於移動性和 Wi-Fi 週邊適應的客戶端工作站版本不同,伺服器版本建立在五個毫不妥協的原則之上:入站預設丟棄關鍵路徑檔案完整性監控 (FIM)搶權限佔式核心 LPE 和增強功能增測eBPF 運行時威脅遙測和帶有斷線前緊急警報的自主氣隙主機隔離

軟體以嚴格的零遙測保證構建,包含零外部HTTP/TLS分析或追蹤庫。所有管理機密和令牌均在嚴格的 0600 權限下以加密方式受到保護。

1.1 比較:客戶端版與伺服器版

尺寸 客戶端版(桌面/行動) 伺服器版(無頭/基礎設施)
部署 筆記型電腦、行動開發者工作站 雲端虛擬機器、裸機節點、容器主機
網路行為 基於 Wi-Fi SSID/網關 MAC 的動態設定檔切換 靜態入站預設丟棄。僅公開明確允許的端口
用戶介面 GTK3 桌面 GUI + 托盤指示器 純無頭 CUI。 CLI 指令 + 互動式精靈
事件通知 桌面通知 (libnotify) 直接推送到 Telegram Bot、LINE Messaging API 和 Webhooks (Slack/Discord)
主要防禦 公共 Wi-Fi ARP 欺騙、BadUSB、勒索軟體文件加密 外部偵察投放、FIM 竄改偵測、容器逃脫、核心 LPE (CVE-2026-53362)

1.2 核心架構原則

  • 零遙測:該軟體從不將遙測、指標或遙測傳輸到外部伺服器。外部網路呼叫嚴格針對透過子程序 curl 執行的使用者配置的事件警報發生。 預設情況下不包含任何外部通訊函式庫。唯一的例外是:僅當維運人員明確啟用 cve_kernel_map_updates_enabled(預設 false)後,roamswitch-updater 才會每天一次從 lafine.net 匿名擷取容器隔離稽核所需的核心 CVE 資料庫。
  • 入站預設丟棄:未發送至明確聲明的服務連接埠或管理 SSH 維護連接埠的入站封包將在 nftables 核心層級被丟棄,而不產生 ICMP RST 封包。
  • 故障關閉自主遏制:緊急氣隙規則在守護程序重新啟動和進程崩潰後仍然存在。如果外部參與者嘗試刷新 nftables 表,守護程式會偵測到偏差並在幾秒鐘內恢復隔離。
  • 0600 加密秘密保護/etc/roamswitch/server.conf 在建立和每次更新時強制執行嚴格的 0600 權限(僅可由 root 讀取)。

§2威脅格局與對手模型

現代面向互聯網的伺服器面臨無情的自動掃描、容器突破向量和零日核心權限升級。

解決的主要威脅媒介
  1. 自動偵察和資料庫暴露:網際網路範圍內的掃描器定位無意暴露的內部資料庫連接埠(MySQL 3306、Redis 6379、Postgres 5432).
  2. 關鍵路徑竄改與後門插入:入侵者透過修改核心身分驗證二進位檔案(/bin/login/usr/bin/sudo/etc/pam.d/*/etc/shadow)建立持久性。
  3. 核心權限升級 (CVE-2026-53362 Frag Gap):非特權攻擊者武器化使用者命名空間 (unshare -U -r) 以觸發核心記憶體損壞並升級到 root.
  4. Container Socket Breakout:設定錯誤的容器,已安裝 /var/run/docker.sock--privileged 標誌,在主機作業系統上執行 root 操作.
  5. 進程記憶體窺探:攻擊者跨進程附加ptrace或讀取/proc/$pid/mem以提取私鑰或憑證。

§3系統架構

RoamSwitch 伺服器版作為本機 Rust 二進位檔案運行,旨在實現最小記憶體和零 CPU 開銷。

┌─────────────────────────────────────────────────────────────┐
│  使用者與管理員空間                                         │
│                                                             │
│   roamswitch (CLI)             roamswitch-mcp (AI Agent)    │
│   · server status(30 項診斷)  · 安全稽核工具集            │
│   · server config / setup      · 標準輸入輸出 JSON-RPC      │
│   · fim verify / update                                     │
│        │                               │                    │
└───────┼───────────────────────────────────┼─────────────────┘
         │ (CUI 命令 & 設定生效)          │ (stdio)
┌───────▼───────────────────────────────────▼─────────────────┐
│  系統基座 (systemd + root 權限)                             │
│                                                             │
│   roamswitch-server-daemon                                  │
│   ├── CriticalPathFim (SHA-256 背景巡檢)                    │
│   ├── eBPF / Falco 聯動模組                                 │
│   ├── Notifier (Telegram / LINE / Webhook 即時通知)         │
│   └── Air-Gap Controller (展開 nftables 緊急封鎖規則)       │
│                                                             │
│   設定管理: /etc/roamswitch/server.conf (權限 0600)         │
│   完整性資料庫: /var/lib/roamswitch/fim_baseline.db         │
└─────────────────────────────────────────────────────────────┘

§4核心防衛機制

4.1 邊界安全(入站預設丟棄)

nftables 對入站流量套用 policy drop,允許建立連接、環回以及明確配置的 ssh_portsallowed_ports

保留 SSH 管理連接埠可防止操作員在緊急氣隙狀態下意外鎖定。

4.2 關鍵路徑檔案完整性監控(FIM)

監控 150 多個關鍵作業系統驗證和管理檔案(/bin/login/usr/sbin/sshd/etc/pam.d/* 等)。根據 /var/lib/roamswitch/fim_baseline.db 計算 SHA-256 雜湊值。套件管理器掛鉤 /etc/apt/apt.conf.d/99roamswitch-fim 在授權的 apt upgrade 作業之後自動更新基線。

4.3 內核與容器強化

Frag Gap (CVE-2026-53362) 緩解:透過 sysctl 強制執行 user.max_user_namespaces = 0,中和 LPE 向量。 Yama LSM 保護 強制執行 kernel.yama.ptrace_scope = 2,防止未經授權的記憶體檢查。容器工作負載經過 docker.sock 暴露審計。

Docker 的公開連接埠(-p)存在繞過主機標準防火牆的已知問題,因此 protect_docker_ports=true(預設)會始終在 DOCKER-USER 鏈中插入檢查規則,封鎖未被明確允許的外部流量。此外,還配備一個始終運作的防護,透過 docker events 即時偵測 --privileged 容器的啟動或 /var/run/docker.sock 的掛載(容器逃逸風險)並立即通知(無需設定,僅通知不自動封鎖)。對於處理郵件中繼、共用資料夾等他人檔案的主機,可選擇啟用的 File Scan Guard(內建 YARA + 可選 ClamAV)提供定期掃描與自動隔離。

4.4 eBPF 運轉時威脅遙測和防膨脹調整

利用現代 eBPF (CO-RE / BTF) 偵測器在幾毫秒內攔截權限升級和容器突破嘗試。為了消除 Falco 的標準痛點 — 日誌膨脹、磁碟耗盡和 CPU 開銷 —RoamSwitch 標準化了最佳化設定檔 (/etc/falco/config.d/99-roamswitch-optimized.yaml):

  • 严重性过滤 (priority: warning):将嘈杂的操作遥测(信息/通知)抑制 95%,暴露严格可操作的安全事件。
  • 核心層級預先刪除 (drop_failed_exit: true):直接在核心偵測中丟棄失敗的系統呼叫退出,將 CPU 上下文切換減少 50% 以上。
  • 内存占用优化 (cpus_for_each_buffer: 2):将环形缓冲区从 8MB 压缩到 2MB,将内存使用严格限制在 30–50MB。
  • Direct UNIX Domain Socket IPC:直接流式传输到 /var/run/roamswitch/events.sock 完全消除了磁盘 I/O 抖动。
  • 自动日志上限 (/etc/logrotate.d/roamswitch-falco):每天轮换 maxsize 50M 和 7 个压缩周期,永久防止磁盘容量耗尽。

4.5 帶有預先切斷警報的緊急氣隙隔離

在發生嚴重篡改時切斷網路介面之前,守護程式會同步向 Telegram、LINE 和 Webhooks 發送緊急警報。警报会自动附加服务器 主机名主 IP 地址

緊急警報格式(日文/英文)
🚨 [RoamSwitch IMMINENT AIR-GAP] CRITICAL: IMMINENT AIR-GAP HOST ISOLATION (cve_2026_53362_lpe)
🚨 CRITICAL SECURITY INCIDENT DETECTED: cve_2026_53362_lpe
Host: production-node-01 (IP: 192.168.1.10)
Process: exploit_payload (PID: 4921)
ACTION: Initiating host Air-Gap network isolation (SSH preservation active).
WARNING: Outbound internet connectivity will be cut immediately after this message.
Timestamp: 2026-09-06 18:00:00

§530 檢查安全診斷套件

伺服器版執行 30 項專門的安全健康審核:

# 類別 檢查標題 標準與邏輯
1授權和存取SSH Root 登入和密碼驗證驗證 PermitRootLogin no 和密碼驗證已停用
2授權和存取空密碼帳戶確保 /etc/shadow 中沒有使用者俱有空白密碼雜湊
3授權和存取Sudoers 特權衛生驗證不存在未經授權的 NOPASSWD 指令
4網路入站預設拒絕審核 nftables 的預設入站丟棄策略
5核心與完整性非特權使用者命名空間(碎片間隙)确保 user.max_user_namespaces = 0 (CVE-2026-53362)
6核心與完整性eBPF BTF 支持通过 /sys/kernel/btf/vmlinux 验证内核 BTF 类型信息
7核心與完整性eBPF LSM 活動检查内核 lsm= 启动参数中的 bpf
8核心與完整性eBPF 运行时安全代理验证与 Falco / Tetragon 代理的遥测链接
9貨櫃Docker Socket 安装审核检测 /var/run/docker.sock 的容器安装
10貨櫃Docker 特權容器高風險 --privileged 容器工作負載的審核
11誠信關鍵路徑檔案完整性 (FIM)驗證 150 多個核心作業系統二進位檔案的 SHA-256 雜湊值
12核心與完整性Yama過程保護驗證 kernel.yama.ptrace_scope = 2
13網路IP 轉送已停用驗證 net.ipv4.ip_forward = 0
14網路TCP SYN Cookie 保護驗證 net.ipv4.tcp_syncookies = 1
15網路反向路徑過濾(rp_filter)驗證嚴格的反向路徑過濾 (rp_filter = 1)
16核心與完整性核心轉儲限制透過 fs.suid_dumpable = 0 防止進程記憶體洩漏
17營運自動安全性更新驗證 unattended-upgrades 的配置
18營運NTP時間同步透過 chronysystemd-timesyncd 檢查同步
19營運SSH 暴力保護透過 fail2bancrowdsec 驗證主動監控
20核心與完整性禁用非特權 eBPF檢查kernel.unprivileged_bpf_disabled = 1
21網路忽略 ICMP 重定向透過 accept_redirects = 0 防止路由中毒
22網路忽略 ICMP 回顯廣播緩解 Smurf 放大器 DoS 攻擊
23核心與完整性共享記憶體強化確保 /dev/shm 具有 nodev,nosuid 安裝選項
24授權和存取不存在遺留的不安全協議驗證是否有明文守護程式(telnet、rsh、tftp)
25核心與完整性SUID 進程核心轉儲受限防止 SUID 二进制崩溃时的凭证泄漏

§6自我檢查(Docker 環境下的可重現驗證)

RoamSwitch Server Edition 的各項防護機制(輸入方向預設拒絕、Critical Path FIM、基於 guard.yaml 的嚴重度分級封鎖、受保護程序安全機制、安全計時器、核心 LPE 強化等),針對從官方 APT 儲存庫安裝的真實 roamswitch-server v1.3.2 套件(並非本地建置),透過讓另一個 Docker 容器擔任外部攻擊者,您可以在自己的機器上完全重現並驗證。以下是這 8 個驗證情境,以及各自應觀察到的行為(判定標準)。詳細步驟與指令碼請參閱下方 6.3。

# 場景 攻擊向量 通過標準
PENT-S1 Nmap SYN 隱形掃描 跨連接埠 22、80、443、3306、8080 進行探測 PASS(100% 隱密)
PENT-S2 不允許的連接埠偵測 卷曲直接连接到端口 3306 和 8080 透過
PENT-S3 Egress / C2 封鎖清單 嘗試向惡意 IP 情資中登記的位址發起出站連線 通過
僅封鎖已登記的位址;與未登記主機的通訊不受影響(並非一律封鎖)
PENT-S4 FIM 竄改攻擊 將後門有效負載注入 /bin/login PASS(即時偵測)
PENT-S5 guard.yaml 依嚴重程度分級的圍堵 注入引用真實處理程序的 Falco Critical 事件 通過
將相關處理程序進行網路隔離後再執行 SIGKILL
PENT-S6 受保護處理程序安全機制 注入引用真實 sshd PID 的同類事件 通過
sshd 持續執行;僅記錄一則拒絕日誌作為誤判
PENT-S7 安全計時器 讓 Air-Gap 事件保持未確認狀態(無操作員 ACK) 通過
無回應時自動復原;一旦已確認(ACK),隔離將持續至執行 emergency-restore
PENT-S8 內核 LPE 碎片間隙 以非特權使用者身分執行 unshare -U -r PASS(拒絕)

SSH 鎖定防護機制

即使在觸發主機層級 Air-Gap(on_emergency)期間,得益於 preserve_ssh_on_isolation=true(預設值),管理員的 SSH 工作階段也不會被切斷。這項設計從結構上杜絕了因誤判導致伺服器被完全隔離、且在沒有實體/主控台存取的情況下無法觸及的事故。您可以透過上方 Docker 測試套件中相當於 PENT-S7 的步驟自行驗證此行為。

驗證範圍的侷限性(誠實揭露)

本次驗證無法確認的事項

核心強化(停用非特權 User Namespace、提升 Yama ptrace_scope)無法在容器內進行端對端驗證。由於這些 sysctl 並非按容器命名空間隔離,特權容器(--privileged)中的寫入操作影響的並非驗證用的沙箱,而是正在執行本次驗證的真實機器本身。因此,本次驗證僅確認該 sysctl 寫入操作在(面對唯讀檔案系統時)能夠優雅降級而不當機,至於其數值是否真正生效,則需要在本產品實際運作的真實機器或虛擬機上進行確認。

自行重現

上述所有驗證結果,均可透過官方支援儲存庫(roamswitch-support)中公開的 Docker 測試套件,僅使用官方發行套件在您自己的機器上 100% 重現(無需存取原始碼,也無需信任我們)。

# 取得並重現驗證套件(從官方 APT 儲存庫自動安裝 roamswitch-server)
git clone https://github.com/lafine1211/roamswitch-support.git
cd roamswitch-support/test/docker/server
./run.sh

在 Docker 的預設橋接網路上建立 Target、Attacker、C2 誘餌共 3 個一次性容器,自動驗證全部 18 個項目並輸出報告。完整執行結果已公開於 RESULTS-PENTEST-SERVER-2026-09-07.md(基於透明原則,亦記載了建置過程中發現並修正的測試工具本身問題)。

§7營運、部署和生命週期

7.1 無頭 CUI 工具和設定精靈

透過 CLI 完成遠端管理:

  • roamswitch server status:完整 30 個檢查診斷輸出 (JA/EN)。
  • roamswitch server setup:連接埠和通知的互動式終端精靈。
  • roamswitch server config show / set <key> <val>:Ansible/Terraform 的可編寫腳本的自動化。
  • roamswitch server test-notify [all|telegram|line|webhook]:端對端通知探測。

7.2 包裝

透過官方 Debian/Ubuntu .deb 儲存庫、RHEL/Fedora .rpm 儲存庫和 Arch Linux AUR (roamswitch-server-bin) 分發。

§8結論

RoamSwitch 伺服器版為 Linux 伺服器基礎架構提供了不折不扣的防禦邊界:零遙測隱私、入站預設丟棄、關鍵路徑 FIM 和主動核心權限升級緩解,為現代雲端節點提供統一的自主防禦。

針對網路攻擊者瞄準的攻擊向量全階段(初期偵察、入侵、權限提升、持久化),實現多層防禦與自主封鎖(Air-Gap)的次世代 Linux 伺服器安全標準。

本文件基於 RoamSwitch Server Edition v1.3.2(輸入方向預設拒絕/Critical Path FIM/guard.yaml 政策引擎/核心 LPE 強化/eBPF 執行時監控/Air-Gap 安全計時器)當時的實作。逐項變更歷史請參閱 roamswitch-support 的 CHANGELOG。最新資訊請參閱 lafine.net/linux