2025/05/18

另一個集中管理主几的好物



安裝超級簡單

npm install meshcentral

官網的說明是啟動LAN 模式 只能在同網段 client 使用 multicast找到server

node node_modules/meshcentral



如果要跨網段 要使用以下指令啟動 加上server的 ip

node node_modules/meshcentral --cert 10.0.0.1

安裝完成請馬上登入 https://10.0.0.1
建立帳號 第一個建立的帳號就是系統的管理帳號
建完帳號後再以此帳號登入

接下來是處理被控端的 agent 程式 直接從web管理介面上即可下載















可選擇不同的OS 及版本
agent 程式放到client後可選擇只執行連線 或 安裝成service
連線成功後即會出現在如上圖的位置 可在管理介面上操控

2025/05/17

隨著docker使用的愈來愈多
更新管理這件事也變的重要
找到watchtower這個工具 還滿方便使用的

部署方式如下

docker run -d --restart=always \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup --remove-volumes \
--interval 86400

預設檢查時間是 86400 秒 可視需求調整


如果需要只email通知而不更新

docker run -d --restart=always \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_NOTIFICATIONS=email \
-e WATCHTOWER_NOTIFICATION_EMAIL_FROM=from@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_TO=to@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=from@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=yourpassword \
  containrrr/watchtower \
  --monitor-only \
  --interval 86400 \



2025/05/16

裝好 guacamole 在管理介面几個要注意的地方

先建立連接

建立RDP連接時 如果一直無法連線 要調整安全模式
各個不同模式都試看看




















再來是螢幕錄影
路徑要跟 啟動docker 時 對應的路徑相同
名稱一定要設定 我這裡是跟連接設定相同名稱 方便識別
錄影檔只會有一個名稱為主的檔名 然後接續 .1 .2 .3 ...新增
要觀看必須要使用 guacenc 轉檔


















以下設定開啟檔案傳輸功能 就可以把檔案直接拖進瀏覽器內























在client產生一個共用資料夾 控制端把檔案拖進瀏覽器實際上是拖進這個共用資料夾內
這個資料夾是 guacd 這個docker的 /tmp
 











如果要從被控几下載檔案到控制几 要先把要下載的檔案放到這個資料夾內
之後在瀏覽器上 按 ctrl+alt+shift 打開側边欄 點選 shared Drive
就可以看到能下載的檔案 直接下載即可 
也可以在這個視窗上傳檔案到共用資料夾內























再來就是注意一定要設定時區
避免log對不上的問題

ctrl+alt+shift 可以叫出側邊功能面版 

2025/05/15

昨天有人介紹了一個可以管制登入並且螢幕錄影的軟体


今天試了一下
先安裝 本次都以docker 安裝
先pull四個image

網頁前端
docker pull guacamole/guacamole

主体程式
docker pull guacamole/guacd

資料庫
docker pull mysql

影像檔轉檔程式
docker pull litios/guacenc


在宿主几建立存放影像檔的資料夾 並提供給docker 掛載
mkdir /opt/screen_record
cd /opt
chmod -R 777 screen_record

啟動資料庫
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=guacamole mysql


生成並導入Guacamole初始化資料庫:

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
docker cp initdb.sql mysql:/
docker exec -it mysql bash
mysql -uroot -p
create database guac;
use guac;
source /initdb.sql;
exit
exit

啟動guacd 同時掛載影像檔目錄

docker run --name guacd -d -v /opt/screen_record:/recordings guacamole/guacd


啟動Guacamole Web應用,連結guacd和mysql:

docker run --name guacamole --link guacd:guacd --link mysql:mysql \
-e MYSQL_DATABASE=guac -e MYSQL_USER=root -e MYSQL_PASSWORD=guacamole \
-d -p 9090:8080 guacamole/guacamole


啟動guacenc 同時掛載影像檔目錄

docker run -v /opt/screen_record:/recordings -d -it --name guacenc litios/guacenc


瀏覽器訪問 http://你的IP:9090/guacamole,預設帳號密碼均為 guacadmin。


影像檔轉檔為m4v 指令
docker exec -it guacenc guacenc -s 1280x720 -r 20000000 -f /recordings/record_file_name


更新docker 開几重啟
docker update --restart always <容器ID或名稱>


下篇再補上操作介面說明

2025/05/12

因為ssl加解密的几制已經搞很久了還是有問題
所以找看看其他的解決方案
這几天試了一下 nginx 的 mirror 功能
記錄一下

在要執行 mirror 的 nginx 上設定如下

server {
    listen 443 ssl;
    server_name aaa.com.tw;


    ssl_certificate /etc/ssl/certs/server.cer;
    ssl_certificate_key /etc/ssl/certs/server.key;


    location / {
        proxy_pass http://primary_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        mirror /mirror;

        mirror_request_body on;
    }

    location /mirror {
        internal;
        proxy_pass http://secondary_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 1s;
        proxy_connect_timeout 1s;
    }
}

upstream primary_backend {
    server 10.0.0.1:80;
}

upstream secondary_backend {
    server 10.0.0.2:80;
}

10.0.0.1 是提供服務的server

10.0.0.2 接收 mirror過來的內容

10.0.0.1 10.0.0.2 二台都必須要起web server並listen 非加密的 80 port

10.0.0.2只需要啟動即可 不需要跟 10.0.0.1有相同的網頁內容
因為如果10.0.0.2沒有 web server  mirror過來的封包會被直接丟掉 

同時在 10.0.0.2上啟動 ids 軟体 如 snort, suricata 等 分析mirror過來的內容

10.0.0.1會把client的request解密後同時送到 10.0.0.1 10.0.0.2 

但不會 mirror server response 的內容


10.0.0.2 上的nginx access log 預設會記錄 10.0.0.1這個ip
如果要改成 request client的ip  nginx.conf 要新增以下內容

server {
    set_real_ip_from 10.0.0.1;
    real_ip_header X-Real-IP;



2025/05/06

昨天才注意到grafana最近的更新多了 Drilldown 這個功能
目前會用到的是log這個
之前要搜尋資料是到 Explore 這裡
現在直接到 Drilldown 就可以了
關鍵字預設會高亮
很方便

2025/05/05

最近試了一下 openobserve

直接下載執行即可

還滿方便的

速度也很快

功能很多

但在查詢上不是那麼方便

沒辦法直接使用關鍵字

執行複雜查詢的時候更麻煩

看之後會不會改進這個問題


https://openobserve.ai/