docs: 新增 Xensor (CyCraft) EDR agent 安裝筆記

2026-06-08 於 hospital_web (106.105.181.70) 部署 cydroned EDR agent:
- 記錄安裝方法、設定、Endpoint ID、版本與驗證步驟
- 補充本機實務踩坑:macOS 中文檔名 unzip 失敗改用 unzip -p、
  遠端無 unzip、安裝後 systemd/config 初始化競態
- README 索引補上該文件

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 18:18:29 +08:00
parent f2fa685140
commit b85f0a6b97
2 changed files with 141 additions and 0 deletions

View File

@@ -12,6 +12,7 @@
| `ssl_cert_note.md` | SSL 憑證資訊與待處理事項 |
| `ssl_deploy_guide.md` | SSL 憑證部署 SOP |
| `admin_access_note.md` | `/admin/` IP 白名單機制(.htaccess + X-Forwarded-For |
| `xensor_cydroned_edr.md` | CyCraft Xensor EDR agent`cydroned`)安裝方法與現況 |
| `ssl_certs/` | SSL 憑證檔案(.cer、中繼憑證 |
| `reset_npm_password.sh` | NPM 管理員密碼重設腳本 |
| `check_ssl.sh` | 憑證狀態檢查腳本(主機名匹配 + 到期天數) |

140
xensor_cydroned_edr.md Normal file
View File

@@ -0,0 +1,140 @@
# Xensor (CyCraft) EDR Agent 安裝筆記hospital_web / 106.105.181.70
## 概述
`106.105.181.70`SSH 別名 `hospital_web`hostname `tpecheap`)上部署了
**CyCraft奧義智慧Xensor** 端點偵測與回應EDR代理程式agent 名稱為 `cydroned`
由資安團隊提供的安裝腳本部署。與影音主機 `106.105.181.40``hospital_media`)共用同一套
安裝包、同一 APIKey 與部署群組。
- 安裝包:`XENSOR_Linux-臺北市立聯合醫院.zip`,解開後為單一 shell script
(檔名 = `<APIKey>_Linux-臺北市立聯合醫院.sh`
- 部署群組:`Linux-臺北市立聯合醫院`appid `A00003`
- 回報伺服器:`https://node7.xensor.ai:443`
> ⚠️ **敏感資訊**:安裝包與設定檔內含 APIKey、RSA 公鑰、內部群組名稱(醫院名)。
> 屬該院的部署憑證,請勿外流或提交到公開 repo本 repo 已用 `.gitignore` 排除 zip
## 安裝包資訊
| 項目 | 值 |
|------|-----|
| Agent 名稱 | `cydroned` |
| 安裝路徑 | `/usr/local/bin/cydroned` |
| 設定目錄 | `/etc/cydroned/`(主設定檔 `/etc/cydroned/config` |
| 服務檔 | `/lib/systemd/system/cydroned.service`service 名稱 `CyDrone Agent`enabled |
| 資料目錄 | `/var/lib/cydroned/`(含 `loader``quarantine`,僅 root 可讀) |
| 日誌 | `/var/log/cydroned.log``/var/log/cydroned/`(僅 root |
| APIKey | `c064efc31aed4ec4a5073013809a169d` |
| TargetURL | `https://node7.xensor.ai:443` |
| 同步週期 | `SyncPeriodSec: 600` |
| CPU 上限 | `MaxCPU: 35` |
## 連線到主機
`106.105.181.70` 不可直連,需經跳板(`~/.ssh/config` 已設好 `hospital_web` 別名):
```
本機 → timmy_home_server (125.229.110.50:22, user timmy) ← 需密碼,另行保管
→ jason_hsieh_home_srv (220.135.27.129:2022, user timmy) ← 金鑰
→ hospital_web (106.105.181.70:22, user tpech_1duan) ← 金鑰
```
> 第一跳 `timmy_home_server` 用**密碼認證**;若 ControlMaster 主連線仍在
> `~/.ssh/sockets/`),可用 `ssh -o BatchMode=yes hospital_web` 重用、免再輸密碼。
## 安裝腳本運作方式
腳本(`<APIKey>_..._Linux-臺北市立聯合醫院.sh`)分三段:
1. **前置相容性檢查**CPU 架構、kernel、libc、init 系統、`/proc``/sys`、套件管理器、
Python 版本與模組、`/tmp` `/var/log` `/var/lib` 磁碟空間。
`/usr/local/bin/cydroned``/etc/cydroned` 已存在,**預設直接退出不重裝**。
2. **下載並安裝 agent**:從 `node7.xensor.ai` 依架構下載 `cydroned`,驗證為 ELF 後執行:
```
./cydroned -sync 5 -url https://node7.xensor.ai:443 \
-apikey c064efc31aed4ec4a5073013809a169d -pubkey <RSA 公鑰> -background
```
裝成 systemd 服務常駐回報。
3. **失敗時自動診斷**:失敗會跑診斷蒐集日誌打包,提示送交 CyCraft。
### 執行安裝(本機 .70 實際步驟)
`hospital_web`Ubuntu 24.04**沒裝 `unzip`**,且 zip 內 `.sh` 檔名含中文、
**macOS 直接 `unzip` 會 `Illegal byte sequence` 解不開**。因此在本機用 `unzip -p`
導出乾淨檔名再上傳:
```bash
# 1. 本機解壓(避開中文檔名)→ 上傳乾淨檔名
unzip -p XENSOR_Linux-臺北市立聯合醫院.zip > cydroned_install.sh
scp -o BatchMode=yes cydroned_install.sh hospital_web:~/
# 2. 在主機上以 root 執行sudo 為 NOPASSWD
ssh -o BatchMode=yes hospital_web '
chmod +x ~/cydroned_install.sh
sudo sh ~/cydroned_install.sh
'
# 3. 裝完清掉上傳的檔案
ssh hospital_web 'rm -f ~/cydroned_install.sh ~/XENSOR_Linux-*.zip'
```
腳本選項:
| 選項 | 用途 |
|------|------|
| (無) | 正常安裝已安裝會退出exit 3 |
| `-f` | 強制安裝:先解除既有安裝再重裝 |
| `-d` / `--diagnosis` | 只跑診斷,蒐集系統/agent 資訊打包供 CyCraft 排錯 |
| `-h` | 顯示用法 |
> **踩坑**:安裝**剛完成的數秒內**`systemctl status cydroned` 可能報 unit not found、
> `/etc/cydroned/config` 也還沒寫完——這是 daemon-reload 與初始化的競態,
> 稍等再查即正常service enabled + active running
## 驗證安裝狀態
```bash
ssh hospital_web '
sudo ls -al /usr/local/bin/cydroned # 執行檔
pgrep -a cydroned # process
systemctl status cydroned --no-pager | head # 服務狀態
sudo grep -iE "apikey|targeturl" /etc/cydroned/config
sudo /usr/local/bin/cydroned -id # Endpoint ID
sudo /usr/local/bin/cydroned -version # 版本
'
```
### 目前狀態2026-06-08 安裝)
| 項目 | 值 |
|------|-----|
| 安裝日期 | 2026-06-08 |
| OS | Ubuntu 24.04.4 LTSkernel 6.8.0Python 3.12.3 |
| 執行檔 | `/usr/local/bin/cydroned`16.9 MBroot |
| 服務 | `cydroned.service` enabled + **active (running)** |
| Endpoint ID | `2BAF82335C17FCE1541D2210DB083EC6` |
| 版本 | `0.57.5 (release)`tag `ap03`build `20260126074153` |
| 設定一致性 | APIKey / TargetURL / PubKey 皆與安裝包相符 ✅ |
## 解除安裝
腳本以 `-f` 執行時會先解除既有安裝,等同於:
```bash
sudo /usr/local/bin/cydroned -ctrl force-uninstall
sudo /usr/local/bin/cydroned -uninstall
sudo killall cydroned
sudo rm -rf /etc/cydroned /var/lib/cydroned /usr/local/bin/cydroned \
/var/log/cydroned /var/log/cydroned.log \
/lib/systemd/system/cydroned.service /etc/init/cydroned.conf /etc/init.d/cydroned
```
## 注意事項
- 這是**合法商用 EDR agent**但行為root、常駐、外連 `node7.xensor.ai`、可 dump
process 記憶體)與惡意程式相似,操作前需確認來源與授權。
- agent 以 root 運行,`/var/lib/cydroned`、`/var/log/cydroned/` 僅 root 可讀屬正常。
- 重跑安裝腳本(不帶 `-f`)在已安裝狀態下會直接退出,不會破壞現有部署。
- 影音主機 `106.105.181.40``hospital_media`)也裝了同一套 agentEndpoint ID
`25F3B0AFCA173F2417950B2FD28CFA66`2026-04-14 安裝)。