linux內置的審計跟蹤工具------last和lastb


last是linux的一個內置工具,可以用來查看最后登錄服務器的用戶。它對於追蹤非常有用。

last命令顯示的是來自/var/log/wtmp文件創建起,所有登錄的用戶。這個文件是一個二進制文件,不能直接用文本編輯器瀏覽,可以通過linux提供的api對其進行訪問。這個是非常有用處的,因為用戶不能想他們希望的那樣隨意的修改這個文件。

 

last命令會輸出:已經登錄的用戶的用戶名、登錄終端、登錄地址、日期、時間和用戶已經登錄的時間。

 

如果你是一個服務器管理員,你或許知道你要保護你的服務器的話,不僅是從外部,還要從內部保護。linux有一個內置工具來看到最后登陸服務器的用戶,可以幫助你保護服務器。

 

這個命令是last。它對於追蹤非常有用。讓我們來看一下last可以為你做些什么。

last命令的功能是什么

last顯示的是自/var/log/wtmp文件創建起所有登錄(和登出)的用戶。這個文件是二進制文件,它不能被文本編輯器瀏覽,比如vi、Joe或者其他軟件。這是非常有用的,因為用戶(或者root)不能像他們希望的那樣修改這個文件。

last會給出所有已登錄用戶的用戶名、tty、IP地址(如果用戶是遠程連接的話)、日期-時間和用戶已經登錄的時間。

如何運行last

你只要在控制台中輸入last即可。這是個例子:

$ lastleni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05) 

這里是如何閱讀last信息:

  • 第一列告訴誰是用戶
  • 第二列給出了用戶如何連接的信息

    • pts/0 (偽終端) 意味着從諸如SSH或telnet的遠程連接的用戶
    • tty (teletypewriter) 意味着直接連接到計算機或者本地連接的用戶
    • 除了重啟活動,所有狀態會在啟動時顯示
  • 第三列顯示用戶來自哪里。如果用戶來自於遠程計算機,你會看到一個主機名或者IP地址。如果你看見:0.0 或者什么都沒有,這意味着用戶通過本地終端連接。除了重啟活動,內核版本會顯示在狀態中。

  • 剩下的列顯示日志活動發生在何時。括號中的數字告訴我們連接持續了多少小時和分鍾。

日常操作中last的一些示例

限制顯示行的數目

當你有很多行要顯示時,你可以限制你想看到的行的數目.使用 -n 參數來這么做。

$ last -n 3leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

-n 參數會使last顯示從當前時間到以后的3條記錄。

不顯示主機名

使用 -R 參數來這么做。這里是例子 :

$ last -Rleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot system boot Mon Dec 2 09:20 - 13:25 (04:05)

如你所見,現在在也沒有關於主機或者IP地址的信息了。

最后一列顯示主機名

要這么做,我們使用 -a參數

$ last -aleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162pungki tty1 Mon Dec 2 09:31 still logged in :0.0reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686

現在主機信息諸如10.0.76.162 會放在最后一列。

顯示完整登入登出時間日期

對於此,你可以使用 -F 參數。這個是個示例:

$ last -Fleni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 – Mon Dec 2013 13:25:24 2013 (00:53)

打印特定的用戶名

如果你想要追蹤特定的用戶,你可以特別打印它。在last命令后面輸入用戶名。

$ last lenileni tty1 Mon Dec 2 18-42 still logged inleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162

或者你想要知道reboot何時完成,你也可以這樣顯示它:

$ last rebootreboot system boot Mon Dec 2 09:20 - 16:55 (07:34)reboot system boot Sun Dec 1 04:26 - 04:27 (00:01)reboot system boot Wed Nov 27 20:27 - 01:24 (04:57)reboot system boot Tue Nov 26 21:06 - 06:13 (09:06)

打印特定 / pts

last同樣可以打印特定tty/pts的信息. 只要在last命令后面輸入tty名字或者pty名字。

這里有一些例子:

$ last tty1pungki tty1 Mon Dec 2 09:31 still logged inpungki tty1 Mon Dec 2 04:26 – down (00:00)pungki tty1 Mon Dec 2 04:07 – down (00:00)pungki tty1 Sun Dec 1 18:55 – 04:07 (09:12)$ last pts/0leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)pungki pts/0 :0.0 Wed Nov 27 20:28 – down (04:56)

當你看到 down 的值 - 比如上面的第二行,它意味着用戶從某個時間登錄直到系統重啟或關機。

使用另一個文件而不是 /var/log/wtmp

默認上,last命令會從/var/log/wtmp中解析信息。如果你想要last命令從另外一個文件解析,你可以使用-f 參數。比如,當日志切割后,讓我們假設切割后,之前的文件名變為/var/log/wtmp.1。那么last命令會像這樣。

$ last -f /var/log/wtmp.1

顯示運行級別改變

這里有個-x參數來顯示運行級別。這里示例輸出:

pungki tty1 Mon Dec 2 19:21 still logged inrunlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 – 19:29 (00:08)reboot system boot 2.6.32-358.23.2 Mon Dec 2 19:20 – 19:29 (00:08)shutdown system down 2.6.32-358.23.2 Mon Dec 2 18:56 – 19:20 (00:23)runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 – 18:56 (00:00)leni tty1 Mon Dec 2 18:42 – down (00:00) 

你可以看到這里有兩個運行級別。運行級別to lvl 3的條目意味着系統運行在完整的控制台模式,而沒在X window或者GUI中。同時,當系統關機時,實際上是切換為運行級別0,這就是為什么last會顯示to lvl 0

 

查看失敗登錄

last命令用了記錄成功登錄,而 lastb 命令記錄失敗的登錄嘗試。你必須擁有root權限才能運行lastb命令。這里有一個lastb命令的示例輸出。lastb會解析/var/log/btmp的信息。

# lastbleni tty1 Mon Dec 2 22:12 – 22:12 (00:00)rahma tty1 Mon Dec 2 22:11 – 22:11 (00:00) 

切割日志

因為/var/log/wtmp記錄每次的登錄活動,文件的大小可能會快速地增長。默認上,Linux會每月切割 /var/log/wtmp/。切割的策略放在/etc/logrotate.conf 文件中。這里是我/etc/logrotate.conf*文件的內容。

/var/log/wtmp {  monthly  create 0664 root umtp  minsize 1M  rotate 1}

對於 /var/log/btmp, 這里是默認的倒換活動配置

/var/log/btmp {  missingok  monthly  create 0600 root umtp  minsize 1M  rotate 1}

你可以根據需要自己修改。

 

 

轉自:http://www.lupaworld.com/article-235976-1.html

 

 

備注:last reboot顯示結果

reboot  system boot 2.6.18-194.e15  Mon May 17 14:22  (33+11:23)

用戶名reboot說明了是系統內置命令reboot自動啟動服務器,

登錄終端system boot說明了reboot是從系統引導來登錄服務器的(可以這么理解),

登錄地址2.6.18-194.e15說明了linux系統內核的版本。

日期Mon說明是那天是周一,

時間May 17 14:22說明了系統執行reboot的具體時間。

括號運行時間在這里的意思是,系統reboot在時間5月17號14:22重啟啟動到現在運行了多長時間。

如果有多行的reboot,則前面的reboot括號時間可以理解為 reboot所在行,在啟動時間重啟后到下次reboot運行了(多長時間)--這行最后的括號。。

也就是這次reboot后,系統重啟后,服務器運行了多長時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM