導航:首頁 > 程序命令 > linux命令審計

linux命令審計

發布時間:2023-05-06 08:02:31

『壹』 linux audit.rules怎麼審計所有操作

這里首先介紹auditctl的應用,判型閉具體使用指南查看man auditctl。auditctl的man 描述說明這個工具掘裂主要是租如用來控制audit系統行為,獲取audit系統狀態,添加或者刪除audit系統的規則。控制audit系統行為和獲取audit系統狀態參數:
-s 或者auditd 狀態 auditctl -s 顯示:AUDIT_STATUS: enabled=1 flag=1 pid=2792 rate_limit=0 backlog_limit=320 lost=0 backlog=0

『貳』 Linux下記錄所有用戶的操作命令,以方便後期審計

再後面追加:

保存退出後,執行 source /etc/profile 讓配置生效。昌此

所有操作命令記錄存放在/var/log/cmd/{用戶}/目錄下,即使是同一個終端幾個不同的窗口,在該窗口退出或關閉時,該用戶目錄下會生產一個文件,多個窗口會生耐激迅產多個文件,最後只要查看這些文件內容,就可以看出鉛判歷史操作了。

本文轉自: https://blog.51cto.com/369369/1732164

『叄』 Linux中與安全審計有關的函數

我的答案是最正確的 請採納我的內核審計系統的介面函數在Linux內核需要輸出審計信息時,它先調用函數audit_log_start創建緩沖區。接著,調用函數audit_log或audit_log_format寫緩沖區寫入審計信息,最後調用函數audit_log_end發送審計信息,並釋放緩沖區。這三個函數分別說明如下:1.函數audit_log_start 函數audit_log_start申請審計緩沖區,如果任務當前在系統調用中,系統調用被標識為可審計的,並在系統調用退出時,產生一條審計記錄。函數audit_log_start的參數ctx為審計上下文結構實例;參數gfp_mask為分配內存的類型,如:__GFP_WAIT表示可以等待和重調度;參數type為審計消息類型。如果緩存區申請成功,它返回審計緩沖區的指針,否則返回NULL表示錯誤。函數audit_log_start申請審計緩沖區,當審計緩沖區鏈表的緩沖區個數超過上限時,當前進程需要等待用戶空間的後台進程將審計消息寫入log文件,直到緩沖區個數小於上限值為止。函數audit_log_start在申請並初始化審計緩沖區後,給緩沖區加時間戳和審計記錄序列號。函數audit_log_start列出如下(在linux26/kernel/audit.c中)://聲明等待隊列頭,用於等待審計消息被後台進程寫入log文件static DECLARE_WAIT_QUEUE_HEAD(audit_backlog_wait);struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,int type){struct audit_buffer*ab= NULL;struct timespect;unsigned intserial;int reserve;unsigned long timeout_start = jiffies; //開始的時間if (!audit_initialized)//如果已初始化,就直接退出return NULL;if (unlikely(audit_filter_type(type)))return NULL;if (gfp_mask & __GFP_WAIT)reserve = 0;elsereserve = 5; /*允許調用者多出5個條目*/ //當鏈表中審計緩沖區數超出上限時,進程等待auditd處理鏈表中緩沖區while (audit_backlog_limit&& skb_queue_len(&audit_skb_queue) > audit_backlog_limit + reserve) {if (gfp_mask & __GFP_WAIT && audit_backlog_wait_time && time_before(jiffies, timeout_start + audit_backlog_wait_time)) {/* 等待後台進程auditd從隊列中處理部分緩沖區 */DECLARE_WAITQUEUE(wait, current);set_current_state(TASK_INTERRUPTIBLE); //設置當前進程的狀態為可中斷等待狀態add_wait_queue(&audit_backlog_wait, &wait); //將當前進程加入等待隊列if (audit_backlog_limit && skb_queue_len(&audit_skb_queue) > audit_backlog_limit)schele_timeout(timeout_start + audit_backlog_wait_time - jiffies);//調度__set_current_state(TASK_RUNNING);//設置當前進程為運行狀態remove_wait_queue(&audit_backlog_wait, &wait);continue;} //檢查每秒發送的記錄數不能超過上限,以防止受非法攻擊if (audit_rate_check())printk(KERN_WARNING "audit: audit_backlog=%d > " "audit_backlog_limit=%d\n", skb_queue_len(&audit_skb_queue), audit_backlog_limit);audit_log_lost("backlog limit exceeded");audit_backlog_wait_time = audit_backlog_wait_overflow;wake_up(&audit_backlog_wait);return NULL;}ab = audit_buffer_alloc(ctx, gfp_mask, type);//申請審計緩沖區if (!ab) {audit_log_lost("out of memory in audit_log_start");return NULL;}//得到當前時間存入t,計算審計記錄的序列號,存入serialaudit_get_stamp(ab->ctx, &t, &serial); //將時間戳和序列號寫入審計記錄audit_log_format(ab, "audit(%lu.%03lu:%u): ", t.tv_sec, t.tv_nsec/1000000, serial);return ab;}函數audit_buffer_alloc申請審計緩沖區,先嘗試從空閑鏈表上取下一個緩沖區,如果空閑鏈表中沒有,就分配一個緩沖區。然後,填充netlink消息頭。該函數列出如下: static DEFINE_SPINLOCK(audit_freelist_lock);//定義自旋鎖,用於鎖住鏈表audit_freeliststatic struct audit_buffer * audit_buffer_alloc(struct audit_context *ctx,gfp_t gfp_mask, int type){unsigned long flags;struct audit_buffer *ab = NULL;struct nlmsghdr *nlh; //從空閑鏈表中得到一個緩沖區spin_lock_irqsave(&audit_freelist_lock, flags);//加鎖if (!list_empty(&audit_freelist)) {ab = list_entry(audit_freelist.next,struct audit_buffer, list);list_del(&ab->list);--audit_freelist_count;}spin_unlock_irqrestore(&audit_freelist_lock, flags);//釋放鎖 //如果空閑鏈表中沒有空閑緩沖區成員,就分配一個緩沖區if (!ab) {ab = kmalloc(sizeof(*ab), gfp_mask);if (!ab)goto err;}ab->skb = alloc_skb(AUDIT_BUFSIZ, gfp_mask);//分配套接字緩沖區if (!ab->skb)goto err;ab->ctx = ctx;ab->gfp_mask = gfp_mask; //擴展套接字緩沖區skb的已使用數據區,將netlink消息頭數據nlmsghdr加到skbnlh = (struct nlmsghdr *)skb_put(ab->skb, NLMSG_SPACE(0));nlh->nlmsg_type = type;nlh->nlmsg_flags = 0;nlh->nlmsg_pid = 0;nlh->nlmsg_seq = 0;return ab;err:audit_buffer_free(ab);return NULL;}2.函數audit_log_format函數audit_log_format將一個審計消息按格式寫入審計緩沖區,參數ab為審計緩沖區,參數fmt為格式化的字元串。其列出如下:void audit_log_format(struct audit_buffer *ab, const char *fmt, ...){va_list args;if (!ab)return;va_start(args, fmt);audit_log_vformat(ab, fmt, args);va_end(args);}函數audit_log_vformat將一個審計消息按格式寫入套接字緩沖區中,如果審計緩沖區沒有足夠的空間,就擴展套接字緩沖區的數據域。由於printk緩沖區為1024,擴展的套接字緩沖區最小應為1024。函數audit_log_vformat列出如下: static void audit_log_vformat(struct audit_buffer *ab, const char *fmt, va_list args){int len, avail;struct sk_buff *skb;va_list args2;if (!ab)return;BUG_ON(!ab->skb);skb = ab->skb;avail = skb_tailroom(skb);//計算套接字緩沖區的空閑數據空間if (avail == 0) {//如果套接字緩沖區沒有空閑數據空間,擴展空間avail = audit_expand(ab, AUDIT_BUFSIZ);// AUDIT_BUFSIZ為1024,if (!avail)goto out;}va_(args2, args);len = vsnprintf(skb->tail, avail, fmt, args);//將信息寫入到緩沖區if (len >= avail) {//如果實際信息長度比可用的緩沖區大,擴展空間/* 由於printk緩沖區是1024,因此,擴展空間最少為1024 */avail = audit_expand(ab,max_t(unsigned, AUDIT_BUFSIZ, 1+len-avail));if (!avail)goto out;len = vsnprintf(skb->tail, avail, fmt, args2); //將審計信息寫入到緩沖區}if (len > 0)skb_put(skb, len); //將寫入信息的數據緩沖區附加到skb上out:return;}
函數audit_expand擴展在審計緩沖區中的套接字緩沖區,擴展成功,返回可用的空間大小,擴展失敗返回0,表示沒有空間。參數ab表示審計緩沖區的指針,參數extra表示加到套接字緩沖區skb尾部的緩沖區空間大小。函數audit_expand列出如下:static inline int audit_expand(struct audit_buffer *ab, int extra){struct sk_buff *skb = ab->skb;int ret = pskb_expand_head(skb, skb_headroom(skb), extra, ab->gfp_mask);if (ret < 0) {audit_log_lost("out of memory in audit_expand");return 0;}return skb_tailroom(skb);//返回可用的緩沖區空間大小}3.函數audit_log_end當進程完成了將審計記錄寫入審計緩沖區的操作時,它調用函數audit_log_end將套接字緩沖區中的審計記錄數據發送給用戶空間後台進程,由後台進程寫入到log文件。如果審計後台進程存在,使用netlink機制傳輸數據,由審計後台將套接字緩沖區中的審計記錄數據寫入審計文件audit.log中;如果審計後台不存在,使用函數printk記錄數據,然後由日誌後台進程將數據寫入到日誌文件中。當數據發送完成後,函數audit_log_end喚醒等待隊列kauditd_wait。有些進程因為審計套接字緩沖區鏈表上的緩沖區數量超過上限而在隊列kauditd_wait等待,當其他進程發送了數據時,應喚醒這些等待進程。函數audit_log_end列出如下:void audit_log_end(struct audit_buffer *ab){if (!ab)return;if (!audit_rate_check()) {//檢查審計系統的傳輸速度,如果netlink機制傳輸速度超過上限,則返回錯誤audit_log_lost("rate limit exceeded");} else {if (audit_pid) {//如果審計後台的進程ID存在,使用netlink機制傳輸數據struct nlmsghdr *nlh = (struct nlmsghdr *)ab->skb->data;nlh->nlmsg_len = ab->skb->len - NLMSG_SPACE(0);skb_queue_tail(&audit_skb_queue, ab->skb);ab->skb = NULL;wake_up_interruptible(&kauditd_wait);//發送了數據,喚醒等待隊列} else {//使用printk記錄數據printk(KERN_NOTICE "%s\n", ab->skb->data + NLMSG_SPACE(0));}}audit_buffer_free(ab);}

『肆』 ELK linux主機操作命令審計

PROMPT_COMMAND環境變數的作用是,在每一次執行命令之前都會執行此環境變數。

審計的原理是:

『伍』 linux伺服器安全審計怎麼弄

材料:

Linux審計系統auditd 套件

步驟:

  1. 安裝 auditd

    REL/centos默認已經安裝了此套件,如果你使用ubuntu server,則要手工安裝它:

    sudo apt-get install auditd

    它包括以下內容:

    auditctl :即時控制審計守護進程的行為的工具,比如如添加規則等等。

    /etc/audit/audit.rules :記錄審計規則的文件。

    aureport :查看和生成審計報告的工具。

    ausearch :查找審計事件的工具

    auditspd :轉發事件通知給其他應用程序,而不是寫入到審計日誌文件中。

    autrace :一個用於跟蹤進程的命令。

    /etc/audit/auditd.conf :auditd工具的配置文件。

  2. Audit 文件和目錄訪問審計

    首次安裝auditd後, 審計規則是空的。可以用sudo auditctl -l 查看規則。文件審計用於保護敏感的文件,如保存系統用戶名密碼的passwd文件,文件訪問審計方法:

    sudo auditctl -w /etc/passwd -p rwxa

-w path :指定要監控的路徑,上面的命令指定了監控的文件路徑 /etc/passwd

-p :指定觸發審計的文件/目錄的訪問許可權

rwxa :指定的觸發條件,r 讀取許可權,w 寫入許可權,x 執行許可權,a 屬性(attr)

目錄進行審計和文件審計相似,方法如下:

$ sudo auditctl -w /proction/

以上命令對/proction目錄進行保護。

3.查看審計日誌

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

sudo ausearch -f /etc/passwd

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


4. 查看審計報告

以上命令返回log如下:

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

type=PATH msg=audit(1419215956.471:194): item=0name="/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/somebody"

type=SYSCALL msg=audit(1419215956.471:194): arch=40000003syscall=5

success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231auid=4294967295 uid=1000 gid=1000euid=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 :上面命令的可執行文件路徑

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

『陸』 linux操作系統怎麼開啟日誌審計功能

對於Linux操作審計,當前主要有兩種形式。
一種是,通過收取linux操作系統上的日誌,來進行審計。優點是全面,內容是零散,缺乏直觀性,一般需要專業的軟體來收集和呈現,同時由於容易被刪除,可能導致關鍵審計信息缺失問題,以及由於共享賬號問題,導致無法定位到人。
另一種是,通過碉堡堡壘機軟體來實現審計。優點是全面直觀,可以關聯到人,確定是只能對遠程運維操作進行審計,無法對直接登錄操作進行審計。

『柒』 Linux系統上記錄MYSQL操作的審計日誌

    根據筆者上一篇文章—Linux系統上記錄用戶操作的審計日誌 。本文來利用相同的方法記錄MYSQL操作的審計日誌。

    使用用mysql工具連接MySQL server的所有操作會默認記錄到~/.mysql_history文件中,這個文件會把所有操作記錄下來,包括創建用戶和修改用戶的明文密碼,這在生產系統上是不安全的。如果不想保存,僅僅刪除是不行的(文件不存在會再建立),要直接將其軟連接到垃圾箱。

     ln  -s  /dev/null  ~/.mysql_history

    利用上一篇文章相同的方法記錄MYSQL操作的審計日誌,是因為mysql工具本身就是有一個shell, 每次mysql連接退出後,都會把此次操作的信息記錄到~/.mysql_history文件中。那麼可以重新定義MYSQL_HISTFILE環境變數來保存mysql日誌。

    先看置於/etc/profile.d目錄下的環境變數的腳本mysql_history.sh,和loginlog類似。

      在測試時,發現平時使用的普通用戶在操作mysql後無法記錄,而root用戶(平時沒有操作過mysql)可以記錄成功。後來在在~/.mysql_history文件找到了操作記錄,估計是這個文件還存在的原因,刪除後才記錄到新的MYSQL_HISTFILE定義的路徑。

      和loginlog一樣,需要定期刪除過期日誌,以下腳本置於/etc/cron.weekly 目錄下。

        delete_time=15

        find /opt/mysqllog/  -mtime +$delete_time -name '*.log' -exec rm -r {} \;

      但是相比於loginlog,mysqllog有兩點暫時沒有解決。

    1、定義最大的記錄條數history.maxSize不知在哪定義,my.cnf?

    2、每一條命令的時間記錄添加。

『捌』 利用Linux系統Shell命令編寫腳本實現對用戶行為的監控和審計功能. 求大神怎麼寫啊

.bash_history記錄了你的一切,呵呵呵。
首先,執行下面命令給.bash_history文件加上只能追加的形式進行記錄
chattr +a /home/peter/.bash_history
lsattr /home/peter/.bash_history
然後,執行下面指令,改埋修改bash以追加的方式忘給.bash_history文件中寫入內容
shopt -s histappend
最後,調用下面指令使操作畢橡命令實時寫入到核數螞.bash_history 文件中
PROMPT_COMMAND =" history -a;$PROMPT_COMMAND "
當然還要活用這幾個命令:ac, who, last, lastlog, w, sa, lastcomm等。

『玖』 如何配置linux審計功能部署

java不談灶用做任何改動就可以部署到linux系統,java編譯成孫指*.class文件只需要虛擬機的支持,你只要在linux環境下裝一個jdk就OK了,然後配置一下環境變數。 然後java的class文件或者打包則侍配好的*.jar文件考到linux目錄下就可以用了.

『拾』 Linux自帶的審計功能

Linux自帶的script命令,可以記錄終端的輸出,用來完成簡單的審計功能或肆

這樣用戶登陸後執行的操作都會記錄到/mnt/log/script/*.log(目錄自己根據伺服器目錄定義)里,這里把用戶ID 大於1000的都記錄消團羨拿拍下操作。

閱讀全文

與linux命令審計相關的資料

熱點內容
守望執行命令 瀏覽:367
加密狗插上去了怎麼辦 瀏覽:622
錘子m1怎麼把文件夾重置 瀏覽:213
APP的數據會存在哪裡 瀏覽:64
一支輕快又解壓的舞 瀏覽:586
80x86編程手冊 瀏覽:765
android機制使用 瀏覽:361
國外太空探索網站源碼 瀏覽:643
dotaimba命令大全 瀏覽:13
手解剖pdf 瀏覽:733
單片機無法燒寫程序 瀏覽:413
pline命令 瀏覽:111
760貼片機編程視頻 瀏覽:333
歐姆龍plc編程第36講 瀏覽:915
我的世界如何將一個伺服器弄崩 瀏覽:8
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465