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