溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用utmpdump監(jiān)控用戶登錄歷史

發(fā)布時(shí)間:2022-01-24 13:56:32 來源:億速云 閱讀:157 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章給大家介紹如何使用utmpdump監(jiān)控用戶登錄歷史,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Linux系統(tǒng)管理員最基礎(chǔ)也是最重要的事情就是保留、維護(hù)、分析日志,其中就包括用戶管理、檢查用戶的等人、和退出日志。

如何使用utmpdump監(jiān)控用戶登錄歷史

在CentOS系統(tǒng)上,用戶登錄歷史存儲(chǔ)在以下這些文件中:

  • /var/run/utmp(用于記錄當(dāng)前打開的會(huì)話)被who和w工具用來記錄當(dāng)前有誰登錄以及他們正在做什么,而uptime用來記錄系統(tǒng)啟動(dòng)時(shí)間。

  • /var/log/wtmp (用于存儲(chǔ)系統(tǒng)連接歷史記錄)被last工具用來記錄最后登錄的用戶的列表。

  • /var/log/btmp(記錄失敗的登錄嘗試)被lastb工具用來記錄最后失敗的登錄嘗試的列表。

如何使用utmpdump監(jiān)控用戶登錄歷史

在本文中,我將介紹如何使用utmpdump,這個(gè)小程序來自sysvinit-tools包,可以用于轉(zhuǎn)儲(chǔ)二進(jìn)制日志文件到文本格式的文件以便檢查。此工具默認(rèn)在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到過的工具的輸出要更全面,這讓它成為一個(gè)勝任該工作的很不錯(cuò)的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修復(fù)二進(jìn)制日志中的任何損壞條目,它會(huì)很有用(LCTT 譯注:我怎么覺得這像是做壞事的前奏?)。

Utmpdump的使用及其輸出說明

正如我們之前提到的,這些日志文件,與我們大多數(shù)人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二進(jìn)制格式存儲(chǔ)的,因而我們不能使用像less或more這樣的文件命令來查看它們的內(nèi)容。所以,utmpdump的出現(xiàn)拯救了世界。

為了要顯示/var/run/utmp的內(nèi)容,請(qǐng)運(yùn)行以下命令:

# utmpdump /var/run/utmp

如何使用utmpdump監(jiān)控用戶登錄歷史

同樣要顯示/var/log/wtmp的內(nèi)容:

# utmpdump /var/log/wtmp | tail -15

如何使用utmpdump監(jiān)控用戶登錄歷史

最后,對(duì)于/var/log/btmp:

# utmpdump /var/log/btmp

如何使用utmpdump監(jiān)控用戶登錄歷史

正如你所能看到的,三種情況下的輸出結(jié)果是一樣的,除了utmp和btmp的記錄是按時(shí)間排序,而wtmp的順序是顛倒的這個(gè)原因外(LCTT 譯注:此處原文有誤,實(shí)際上都是按照時(shí)間順序排列的)。

每個(gè)日志行格式化成了多列,說明如下。第一個(gè)字段顯示了會(huì)話識(shí)別符,而第二個(gè)字段則是PID。第三個(gè)字段可以是以下值:–(表示運(yùn)行等級(jí)改變或系統(tǒng)重啟),bw(啟動(dòng)守候進(jìn)程),數(shù)字(表示TTY編號(hào)),或者字符和數(shù)字(表示偽終端)。第四個(gè)字段可以為空或用戶名、重啟或運(yùn)行級(jí)別。第五個(gè)字段是主TTY或PTY(偽終端),如果此信息可獲得的話。第六個(gè)字段是遠(yuǎn)程主機(jī)名(如果是本地登錄,該字段為空,運(yùn)行級(jí)別信息除外,它會(huì)返回內(nèi)核版本)。第七個(gè)字段是遠(yuǎn)程系統(tǒng)的IP地址(如果是本地登錄,該字段為0.0.0.0)。如果沒有提供DNS解析,第六和第七字段會(huì)顯示相同的信息(遠(yuǎn)程系統(tǒng)的IP地址)。最后一個(gè)(第八)字段指明了該記錄創(chuàng)建的日期和時(shí)間。

Utmpdump使用樣例

下面提供了一些utmpdump的簡(jiǎn)單使用情況。

1、 檢查8月18日到9月17日之間某個(gè)特定用戶(如gacanepa)的登錄次數(shù)。

# utmpdump /var/log/wtmp | grep gacanepa

如何使用utmpdump監(jiān)控用戶登錄歷史

如果你需要回顧先前日期的登錄信息,你可以檢查/var/log下的wtmp-YYYYMMDD(或wtmp.[1…N])和btmp-YYYYMMDD(或btmp.[1…N])文件,這些是由logrotate生成的舊wtmp和btmp的歸檔文件。

2、 統(tǒng)計(jì)來自IP地址192.168.0.101的登錄次數(shù)。

# utmpdump /var/log/wtmp | grep 192.168.0.101

如何使用utmpdump監(jiān)控用戶登錄歷史

3、 顯示失敗的登錄嘗試。

# utmpdump /var/log/btmp

如何使用utmpdump監(jiān)控用戶登錄歷史

在/var/log/btmp輸出中,每個(gè)日志行都與一個(gè)失敗的登錄嘗試相關(guān)(如使用不正確的密碼,或者一個(gè)不存在的用戶ID)。上面圖片中高亮部分顯示了使用不存在的用戶ID登錄,這警告你有人嘗試猜測(cè)常用帳號(hào)名來闖入系統(tǒng)。這在使用tty1的情況下是個(gè)極其嚴(yán)重的問題,因?yàn)檫@意味著某人對(duì)你機(jī)器上的終端具有訪問權(quán)限(該檢查一下誰拿到了進(jìn)入你數(shù)據(jù)中心的鑰匙了,也許吧?)

4、 顯示每個(gè)用戶會(huì)話的登入和登出信息

# utmpdump /var/log/wtmp

如何使用utmpdump監(jiān)控用戶登錄歷史

在/var/logwtmp中,一次新的登錄事件的特征是,第一個(gè)字段為‘7’,第三個(gè)字段是一個(gè)終端編號(hào)(或偽終端id),第四個(gè)字段為用戶名。相關(guān)的登出事件會(huì)在第一個(gè)字段顯示‘8’,第二個(gè)字段顯示與登錄一樣的PID,而終端編號(hào)字段空白。例如,仔細(xì)觀察上面圖片中PID 1463的行。

  • 在 [Fri Sep 19 11:57:40 2014 ART],TTY1上顯示登錄提示符。

  • 在 [Fri Sep 19 12:04:21 2014 ART],用戶 root 登入。

  • 在 [Fri Sep 19 12:07:24 2014 ART],用戶 root 登出。

旁注:第四個(gè)字段的LOGIN意味著出現(xiàn)了一次登錄到第五字段指定的終端的提示。

到目前為止,我介紹一些有點(diǎn)瑣碎的例子。你可以將utmpdump和其它一些文本處理工具,如awk、sed、grep或cut組合,來產(chǎn)生過濾和加強(qiáng)的輸出。

例如,你可以使用以下命令來列出某個(gè)特定用戶(如gacanepa)的所有登錄事件,并發(fā)送輸出結(jié)果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之類的文字或工作簿應(yīng)用程序打開查看。讓我們只顯示PID、用戶名、IP地址和時(shí)間戳:

 # utmpdump /var/log/wtmp | grep -E "\[7].*gacanepa" | awk -v OFS="," 'BEGIN {FS="] "}; {print $2,$4,$7,$8}' | sed -e 's/\[//g' -e 's/\]//g'

如何使用utmpdump監(jiān)控用戶登錄歷史

就像上面圖片中三個(gè)高亮區(qū)域描繪的那樣,過濾邏輯操作是由三個(gè)管道步驟組成的。第一步用于查找由用戶gacanepa觸發(fā)的登錄事件([7]);第二步和第三部用于選擇期望的字段,移除utmpdump輸出的方括號(hào)并設(shè)置輸出字段分隔符為逗號(hào)。

當(dāng)然,如果你想要在以后打開來看,你需要重定向上面的命令輸出到文件(添加“>[文件名].csv”到命令后面)。

如何使用utmpdump監(jiān)控用戶登錄歷史

在更為復(fù)雜的例子中,如果你想要知道在特定時(shí)間內(nèi)哪些用戶(在/etc/passwd中列出)沒有登錄,你可以從/etc/passwd中提取用戶名,然后運(yùn)行g(shù)rep命令來獲取/var/log/wtmp輸出中對(duì)應(yīng)用戶的列表。就像你看到的那樣,有著無限可能。

在進(jìn)行總結(jié)之前,讓我們簡(jiǎn)要地展示一下utmpdump的另外一種使用情況:修改utmp或wtmp。由于這些都是二進(jìn)制日志文件,你不能像編輯文件一樣來編輯它們。取而代之是,你可以將其內(nèi)容輸出成為文本格式,并修改文本輸出內(nèi)容,然后將修改后的內(nèi)容導(dǎo)入回二進(jìn)制日志中。如下:

# utmpdump /var/log/utmp > tmp_output# utmpdump -r tmp_output > /var/log/utmp

這在你想要移除或修復(fù)二進(jìn)制日志中的任何偽造條目時(shí)很有用。

utmpdump從utmp、wtmp和btmp日志文件或輪循的舊歸檔文件來讀取詳細(xì)的登錄事件。

關(guān)于如何使用utmpdump監(jiān)控用戶登錄歷史就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI