用Audit守護程序配置和審計Linux系統

2021-09-22 23:04:45 字數 1943 閱讀 6141

debian安裝audit

debian/ubuntu使用命令:apt-get install auditd audispd-plugins

檢視執行:

root@debian:~# service auditd status

● auditd.service - security auditing service

loaded: loaded (/lib/systemd/system/auditd.service; enabled; vendo

active: active (running) since sat 2019-05-18 20:56:49 cst; 10min

docs: man:auditd(8)

main pid: 4640 (auditd)

tasks: 2 (limit: 4915)

cgroup: /system.slice/auditd.service

└─4640 /sbin/auditd -n

配置

2個檔案管理審計守護程序的配置,乙個用於守護程序本身(auditd.conf),另乙個是用於auditctl工具的規則(audit.rules)。

auditd.conf

檔案auditd.conf對linux audit守護程序的配置聚焦在它應該在**以及如何記錄事件。它也定義了如何應對磁碟滿的情況、如何處理日誌輪轉和要保留的日誌檔案數量。通常,對大多數系統來說,預設配置是足夠的。

audit.rules

為了配置應該審計什麼日誌,審計框架使用了乙個名為audit.rules的檔案。

和大多數情況一樣,從零開始而不載入任何規則。通過用-l引數來執行auditctl,我們可以確定使用中的規則。

[root@host ~]# auditctl -l

no rules

新增乙個規則:

現在是時候來監控點東西了,比如/etc/passwd檔案。通過定義要檢視的路徑和許可權,我們在這個檔案上放乙個觀察點:

root@debian:~# auditctl -l

-w /etc/passwd -p wa

通過定義path選項,我們告訴審計框架來監視什麼目錄或者檔案。許可權決定了什麼型別的訪問將觸發乙個事件。雖然這裡的許可權看起來類似檔案的許可權,但是要注意,在這2者之間有乙個重大的區別。這裡的4個選項是:

r = 讀取

w = 寫入

x = 執行

a = 屬性改變

開始檢視審計的記錄

root@debian:~# ausearch -f /etc/passwd

----

time->sat may 18 20:58:45 2019

type=config_change msg=audit(1558184325.853:8): auid=0 ses=45 op="updated_rules" path="/etc/passwd" key=(null) list=4 res=1

----

time->sat may 18 20:58:45 2019

type=proctitle msg=audit(1558184325.853:9): proctitle=76696d002f6574632f706173737764

type=path msg=audit(1558184325.853:9): item=3 name="/etc/passwd~" inode=

這個輸出裡面的一些重點是:

事件的時間(time)和物件的名稱(name),當前的工作路徑(cwd),相關的系統呼叫(syscall),審計使用者id(auid)和在這個檔案上執行行為的二進位制(exe)。請注意,auid定義了在登入過程中的原始使用者。其他的使用者id欄位可能指向了乙個不同的使用者,取決於在觸發乙個事件時在使用的實際使用者。

參考

守護執行緒和守護程序

守護程序隨著主程序的 的執行結束而結束 守護執行緒會在主線程結束之後等待其他子執行緒的結束才結束 如有其他子執行緒,沒有其他子執行緒就是主線程結束守護執行緒隨之結束 主程序在執行玩完自己的 後不會立即結束,而是等待子程序結束之後,子程序的資源 import time from threading i...

用shell寫守護程序

設想 用乙個shell檢視乙個後台執行的php程式是否非正常退出 如果退出,利用守護程序自動restart.類似mysql的safe mysqld 共3個程式 shstart.sh 負責啟動 sh.sh 守護程序主程式 shstop.sh 安全退出守護程序和php程式主體 shstart.sh us...

用管道寫守護程序

用管道寫守護程序,我寫了兩個函式,乙個讀函式,乙個寫函式,讀函式裡判斷寫的函式是否向管道裡寫了東西,如果寫了,直接讀取顯示,如果沒寫,就會讓其再次執行,然後顯示,我寫的比較簡單,主要是方便理解,實際應用的程式絕對不會像我這樣。下面是我的write函式 include include include ...