設定使用者操作(操作)記錄
本指南詳細說明如何為所有透過 Bash 殼層存取管理節點的使用者啟用即時指令記錄功能。 此為關鍵的安全與合規步驟,可確保使用者執行的每項指令皆集中記錄於系統日誌中,防止使用者清除其操作軌跡。
🎯 先決條件
- 管理節點的系統管理員(root)存取權限。
bash殼層與rsyslog服務必須已安裝並正在執行(多數 Linux 發行版皆為標準設定)。
設定即時使用者歷史記錄記錄
-
請以
root使用者身分登入您的叢集管理殼層。 -
建立 Bash 啟動檔案以定義記錄行為。
/etc/profile.d/目錄中的檔案會在每位使用者登入時自動被載入(執行)。 -
使用
vi /etc/profile.d/bash_history_logging.sh建立並編輯檔案。 -
輸入
i並貼上以下內容,以確保每次會話結束後都會記錄使用者歷史。export PROMPT_COMMAND='history -a >(logger -t "bash_history[$USER]")' -
請確認貼上的內容與上述相同。 按下
ESC(逃脫)鍵,並輸入:wq以儲存並退出檔案。
設定系統日誌處理 (rsyslog)
-
請以
root使用者身分登入您的叢集管理殼層。 -
建立 rsyslog 設定檔
-
在 /etc/rsyslog.d/ 目錄中建立一個新的設定檔。 此處的檔案定義自訂記錄規則。
vi /etc/rsyslog.d/bash_history.conf -
輸入
i來插入內容,以添加過濾規則。 將以下規則插入檔案中。 此規則針對所有標記為「bash_history」的日誌訊息,並將其寫入特定日誌檔案。:syslogtag, startswith, "bash_history" /var/log/messages -
按下
ESC(逃逸)鍵並輸入:wq即可儲存內容並退出檔案。 -
重新啟動 rsyslog 服務 透過重新啟動服務來套用新的記錄設定:
systemctl restart rsyslog
驗證使用者操作記錄
-
執行測試操作 以非 root 使用者身分登入(例如:userA)。 來自 /etc/profile.d/ 的新設定將生效。
# Example test commands for userAdatels -l /tmpecho "Test complete" -
檢視稽核記錄 以 root 身分重新登入,並確認已執行的指令、使用者名稱及 PID 皆已記錄於新的稽核檔案中。