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