Linux日誌安全分析技巧

2021-10-01 21:47:06 字數 4329 閱讀 3720

我正在整理乙個專案,收集和彙總了一些應急響應案例(不斷更新中)。

linux系統擁有非常靈活和強大的日誌功能,可以儲存幾乎所有的操作記錄,並可以從中檢索出我們需要的資訊。本文簡介一下linux系統日誌及日誌分析技巧。

日誌預設存放位置:/var/log/

檢視日誌配置情況:more /etc/rsyslog.conf

日誌檔案

說明/var/log/cron

記錄了系統定時任務相關的日誌

/var/log/cups

記錄列印資訊的日誌

/var/log/dmesg

記錄了系統在開機時核心自檢的資訊,也可以使用dmesg命令直接檢視核心自檢資訊

/var/log/mailog

記錄郵件資訊

/var/log/message

記錄系統重要資訊的日誌。這個日誌檔案中會記錄linux系統的絕大多數重要資訊,如果系統出現問題時,首先要檢查的就應該是這個日誌檔案

/var/log/btmp

記錄錯誤登入日誌,這個檔案是二進位制檔案,不能直接vi檢視,而要使用lastb命令檢視

/var/log/lastlog

記錄系統中所有使用者最後一次登入時間的日誌,這個檔案是二進位制檔案,不能直接vi,而要使用lastlog命令檢視

/var/log/wtmp

永久記錄所有使用者的登入、登出資訊,同時記錄系統的啟動、重啟、關機事件。同樣這個檔案也是乙個二進位制檔案,不能直接vi,而需要使用last命令來檢視

/var/log/utmp

記錄當前已經登入的使用者資訊,這個檔案會隨著使用者的登入和登出不斷變化,只記錄當前登入使用者的資訊。同樣這個檔案不能直接vi,而要使用w,who,users等命令來查詢

/var/log/secure

記錄驗證和授權方面的資訊,只要涉及賬號和密碼的程式都會記錄,比如ssh登入,su切換使用者,sudo授權,甚至新增使用者和修改使用者密碼都會記錄在這個日誌檔案中

比較重要的幾個日誌:

登入失敗記錄:/var/log/btmp //lastb

最後一次登入:/var/log/lastlog //lastlog

登入成功記錄: /var/log/wtmp //last

登入日誌記錄:/var/log/secure

目前登入使用者資訊:/var/run/utmp //w、who、users

歷史命令記錄:history 僅清理當前使用者:history -c

a、常用的shell命令

linux下常用的shell命令如:find、grep 、egrep、awk、sed

小技巧:

1、grep顯示前後幾行資訊:

•標準unix/linux下的grep通過下面引數控制上下文:

•grep -c 5 foo file 顯示file檔案裡匹配foo字串那行以及上下5行

•grep -b 5 foo file 顯示foo及前5行

•grep -a 5 foo file 顯示foo及後5行

•檢視grep版本號的方法是

•grep -v

2、grep 查詢含有某字串的所有檔案

grep -rn "hello,world!"

* : 表示當前目錄所有檔案,也可以是某個檔名

-r 是遞迴查詢

-n 是顯示行號

-r 查詢所有檔案包含子目錄

-i 忽略大小寫

3、如何顯示乙個檔案的某幾行:

cat input_file | tail -n +1000 | head -n 2000

#從第1000行開始,顯示2000行。即顯示1000~2999行

4、find /etc -name init

//在目錄/etc中查詢檔案init
5、只是顯示/etc/passwd的賬戶

`cat /etc/passwd |awk  -f ':'  ''`  

//awk -f指定域分隔符為':',將記錄按指定的域分隔符劃分域,填充域,•$0則表示所有域,$1表示第乙個域,•$n表示第n個域。

6、sed -i '153,$d' .bash_history

刪除歷史操作記錄,只保留前153行
b、日誌分析技巧

a、/var/log/secure

1、定位有多少ip在爆破主機的root帳號:   

grep "failed password for root" /var/log/secure | awk '' | sort | uniq -c | sort -nr | more

定位有哪些ip在爆破:

grep "failed password" /var/log/secure|grep -e -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

爆破使用者名稱字典是什麼?

grep "failed password" /var/log/secure|perl -e 'while($_=<>)'|uniq -c|sort -nr

2、登入成功的ip有哪些:

grep "accepted " /var/log/secure | awk '' | sort | uniq -c | sort -nr | more

登入成功的日期、使用者名稱、ip:

grep "accepted " /var/log/secure | awk ''

3、增加乙個使用者kali日誌:

jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, gid=1001

jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, uid=1001, gid=1001, home=/home/kali

, shell=/bin/bash

jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali

#grep "useradd" /var/log/secure

4、刪除使用者kali日誌:

jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'

jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'

jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'

# grep "userdel" /var/log/secure

5、su切換使用者:

jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授權執行:

sudo -l

jul 10 00:43:09 localhost sudo: good : tty=pts/4 ; pwd=/home/good ; user=root ; command=/sbin/shutdown -r now

2、/var/log/yum.log

軟體安裝公升級解除安裝日誌:

yum install gcc

[root@bogon ~]# more /var/log/yum.log

jul 10 00:18:23 updated: cpp-4.8.5-28.el7_5.1.x86_64

jul 10 00:18:24 updated: libgcc-4.8.5-28.el7_5.1.x86_64

jul 10 00:18:24 updated: libgomp-4.8.5-28.el7_5.1.x86_64

jul 10 00:18:28 updated: gcc-4.8.5-28.el7_5.1.x86_64

jul 10 00:18:28 updated: libgcc-4.8.5-28.el7_5.1.i686

日誌分析與安全

日誌為什麼重要?1.用於記錄系統 程式執行中發生的各種事件 2.通過閱讀日誌,有助於診斷和解決系統故障 3.是審計的基礎 日誌檔案的分類 1.核心及系統日誌 有系統服務rsyslogd統一進行管理,日誌格式基本相似 3.程式日誌 由各種應用程式獨立管理的日誌檔案,記錄格式不統一 在linux系統中,...

LINUX日誌查詢技巧

1.查詢日誌中含有某個關鍵字的資訊 grep error 2.查詢日誌尾部最後10行的日誌tail n 10log3.查詢10行之後的所有日誌tail n 10log4.查詢日誌檔案中的頭10行日誌head n 10log 5.查詢日誌檔案除了最後10行的其他所有日誌head n 10log6.查詢...

linux日誌查詢技巧

b 大日誌檔案查詢日誌 b split命令對日誌檔案進行分割 split 1000 log newlog 然後組合查訊警告及其他資訊 cat start.log grep warning 正規表示式查訊資訊 cat start.log grep 0 9 0 9 b 參考 b b 1.tail 用於顯...