跳到主內容
版本:2.1

設定使用者操作(操作)記錄

本指南詳細說明如何為所有透過 Bash 殼層存取管理節點的使用者啟用即時指令記錄功能。 此為關鍵的安全與合規步驟,可確保使用者執行的每項指令皆集中記錄於系統日誌中,防止使用者清除其操作軌跡。

🎯 先決條件

  • 管理節點的系統管理員(root)存取權限。
  • bash 殼層與 rsyslog 服務必須已安裝並正在執行(多數 Linux 發行版皆為標準設定)。

設定即時使用者歷史記錄記錄

  1. 請以 root 使用者身分登入您的叢集管理殼層。

  2. 建立 Bash 啟動檔案以定義記錄行為。 /etc/profile.d/ 目錄中的檔案會在每位使用者登入時自動被載入(執行)。

  3. 使用 vi /etc/profile.d/bash_history_logging.sh 建立並編輯檔案。

  4. 輸入 i 並貼上以下內容,以確保每次會話結束後都會記錄使用者歷史。

    export PROMPT_COMMAND='history -a >(logger -t "bash_history[$USER]")'
  5. 請確認貼上的內容與上述相同。 按下 ESC(逃脫)鍵,並輸入 :wq 以儲存並退出檔案。

設定系統日誌處理 (rsyslog)

  1. 請以 root 使用者身分登入您的叢集管理殼層。

  2. 建立 rsyslog 設定檔

  3. 在 /etc/rsyslog.d/ 目錄中建立一個新的設定檔。 此處的檔案定義自訂記錄規則。

    vi /etc/rsyslog.d/bash_history.conf
  4. 輸入 i 來插入內容,以添加過濾規則。 將以下規則插入檔案中。 此規則針對所有標記為「bash_history」的日誌訊息,並將其寫入特定日誌檔案。

    :syslogtag, startswith, "bash_history" /var/log/messages
  5. 按下 ESC(逃逸)鍵並輸入 :wq 即可儲存內容並退出檔案。

  6. 重新啟動 rsyslog 服務 透過重新啟動服務來套用新的記錄設定:

    systemctl restart rsyslog

驗證使用者操作記錄

  1. 執行測試操作 以非 root 使用者身分登入(例如:userA)。 來自 /etc/profile.d/ 的新設定將生效。

    # Example test commands for userA
    date
    ls -l /tmp
    echo "Test complete"
  2. 檢視稽核記錄 以 root 身分重新登入,並確認已執行的指令、使用者名稱及 PID 皆已記錄於新的稽核檔案中。