誰變更了什麼:主機的稽核軌跡

在共用主機上,事故發生後最難回答的問題不是什麼壞了;而是在壞掉之前,誰變更了什麼。Atlas 為關鍵操作寫入稽核軌跡:執行者、操作、時間與結果,並在主機上存放於兩處。

為什麼誰做了什麼通常無從回答

原生工具讓證據四散。PVE 工作記錄知道某些操作,shell 歷史記錄知道另一些,設定檔的編輯則往往什麼都沒留下。要重建一個晚上發生的事,就得把三者的時間戳記拼湊起來。

共用 root 權限讓情況更糟。當好幾個人都能以 root 身分操作時,操作就不再有作者;而歷史記錄檔,也能被做出變更的同一份權限所修改。

而大多數稽核都發生在最糟的時刻:事故之後、壓力之下,而知道答案的人,可能正是造成事故的人。

手動重建一起事故

沒有軌跡時,常見的調查過程如下:

閱讀事故時段前後的 PVE 工作記錄,並記下其中的內容。

對主機上的 shell 歷史記錄執行 grep,祈禱沒有人用過共用帳號。

逐一查看同一時段的 journalctl,並嘗試比對時間戳記。

將目前的設定檔與最近一次備份比對,找出無聲無息的修改。

在團隊聊天中詢問那天有誰動過主機。

寫下一份建立在大概之上的事故記錄,然後繼續前進。

Atlas 會記錄什麼

關鍵操作在發生的當下就留下軌跡,而不是事後留下一團謎。

關鍵操作都有記錄

會變更或危及系統的操作,例如破壞性的儲存與網路作業、終止處理程序、涉及權限的操作,都會在執行時寫入軌跡。

執行者、操作、時間、結果

每筆記錄一次回答事故調查的四個問題:由誰觸發、確切執行了什麼、何時執行,以及是否成功。

兩份副本,可防止竄改

記錄會寫入系統記錄,非 root 使用者無法改寫;同時也寫入另一個獨立檔案。要抹除痕跡,就必須同時攻破兩者。

尊重 Proxmox 角色

Atlas 不會自創一套權限體系。誰能做什麼,取決於 Proxmox 的使用者與角色;軌跡因此對應到真實的身分。

記錄中沒有機密

密碼與權杖絕不會被寫入。軌跡記錄的是操作已經發生,而不是執行操作所用的認證資訊。

檢查結果主動送達

Watch 守護會在關鍵檢查結果出現的當下以電子郵件通知;軌跡不只在事故之後才被閱讀,在事故之前就會被看到。

常見問題

確切會記錄哪些內容?
關鍵且涉及權限的操作:破壞性的儲存與網路變更、處理程序訊號、服務層級的操作等。一般的讀取不會成為軌跡中的雜訊。
管理者能抹除自己的痕跡嗎?
軌跡存放於兩處:系統記錄,若不進行 root 層級的竄改便無法改寫;以及另一個獨立檔案。要悄悄修改歷史,不再是輕而易舉的事。
會儲存密碼或請求內容嗎?
不會。機密資訊絕不會寫入軌跡;記錄只包含執行者、操作、時間與結果。
記錄存放在哪裡?
就在主機上:系統記錄加上另一個獨立檔案。不會傳送任何資料到外部服務。
是否使用 Proxmox 帳號?
是的。Atlas 沿用 Proxmox 的使用者、群組與角色,而不是自創一套;稽核記錄因此對應到已在 Proxmox 中管理的相同身分。
記錄會拖慢主機嗎?
不會。只記錄關鍵操作,而不是每一次點擊;每個有風險的操作只會產生幾行記錄。

相關條目