2026年5月14日 星期四

scp remote to remote

有 3 台主機 HostA、HostB、HostC
在 HostC 下 scp 指令要從 HostA 複製檔案到 HostB,都透過 Key auth

預設情況下 (沒有加參數 -3)
HostC 對 HostA 要建 Key,HostA 對 hostB 要建 Key
資料流是直接從 HostA 到 HostB,沒有經過 HostC

第二種情況,透過 HostC 中繼,加參數 -3
HostC 對另外兩台建 Key,資料流有經過 HostC 本地

-3 Copies between two remote hosts are transferred through the local host.
Without this option the data is copied directly between the two remote hosts.
Note that, when using the legacy SCP protocol (via the -O flag),
this option selects batch mode for the second host as scp cannot ask for passwords or passphrases for both hosts.
This mode is the default.

2026年5月11日 星期一

Copy fail and Dirty Frag

Copy fail 及 Dirty Frag 這兩個漏本地提權(LPE)漏洞,在 2026 年 5 月被揭露,
漏洞已存在很久,幾乎影響所有的 Linux
Github 上面已經有很多 POC 程式
暫時解決方案是禁用相關的 Kernel 模組
以下是 for RedHat 系的 Linux

# Copy fail
echo "install af_alg /bin/false" > /etc/modprobe.d/disable-af_alg.conf
echo "install algif_aead /bin/false" >> /etc/modprobe.d/disable-af_alg.conf
echo "install algif_skcipher /bin/false" >> /etc/modprobe.d/disable-af_alg.conf
# Dirty Frag
echo "install esp4 /bin/false" > /etc/modprobe.d/disable-esp.conf
echo "install esp6 /bin/false" >> /etc/modprobe.d/disable-esp.conf
echo "install rxrpc /bin/false" >> /etc/modprobe.d/disable-esp.conf

lsmod | egrep "af_alg|algif_aead|algif_skcipher|esp4|esp6|rxrpc"
若有結果,表示已載入該模組,用 rmmod 移除

2026年5月10日 星期日

Mount SSHFS in Windows

https://github.com/winfsp/winfsp
https://github.com/winfsp/sshfs-win

要先安裝這兩個工具

一般用帳密掛載,預設是掛載使用者的 home 目錄
net use Z: \\sshfs\username@host

使用 SSH Key (前綴從 sshfs 變成 sshfs.k),SSH Key 存放路徑 C:\Users\username\.ssh
net use Z: \\sshfs.k\username@host

若要掛其他目錄,前綴從 sshfs 或 sshfs.k,請使用相對路徑
例如 username 的 home 目錄是 /home/username,要掛載 /data
net use Z: \\sshfs.k\username@host\..\..\data

要使用絕對路徑,前綴要使用 sshfs.r 或 sshfs.kr
net use Z: \\sshfs.kr\username@host\data

2026年5月3日 星期日

JOE 4.8

在 Linux 環境下,一直都是使用 joe 編輯器 (JOE - Joe's own editor)
這個編輯器應該算冷門了,非 vi、vim 的編輯器中,nano 或 pico 使用群大概都比它多
joe 是使用 Ctrl 組合鍵來達到各種編輯動作
從 2018 年發布 4.6 版本以來, 長期未更新,最近關注它,發現竟然有 4.7 及 4.8 版,都是在 2026 年更新的

joe-4.8-1.el8.x86_64.rpm

這是自編的 joe 4.8 的 rpm 檔,EL8 to EL10 應該都可以使用

以下是 AI 整理的更新摘要
joe 在 4.7 與 4.8 版中,除了日常的效能調校與臭蟲修復之外,也加入了多項實用功能,
以提升編輯器在現代終端機環境下的穩定性與安全性。

1. 核心安全性增強
標籤檔 (Tags File) 弱點修復 (JOE 4.8): 修正了先前版本中存在的重大安全性問題。
在舊版中,惡意建構的標籤檔可能會欺騙使用者執行 shell 指令。
4.8 版禁止了透過標籤檔開啟檔案時使用 ! 語法,強化了系統安全性。

2. 編輯器功能與除錯增強
歷史紀錄與巨集控制: 在巨集中允許使用 notmod 指令,
能夠在提示視窗中不將指令加入命令歷史紀錄,使歷史紀錄保持乾淨。
區塊過濾提示的歷史紀錄現在會儲存在狀態檔案中。
編譯器錯誤解析器 (Compiler Error Parser) 改進: 新增 parserr_homeonly 選單選項。
啟用後,錯誤解析器會忽略使用者家目錄以外的檔案錯誤,避免系統檔案的錯誤訊息干擾開發者的除錯視圖。
自訂選單改良 (JOE 4.7-4.8):重新整理了 ^T 選項設定選單,將不常使用的選項移至子選單中,
並支援在選單系統中加入自訂的巨集。

2026年4月20日 星期一

RouterOS Reverse Proxy

RouterOS 從 7.22 版,新增了 Reverse Proxy 功能,

SNI 填入域名
IP Address 填入 Server IP,通常是內部 IP,但也可以導到外部
Port 填入內部 Server HTTP 服務 Port
Certificate 選擇對應的憑證,選擇 none 會使用 IP / Services 中 reverse-proxy 指定的憑證

再搭配 ACME Cerfificate,還可以自動 Renew
在 IP / Cerfificates,Add ACME Certificate,若使用 Let's Encrypt
Directory URL 填入 https://acme-v02.api.letsencrypt.org/directory
Domain 可以填入多個,用逗號分隔
EAB KID 空白即可

注意事項 :
reverse-proxy Service 使用 443 的話,Web 管理介面 www-ssl 就要使用其他 Port 或關閉
reverse-proxy 並不會接 HTTP Port 80 再導入,若 HTTP 也需要的話,用 IP / Firewall dstnat 處理

2026年4月8日 星期三

0xC2A0 Non-breaking space

0xC2A0 是不換行空格(Non-breaking space, NBSP) 在 UTF-8 編碼下的十六進制表示形式。
字元作用:它的外觀與一般的空格(ASCII 0x20)完全相同,但其功能是告訴瀏覽器或排版軟體「不要在此處斷行」。
這個字元在維運是個雷

這兩行中間的空白看起來沒兩樣,實際執行這個腳本,會出現
123
bash: line 3: echo 456: command not found
456 的前面,就是 0xC2A0

2026年4月1日 星期三

Let's Encrypt IP certificate

https://letsencrypt.org/2026/01/15/6day-and-ip-general-availability
2026年一月開放使用,但效期只有 160 小時
可以同時申請 IPv4 + IPv6 在同一張

必需指定用 shortlived profile
acme.sh --issue -d {IPv4} -d {IPv6} --webroot /var/www/html --certificate-profile shortlived

2026年3月25日 星期三

10 minutes file sharing service

https://tmp.pank.org

這個服務方便臨時交換檔案,檔案存活時間 10 分鐘,檔案大小上限 25MB

可以經由 curl 上傳或 Web 上傳
curl 上傳範例,上傳完會顯示下載網址

# curl -sT 10mb.zip tmp.pank.org
10390198 bytes uploaded

download as file: wget https://tmp.pank.org/ehljs8d3/10mb.zip
download as file: curl -sO https://tmp.pank.org/ehljs8d3/10mb.zip
download to stdout: curl -s https://tmp.pank.org/ehljs8d3/10mb.zip

有時 A、B 主機想要交換檔案,但 A、B 無法直接互連,但各自可以連外網,就適合用這個服務

2026年3月7日 星期六

Mount LVM in rescue mode

pvscan # 掃描實體捲軸 (PV)
vgscan # 掃描捲軸群組 (VG)
vgchange -ay # 建立 /dev/mapper/ 下的設備節點
lvscan 或 ls -l /dev/mapper # 查看有那些節點
mount /dev/mapper/rl-root /mnt # 掛載 /root 到 /mnt

若無法掛載,可能需要修復
xfs 使用 xfs_repair -L
ext3/ext4 使用 fsck

Grubby set default kernel

顯示 boot menu 有那些 kernel
grubby --info=ALL

顯示目前預設 kernel
grubby --default-kernel

設定 index=1 為預設 kernel,index 由第一個指令取得
grubby --set-default-index=1

scp remote to remote

有 3 台主機 HostA、HostB、HostC 在 HostC 下 scp 指令要從 HostA 複製檔案到 HostB,都透過 Key auth 預設情況下 (沒有加參數 -3) HostC 對 HostA 要建 Key,HostA 對 hostB 要建 Key 資料流是直...