- 論壇徽章:
- 0
|
有新的任務(wù)了———-在AIX系統(tǒng)下做探頭測(cè)試,涉及到audit。有些地方不是很明白,google一下,見此篇講的不錯(cuò),遂轉(zhuǎn)載而學(xué)習(xí)之~~
AUDIT審計(jì)子系統(tǒng)簡介
供稿者:劉 海 峰
本文簡要介紹了audit系統(tǒng)的功能和概念,以及相關(guān)的命令
一、AUDIT系統(tǒng)的概念:
audit子系統(tǒng)提供了一種紀(jì)錄系統(tǒng)安全方面信息的方法,同時(shí)可以為系統(tǒng)管理員在用戶違反系統(tǒng)安全法則或存在違反的潛在可能時(shí),提供及時(shí)的警告信息,這些audit子系統(tǒng)所搜集的信息包括:可被審計(jì)的事件名稱,事件狀態(tài)(成功或失。瑒e的安全相關(guān)的信息。
AIX定義了一些可被審計(jì)的事件,可以在/etc/security/audit/events中找到,通常,這些事件都是定義在系統(tǒng)調(diào)用級(jí)別的。那么,一條命令可以產(chǎn)生多個(gè)事件,例如,如果用戶通過cat或more命令來顯示文件,可以在審計(jì)報(bào)告中發(fā)現(xiàn)下列事件:
FILE_Open(打開文件)
FILE_Read(讀文件)
FILE_Write(寫文件)
PROC_Create(產(chǎn)生進(jìn)程cat或more)
PROC_Execute(執(zhí)行命令)
PROC_Delete(進(jìn)程執(zhí)行完畢)
如果不加選擇審計(jì)所有的事件會(huì)產(chǎn)生非常大量的數(shù)據(jù),通過修改audit配置文件/etc/security/audit/config文件,可以選擇需紀(jì)錄的事件。
審計(jì)事件可以組成類,多個(gè)功能類似或相近的審計(jì)事件可以為它們定義一個(gè)類,類的定義也在/etc/security/audit/config中有,類的名字可以任意指定,類和用戶UID是關(guān)聯(lián)在一起的,需要對(duì)某用戶定義其需要被事件的類。
審計(jì)對(duì)象是那些單個(gè)可以被審計(jì)的文件,能夠?qū)徲?jì)的操作包括讀、寫和執(zhí)行,審計(jì)對(duì)象和用戶的UID不關(guān)聯(lián),只要這些文件被操作,不管是來自哪個(gè)用戶,都可以產(chǎn)生審計(jì)紀(jì)錄。審計(jì)對(duì)象在/etc/security/audit/objects中定義,如下:
/etc/security/environ:
w = "S_ENVIRON_WRITE"
/etc/security/group:
w = "S_GROUP_WRITE"
/etc/security/limits:
w = "S_LIMITS_WRITE"
/etc/security/login.cfg:
w = "S_LOGIN_WRITE"
/etc/security/passwd:
r = "S_PASSWD_READ"
w = "S_PASSWD_WRITE"
/etc/security/user:
w = "S_USER_WRITE"
/etc/security/audit/config:
w = "AUD_CONFIG_WR"
其中第一行為審計(jì)對(duì)象的文件名,第二行為輸出的格式,該格式在/etc/security/audit/events中定義如下:
/etc/security/environ
S_ENVIRON_WRITE = printf "%s"
/etc/group
S_GROUP_WRITE = printf "%s"
/etc/security/limits
S_LIMITS_WRITE = printf "%s"
用戶可以自己在該文件中定義審計(jì)對(duì)象。
審計(jì)可以以兩種模式運(yùn)行:BIN和STREAM,BIN模式指的是audit將結(jié)果寫入臨時(shí)文件bins,然后在寫入到一個(gè)單一的文件中去。STREAM
模式指的是審計(jì)子系統(tǒng)通過偽設(shè)備文件/dev/audit將數(shù)據(jù)寫入一個(gè)固定大小的文件,當(dāng)寫入數(shù)據(jù)超出時(shí),最早寫入的數(shù)據(jù)將被覆蓋。
審計(jì)子系統(tǒng)可以以其中一種模式或兩種模式啟動(dòng)。我們可以編輯審計(jì)子系統(tǒng)的配置文件/etc/security/audit/config來更改所用模式,如下:
start:
binmode = on
streammode = off
bin:
trail = /audit/trail
bin1 = /audit/bin1
bin2 = /audit/bin2
binsize = 10240
cmds = /etc/security/audit/bincmds
stream:
cmds = /etc/security/audit/streamcmds
可見,該系統(tǒng)使用的是bin模式,它使用了兩個(gè)臨時(shí)bins文件,bin1和bin2,它們的大小都是10240字節(jié),當(dāng)其中一個(gè)文件滿了之后,子系統(tǒng)將
打開另一個(gè)文件,并把前一個(gè)文件的紀(jì)錄都轉(zhuǎn)移到trail文件中,子系統(tǒng)停止時(shí),這些bins中的內(nèi)容將都被加入到trail文件中去,這些紀(jì)錄的文件采
用了二進(jìn)制方式,可用命令auditpr查看。
在stream模式中,系統(tǒng)將通過調(diào)用/etc/security/audit/streamcmds命令來處理紀(jì)錄,這條命令將把輸出變成可讀的格式寫
入文件/audit/stream.out中,audit系統(tǒng)重新啟動(dòng)時(shí),它將被清空。所以,可以定時(shí)讀它或?qū)⑺膬?nèi)容打印出來。
二、AUDIT審計(jì)子系統(tǒng)的命令:
下面介紹一下審計(jì)子系統(tǒng)的控制命令:
啟動(dòng)和停止審計(jì)子系統(tǒng)
/usr/sbin/audit是控制審計(jì)子系統(tǒng)的基本命令,它有下列五條子命令:
- audit start 激活審計(jì)子系統(tǒng)
這是啟動(dòng)審計(jì)子系統(tǒng)的唯一正確方法 - audit shutdown 停止審計(jì)子系統(tǒng)
它將處理BIN模式下的bins臨時(shí)文件,并刪除/audit/auditb文件,這個(gè)文件是一個(gè)審計(jì)子系統(tǒng)是否活著的標(biāo)識(shí) - audit off 暫時(shí)掛起審計(jì)子系統(tǒng)
- audit on 掛起后重新激活審計(jì)子系統(tǒng)
- audit query 顯示子系統(tǒng)狀態(tài)
如果不按順序使用這些命令,審計(jì)子系統(tǒng)會(huì)被弄亂,如果出現(xiàn)這種狀態(tài),將/audit下的文件都刪除(除去紀(jì)錄文件train.stream.out, bin1, bin2等)
如希望在系統(tǒng)啟動(dòng)時(shí)啟動(dòng)審計(jì)子系統(tǒng),可在/etc/rc中,在dspmsg rc.cat 5 'Multi-user initialization completed\n'行之前加入下行: /usr/sbin/audit start
如果審計(jì)子系統(tǒng)一直運(yùn)行,那要確保系統(tǒng)關(guān)閉時(shí)它被正確地停止了,在/usr/sbin/shutdown中加入一行: /usr/sbin/audit/shutdown
配置審計(jì)子系統(tǒng)
審計(jì)子系統(tǒng)的配載文件為/etc/security/audit/config,它包含以下幾段:
start: 按BIN或STREAM模式啟動(dòng)
bin and stream: BIN和STREAM的配置,在前簡介文章中有介紹
classes: 定義的類。
預(yù)定義的類有:general, objects, SRC, kernel, files, SVIPC, mail, cron和TCPIP。例如general類的定義如下:
general = USER_SU,PASSWORD_Change,FILE_Unlink,FILE_Link, FILE_Rename,FS_Chdir,FS,PORT_Locked,PORT_Change,FS_Mkdir,FS_Rmdir
說明上述在/etc/security/audit/events中定義的事件被歸類為general,用戶可以自己編輯配置文件來修改類的定義,但所用事件需在/etc/security/audit/events中存在,類的定義要和用戶聯(lián)系在一起。
users: 該段中定義了使用類的用戶。
用戶必須是可登錄用戶或default用戶,如下例:
users: root=general, joe=general,files,TCPIP default=general
當(dāng)審計(jì)子系統(tǒng)啟動(dòng)后,系統(tǒng)將會(huì)對(duì)root用戶發(fā)生的general事件做紀(jì)錄,對(duì)joe用戶發(fā)生的general,files,TCPIP事件做紀(jì)錄,對(duì)
別的用戶,做general事件紀(jì)錄。對(duì)審計(jì)對(duì)象而言,審計(jì)子系統(tǒng)啟動(dòng)是,會(huì)去監(jiān)測(cè)/etc/security/audit/objects文件,對(duì)其中
的有效文件開始做審計(jì),無論哪個(gè)用戶,包括root用戶對(duì)它們的訪問都會(huì)被紀(jì)錄。
為一個(gè)用戶更改審計(jì)類可以通過smit菜單執(zhí)行
smit chuser * User NAME root
AUDIT classes []
選中相應(yīng)類即可,或者直接編輯/etc/security/audit/config文件。
BIN文件可以通過下面命令來讀取: #auditpr -v /audit/trail | more
結(jié)果如下:
BIN文件的輸出表
eventloginstatustimecommand
FILE_RenamerootOK日 6月 29 12:02:07 2003xntpd
frompath: /etc/ntp.drift.TEMP topath: /etc/ntp.drift
FS_ChdirrootOK日 6月 29 12:02:19 2003ksh
change current directory to: /
FS_ChdirrootOK日 6月 29 12:05:20 2003ksh
change current directory to: /
STREAM文件的輸出可以直接讀取如下: #more /audit/stream.out
STREAM文件的輸出表
eventloginstatustimecommand
FS_ChdirrootOK日 6月 29 12:05:19 2003ksh
FS_ChdirrootOK日 6月 29 12:05:20 2003ksh
FILE_UnlinkrootOK日 6月 29 12:05:29 2003ksh
審計(jì)結(jié)果比較多的時(shí)候,可以通過下面的方法來過濾:
/usr/sbin/auditselect -f /audit/pick /audit/trail | /usr/sbin/auditpr -v
/audit/pick文件是手工編輯的,內(nèi)容如下:
command == rlogin && \
time 〉= 08:00:00 && time 〈 = 17:00:00 && \
data 〉= 04/01/96 && date 〈 = 04/12/96
這個(gè)過濾器將只顯示rlogin命令在指定的時(shí)間段和日期內(nèi)的執(zhí)行情況,指定的時(shí)間為每天的8AM到5PM,日期為96年四月一日至96年四月12日。
AUDIT系統(tǒng)一些常見錯(cuò)誤如下: 運(yùn)行audit start時(shí)報(bào)錯(cuò):
** failed setting kernel audit objects
這通常是由于/etc/security/audit/objects中的語法錯(cuò)誤引起的。 錯(cuò)誤信息:
auditbin: ** failed backend command
/etc/auditcat -p -o /audit/trail -r /audit/bin1
這個(gè)錯(cuò)誤可通過給BIN文件改名或刪除來修正,有時(shí)停止并重啟子系統(tǒng)也可以修正錯(cuò)誤。 錯(cuò)誤信息:
Unable to find the user stanza in
/etc/security/audit/config
如果對(duì)user段做了修改,請(qǐng)檢查/etc/security/audit/config中的用戶段,如為發(fā)現(xiàn)問題,仔細(xì)檢查classes段,確保每個(gè)
classes是在一個(gè)連續(xù)行中定義的。 |
|