Linux中國

Auditd – Linux 伺服器安全審計工具

什麼是auditd

auditd(或 auditd 守護進程)是Linux審計系統中用戶空間的一個組件,其負責將審計記錄寫入磁碟。

安裝 auditd

Ubuntu系統中,我們可以使用 wajig 工具或者 apt-get 工具 安裝auditd。

按照下面的說明安裝auditd,安裝完畢後將自動安裝以下auditd和相關的工具:

  • auditctl : 即時控制審計守護進程的行為的工具,比如如添加規則等等。
  • /etc/audit/audit.rules : 記錄審計規則的文件。
  • aureport : 查看和生成審計報告的工具。
  • ausearch : 查找審計事件的工具
  • auditspd : 轉發事件通知給其他應用程序,而不是寫入到審計日誌文件中。
  • autrace : 一個用於跟蹤進程的命令。
  • /etc/audit/auditd.conf : auditd工具的配置文件。

首次安裝 auditd 後, 審計規則是空的。

可以使用以下命令查看:

$ sudo auditctl -l

以下我們介紹如何給auditd添加審計規則。

如何使用auditd

Audit 文件和目錄訪問審計

我們使用審計工具的一個基本的需求是監控文件和目錄的更改。使用auditd工具,我們可通過如下命令來配置(注意,以下命令需要root許可權)。

文件審計

$ sudo auditctl -w /etc/passwd -p rwxa

選項 :

  • -w path : 指定要監控的路徑,上面的命令指定了監控的文件路徑 /etc/passwd
  • -p : 指定觸發審計的文件/目錄的訪問許可權
  • rwxa : 指定的觸發條件,r 讀取許可權,w 寫入許可權,x 執行許可權,a 屬性(attr)

目錄審計

使用類似的命令來對目錄進行審計,如下:

$ sudo auditctl -w /production/

以上命令將監控對 /production 目錄 的所有訪問。

現在,運行 auditctl -l 命令即可查看所有已配置的規則。

下面開始介紹審計日誌。

查看審計日誌

添加規則後,我們可以查看 auditd 的日誌。使用 ausearch 工具可以查看auditd日誌。

我們已經添加規則監控 /etc/passwd 文件。現在可以使用 ausearch 工具的以下命令來查看審計日誌了。

$ sudo ausearch -f /etc/passwd
  • -f 設定ausearch 調出 /etc/passwd文件的審計內容

下面是輸出 :

time->Mon Dec 22 09:39:16 2014

type=PATH msg=audit(1419215956.471:194): item=0 name="/etc/passwd" inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL

type=CWD msg=audit(1419215956.471:194): cwd="/home/pungki"

type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 syscall=5 success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 auid=4294967295 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295 comm="sudo" exe="/usr/bin/sudo" key=(null)

下面開始解讀輸出結果。

  • time : 審計時間。
  • name : 審計對象
  • cwd : 當前路徑
  • syscall : 相關的系統調用
  • auid : 審計用戶ID
  • uid 和 gid : 訪問文件的用戶ID和用戶組ID
  • comm : 用戶訪問文件的命令
  • exe : 上面命令的可執行文件路徑

以上審計日誌顯示文件未被改動。

以下我們將要添加一個用戶,看看auditd如何記錄文件 /etc/passwd的改動的。

time->Mon Dec 22 11:25:23 2014

type=PATH msg=audit(1419222323.628:510): item=1 name="/etc/passwd.lock" inode=143992 dev=08:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 nametype=DELETE

type=PATH msg=audit(1419222323.628:510): item=0 name="/etc/" inode=131073 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT

type=CWD msg=audit(1419222323.628:510): cwd="/root"

type=SYSCALL msg=audit(1419222323.628:510): arch=40000003 syscall=10 success=yes exit=0 a0=bfc0ceec a1=0 a2=bfc0ceec a3=897764c items=2 ppid=2978 pid=2994 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="chfn" exe="/usr/bin/chfn" key=(null)

我們可以看到,在指定的時間,/etc/passwd 被root用戶(uid =0, gid=0)在/root目錄下修改。/etc/passwd 文件是使用/usr/bin/chfn 訪問的。

鍵入 man chfn 可以查看有關chfn更多的信息。

下面我們看另外一個例子。

我們已經配置auditd去監控目錄 /production/ 了。這是個新目錄。所以我們用ausearch去查看日誌的時候會發現什麼都沒有。

下一步,使用root賬戶的ls命令列出 /production/ 下的文件信息。再次使用ausearch後,將會顯示一些信息。

time->Mon Dec 22 14:18:28 2014 type=PATH msg=audit(1419232708.344:527): item=0 name="/production/" inode=797104 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL type=CWD msg=audit(1419232708.344:527): cwd="/root" type=SYSCALL msg=audit(1419232708.344:527): arch=40000003 syscall=295 success=yes exit=3 a0=ffffff9c a1=95761e8 a2=98800 a3=0 items=1 ppid=3033 pid=3444 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="ls" exe="/bin/ls" key=(null)

和上一個一樣,可以得出root賬戶使用ls命令訪問了/production/目錄,ls命令的文件目錄是 /bin/ls

查看審計報告

一旦定義審計規則後,它會自動運行。過一段時間後,我們可以看看auditd是如何幫我們跟蹤審計的。

Auditd提供了另一個工具叫 aureport 。從名字上可以猜到, aureport 是使用系統審計日誌生成簡要報告的工具。

我們已經配置auditd去跟蹤/etc/passwd文件。auditd參數設置後一段時間後,audit.log 文件就創建出來了。

生成審計報告,我們可以使用aureport工具。不帶參數運行的話,可以生成審計活動的概述。

$ sudo aureport

如上,報告包含了大多數重要區域的信息。

上圖可以看出有 3 次授權失敗。 使用aureport,我們可以深入查看這些信息。

使用以下命令查看授權失敗的詳細信息:

$ sudo aureport -au

從上圖可以看出,由兩個用戶在特定的時間授權失敗。

如果我們想看所有賬戶修改相關的事件,可以使用-m參數。

$ sudo aureport -m

Auditd 配置文件

我們已經添加如下規則:

  • $ sudo auditctl -w /etc/passwd -p rwxa
  • $ sudo auditctl -w /production/

現在,如果確信這些規則可以正常工作,我們可以將其添加到/etc/audit/audit.rules中使得規則永久有效。以下介紹如何將他們添加到/etc/audit/audit.rules中去。

最後,別忘了重啟auditd守護程序

# /etc/init.d/auditd restart

# service auditd restart

總結

Auditd是Linux上的一個審計工具。你可以閱讀auidtd文檔獲取更多使用auditd和工具的細節。例如,輸入 man auditd 去看auditd的詳細說明,或者鍵入 man ausearch 去看有關 ausearch 工具的詳細說明。

請謹慎創建規則。太多規則會使得日誌文件急劇增大!

via: http://linoxide.com/how-tos/auditd-tool-security-auditing/

作者:Pungki Arianto 譯者:shipsw 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國