Centos

獲得審核以記錄原始使用者

  • February 6, 2013

這個問題與我之前的問題有關:Log all commands run by admins on production servers

管理員通過個人使用者名登錄伺服器,然後執行sudo -i成為 root 是公司的政策。執行後sudo -i,sudo 將創建一個名為 的環境變數SUDO_USER,其中包含原始使用者的使用者名。

是否可以auditd在每個命令的日誌中包含此變數?或功能等價物。

這是目前的規則集auditd

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Log any command run on this system
#-a exit,always -F arch=b64 -S execve
-a exit,always -F arch=b32 -S execve

如此處所述:

使用

session required pam_loginuid.so

在所有與登錄相關的 PAM 配置文件(不是 su 和 sudo 的配置文件)中,將允許auditd在欄位中記錄呼叫使用者的 uid auid

您可以使用 搜尋auditd此 id 的日誌

ausearch -ua <uid>

產生使用者發出的所有命令,即使在模擬另一個帳戶時也是如此。

高興地,您請求的資訊已經包含在日誌中。您要查找的特定欄位是aud。從手冊頁auditctl

     auid          The original ID the user logged in with. Its an abbreviation 
                   of audit uid. Sometimes its referred to as loginuid. Either 
                   the user account text or number may be used.

例如,這是我使用以下方法生成的很多條目:

  1. 添加規則:-a always,exit -S sethostname -S setdomainname -k system-locale
  2. 使用我的使用者帳戶登錄系統並通過發出啟動 root shellsu -
  3. 執行命令:hostname audit-test.home.private

type=SYSCALL msg=audit(1358306046.744:260):arch=c000003e syscall=170 成功=yes 退出=0 a0=2025010 a1=17 a2=7 a3=18 項=0 ppid=23922 pid=26742 auid=1000 uid= 0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=16 comm=“hostname” exe="/usr/bin/hostname" subj=unconfined_u:unconfined_r:unconfined_t :s0-s0:c0.c1023 key=“系統語言環境”

所以,雖然是的,但日誌消息非常冗長,我們可以auid=1000在日誌消息中清楚地看到,它對應於我的使用者帳戶的 uid。

有關上述範例的更多詳細資訊以及 auditd 的簡要說明,請查看來自IT Security的社區部落客(我)的這篇博文,其標題為 Auditd 簡介

fuero 提到的ausearch命令是一組應用程序的一部分,該應用程序用於針對這些相當詳盡的日誌搜尋和執行報告。

引用自:https://serverfault.com/questions/473601