如何使用auditd來監控Linux數據中心服務器上的事件?
譯文【51CTO.com快譯】借助auditd,你可以更輕松地監控Linux服務器上的事件。
Linux Auditing System是便于系統管理員為數據中心服務器上的幾乎每個操作創建日志規則的一種好方法。使用該系統意味著可以通過日志文件,跟蹤事件、記錄事件,甚至檢測濫用或未經授權的活動。審查守護程序(auditd)讓你可以選擇監控服務器上的哪些操作(而不是監控所有操作),不會干擾標準的日志工具(比如syslog)。
auditd方面要注意的一個地方是,它實際上沒有為系統添加任何額外的安全性。相反,它為你提供了跟蹤服務器上出現的任何違規的方法,以便可以針對濫用行為采取操作。
有了該工具,管理員可以通過命令行創建規則,監控眾多系統和服務。auditd在內核層面運行,因此你可以訪問所需的任何服務。auditd系統適用于大多數Linux發行版,但我將在Ubuntu Server 18.04上演示其用法。
你需要什么?
你只需要Linux服務器(或桌面版,如果你愿意)以及擁有sudo權限的用戶帳戶。這些準備到位后,不妨看看auditd是如何工作的。
安裝
auditd很可能已經安裝在了你的計算機上。要是未安裝,可以使用該命令安裝它:
- sudo apt-get install auditd -y
安裝完畢后,確保使用以下命令來啟動并啟用系統:
- sudo systemctl start auditd
- sudo systemctl enable auditd
配置auditd
auditd的配置在單個文件中處理(而規則在一個完全獨立的文件中處理)。雖然默認值足以滿足大部分要求,但你可以通過執行該命令來配置系統:
- sudo nano /etc/audit/audit.conf
在該文件中,你可能需要配置以下條目:
- 日志文件的位置在log_file = /var/log/audit/audit.log這一行中配置。
- 要在服務器上保留的日志數量在num_logs = 5這個條目中配置。
- 在max_log_file = 8這一行配置***日志文件大小(以MB為單位)。
如果你對該配置進行了任何更改,需要使用該命令重啟auditd:
- sudo systemctl restart auditd
創建規則
要做的***件事是確保你從干凈的狀態開始入手。執行命令:
- sudo auditctl -l
上述命令應顯示沒有規則(圖A)。
圖A:我們為auditd確保干凈的狀態
不妨創建一個規則,監控/etc/passwd和/etc/shadow是否有任何變化。我們想要創建規則,以便監控某個特定路徑,并觀察該文件的寫入權限屬性有無更改。換句話說,如果惡意用戶更改了passwd文件和shadow文件的寫入權限,將被記入日志。為此,我們將執行命令:
- sudo nano /etc/audit/rules.d/audit.rules
在該文件的底部,添加以下兩行:
- -w /etc/shadow -p wa -k shadow
- -w /etc/passwd -p wa -k passwd
對上述行分解如下:
- -w是要關注的路徑。
- -p是要監控的權限。
- -k是規則的鍵名。
至于權限,它有點類似標準Linux,增加了一項:
- r -讀取
- w-寫入
- x-執行
- a-文件屬性(所有權或權限)的變化
在本例中,我們想查看文件的寫入權限(w),看看屬性(a)有無任何變化,因此我們的權限將是wa。
一旦我們添加了兩個新規則,保存并關閉文件,然后使用該命令重啟auditd:
sudo systemctl restart auditd
你現在應該能夠通過執行該命令來查看列出的新規則(圖B):
- sudo auditctl -l
圖B:我們的新規則已到位
查看auditd日志文件
可以通過執行該命令來查看auditd日志文件中的每個條目:
- less /var/log/audit/audit.log
你很快會發現文件塞滿了諸多條目。幸好有更簡單的方法。因為我們在規則中包含了鍵名,我們可以使用內置的auditd搜索工具僅查看包含passwd或shadow鍵名的條目。想查看包含passwd鍵名的任何條目,執行該命令:
- ausearch -k passwd
你應該會看到列出的任何條目,包含指定的鍵名(圖C)。
圖C:passwd鍵名目前為止顯示了兩個條目
假設你添加一個新用戶(使用sudo adduser命令)。因為你需要為該用戶創建密碼條目(寫入到/etc/passwd),它將出現在我們的ausearch -k passwd搜索命令中(圖D)。
圖D:為新用戶創建了一個新密碼,并使用auditd記入日志
ausearch工具功能很強大。想了解有關其用法的更多信息,務必通過man ausearch命令閱讀參考手冊頁。
這就是在數據中心Linux服務器上使用auditd的要點。現在你有方法監控需要觀察的任何系統或服務了。
原文標題:How to monitor events on your Linux data center servers with auditd,作者:Jack Wallen
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】