在CentOS系統(tǒng)上查看用戶登錄記錄的方法

保留、維護和分析日志(如某個特定時期內發(fā)生過的,或正在發(fā)生的帳號事件),是Linux系統(tǒng)管理員最基礎和最重要的任務之一。對于用戶管理,檢查用戶的登入和登出日志(不管是失敗的,還是成功的)可以讓我們對任何潛在的安全隱患或未經(jīng)授權使用系統(tǒng)的情況保持警惕。例如,工作時間之外或放假期間的來自未知IP地址或帳號的遠程登錄應當發(fā)出紅色警報。
在CentOS系統(tǒng)上,用戶登錄歷史存儲在以下這些文件中:
- /var/run/utmp(用于記錄當前打開的會話)被who和w工具用來記錄當前有誰登錄以及他們正在做什么,而uptime用來記錄系統(tǒng)啟動時間。
/var/log/wtmp (用于存儲系統(tǒng)連接歷史記錄)被last工具用來記錄最后登錄的用戶的列表。
/var/log/btmp(記錄失敗的登錄嘗試)被lastb工具用來記錄最后失敗的登錄嘗試的列表。
在本文中,我將介紹如何使用utmpdump,這個小程序來自sysvinit-tools包,可以用于轉儲二進制日志文件到文本格式的文件以便檢查。此工具默認在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到過的工具的輸出要更全面,這讓它成為一個勝任該工作的很不錯的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修復二進制日志中的任何損壞條目,它會很有用(LCTT 譯注:我怎么覺得這像是做壞事的前奏?)。
Utmpdump的使用及其輸出說明
正如我們之前提到的,這些日志文件,與我們大多數(shù)人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二進制格式存儲的,因而我們不能使用像less或more這樣的文件命令來查看它們的內容。所以,utmpdump的出現(xiàn)拯救了世界。
為了要顯示/var/run/utmp的內容,請運行以下命令:

同樣要顯示/var/log/wtmp的內容:
<img alt="2015618162412689.jpg (640×204)" src="http://img.jbzj.com/file_images/article/201506/2015618162412689.jpg?2015518162420" /></p> <p> 最后,對于/var/log/btmp:</p> <p> [code]# utmpdump /var/log/btmp

正如你所能看到的,三種情況下的輸出結果是一樣的,除了utmp和btmp的記錄是按時間排序,而wtmp的順序是顛倒的這個原因外(LCTT 譯注:此處原文有誤,實際上都是按照時間順序排列的)。
每個日志行格式化成了多列,說明如下。第一個字段顯示了會話識別符,而第二個字段則是PID。第三個字段可以是以下值:--(表示運行等級改變或系統(tǒng)重啟),bw(啟動守候進程),數(shù)字(表示TTY編號),或者字符和數(shù)字(表示偽終端)。第四個字段可以為空或用戶名、重啟或運行級別。第五個字段是主TTY或PTY(偽終端),如果此信息可獲得的話。第六個字段是遠程主機名(如果是本地登錄,該字段為空,運行級別信息除外,它會返回內核版本)。第七個字段是遠程系統(tǒng)的IP地址(如果是本地登錄,該字段為0.0.0.0)。如果沒有提供DNS解析,第六和第七字段會顯示相同的信息(遠程系統(tǒng)的IP地址)。最后一個(第八)字段指明了該記錄創(chuàng)建的日期和時間。
Utmpdump使用樣例
下面提供了一些utmpdump的簡單使用情況。
1、 檢查8月18日到9月17日之間某個特定用戶(如gacanepa)的登錄次數(shù)。

如果你需要回顧先前日期的登錄信息,你可以檢查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,這些是由logrotate生成的舊wtmp和btmp的歸檔文件。
2、 統(tǒng)計來自IP地址192.168.0.101的登錄次數(shù)。

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

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

在/var/logwtmp中,一次新的登錄事件的特征是,第一個字段為‘7’,第三個字段是一個終端編號(或偽終端id),第四個字段為用戶名。相關的登出事件會在第一個字段顯示‘8’,第二個字段顯示與登錄一樣的PID,而終端編號字段空白。例如,仔細觀察上面圖片中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 登出。
旁注:第四個字段的LOGIN意味著出現(xiàn)了一次登錄到第五字段指定的終端的提示。
到目前為止,我介紹一些有點瑣碎的例子。你可以將utmpdump和其它一些文本處理工具,如awk、sed、grep或cut組合,來產生過濾和加強的輸出。
例如,你可以使用以下命令來列出某個特定用戶(如gacanepa)的所有登錄事件,并發(fā)送輸出結果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之類的文字或工作簿應用程序打開查看。讓我們只顯示PID、用戶名、IP地址和時間戳:

就像上面圖片中三個高亮區(qū)域描繪的那樣,過濾邏輯操作是由三個管道步驟組成的。第一步用于查找由用戶gacanepa觸發(fā)的登錄事件([7]);第二步和第三部用于選擇期望的字段,移除utmpdump輸出的方括號并設置輸出字段分隔符為逗號。
當然,如果你想要在以后打開來看,你需要重定向上面的命令輸出到文件(添加“>[文件名].csv”到命令后面)。
在更為復雜的例子中,如果你想要知道在特定時間內哪些用戶(在/etc/passwd中列出)沒有登錄,你可以從/etc/passwd中提取用戶名,然后運行grep命令來獲取/var/log/wtmp輸出中對應用戶的列表。就像你看到的那樣,有著無限可能。
在進行總結之前,讓我們簡要地展示一下utmpdump的另外一種使用情況:修改utmp或wtmp。由于這些都是二進制日志文件,你不能像編輯文件一樣來編輯它們。取而代之是,你可以將其內容輸出成為文本格式,并修改文本輸出內容,然后將修改后的內容導入回二進制日志中。如下:
<使用文本編輯器修改 tmp_output>
# utmpdump -r tmp_output > /var/log/utmp
這在你想要移除或修復二進制日志中的任何偽造條目時很有用。
下面小結一下,utmpdump從utmp、wtmp和btmp日志文件或輪循的舊歸檔文件來讀取詳細的登錄事件,來補充如who,w,uptime,last,lastb之類的標準工具的不足,這也使得它成為一個很棒的工具。
相關文章
- 虛擬機安裝CentOS后沒有網(wǎng)絡了不能上網(wǎng),該怎么設置網(wǎng)絡呢?下面我們就來看看這個問題的解決辦法,詳細請看下文圖文介紹2024-01-18
虛擬機怎么安裝CentOS? 安裝CentOS操作系統(tǒng)的保姆級圖文教程
虛擬機想要安裝CentOS操作系統(tǒng),但是CentOS操作系統(tǒng)已經(jīng)停止維護了,該怎么安裝呢?詳細請看下文圖文教程2024-01-18Centos7.8怎么更新openssh? Centos升級openssh的技巧
Centos7.8怎么更新openssh?Centos7.8系統(tǒng)想要安裝openssh,該怎么安裝呢?下面我們就來看看Centos升級openssh的技巧2023-09-02Centos7.8怎么更新openssl? CentOS升級OpenSSL的技巧
Centos7.8怎么更新openssl?Centos7.8系統(tǒng)想要升級OpenSSL,該怎么升級呢?詳細請看下文介紹2023-09-02- centos7沒有圖形化操作可能對很多人來說都不太習慣,下面我們來為centos7安裝圖形化界面,本文以安裝 GNOME 圖形化為例,需要的朋友可以參考下2023-06-29
- 今天小編在安裝RHEL7的時候,一步留神沒有安裝圖形化桌面,下面分享一下安裝圖形化桌面的過程,需要的朋友可以參考下2023-06-29
CentOS7各個版本鏡像下載地址及版本說明(包括Everything版)
下載CentOS-7.0-1406的時候,有很多可選則的版本,對于普通用戶來說,不知道選擇哪個好,下面做一下簡單介紹,需要的朋友可以參考下2023-06-01Centos 7怎么手動配置ip地址? Centos7配置IP地址的技巧
Centos 7怎么手動配置ip地址?Centos 7系統(tǒng)想要自己配置ip地址,該怎么操作呢?下面我們就來看看Centos7配置IP地址的技巧2023-05-17- 這篇文章主要介紹了Centos 7 壓縮與解壓縮命令小結,需要的朋友可以參考下2023-03-28
- 由于centos8 在2022年停止服務,后繼版本為8-steam。在使用阿里云的 centos8 的 yum 時報錯,這篇文章主要介紹了CentOS8使用阿里云yum源異常的解決方法,需要的朋友可以參考2022-04-19