Linux日誌管理五大命令詳解

 

轉載學習:

Linux日誌管理五大命令詳解

日誌主要的功能有:審計和監測。它還可以實時的監測系統狀態,監測和追蹤侵入者等等。成功地管理任何系統的關鍵之一,是要知道系統中正在發生什麼事。Linux中提供了異常日誌,並且日誌的細節是可配置的。Linux日誌都以明文形式存儲,所以用戶不需要特殊的工具就可以搜索和閱讀它們。還可以編寫腳本,來掃描這些日誌,並基於它們的內容去自動執行某些功能。Linux日誌存儲在/var/log目錄中。這裏有幾個由系統維護的日誌文件,但其他服務和程序也可能會把它們的日誌放在這裏。大多數日誌只有root賬戶纔可以讀,不過修改文件的訪問權限就可以讓其他人可讀。在Linux系統中,有四類主要的日誌:& s( l. [3 ]  z! d; D7 {
  ◆連接時間日誌:由多個程序執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。

       ◆進程統計:由系統內核執行。當一個進程終止時,爲每個進程往進程統計文件(pacct或acct)中寫一個記錄。進程統計的目的是爲系統中的基本服務提供命令使用統計。- t6 S  g2 i/ I6 p- X  A
  ◆錯誤日誌:由syslogd(8)守護程序執行。各種系統守護進程、用戶程序和內核通過syslogd(3)守護程序向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日誌。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日誌。0 v# F8 F+ U$ c0 U) _
  ◆實用程序日誌:許多程序通過維護日誌來反映系統的安全狀態。su命令允許用戶獲得另一個用戶的權限,所以它的安全很重要,它的文件爲sulog。同樣的還有sudolog。另外,諸如Apache等Http的服務器都有兩個日誌:access_log(客戶端訪問日誌)以及error_log(服務出錯日誌)。 FTP服務的日誌記錄在xferlog文件當中,Linux下郵件傳送服務(sendmail)的日誌一般存放在maillog文件當中。& f0 c1 M% ?* F3 M" q. |
  utmp、wtmp日誌文件是多數Linux日誌子系統的關鍵,它保存了用戶登錄進入和退出的記錄。有關當前登錄用戶的信息記錄在文件utmp中;登錄進入和退出記錄在文件wtmp中;數據交換、關機以及重啓的機器信息也都記錄在wtmp文件中。所有的記錄都包含時間戳。時間戳對於日誌來說非常重要,因爲很多攻擊行爲分析都與時間有極大的關係。這些文件在具有大量用戶的系統中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許多系統以一天或者一週爲單位把wtmp配置成循環使用。它通常由cron運行的腳本來修改。這些腳本重新命名並循環使用wtmp文件。通常,wtmp在第一天結束後命名爲wtmp.1;第二天後wtmp.1變爲wtmp.2等等,用戶可以根據實際情況來對這些文件進行命名和配置使用。
! _4 e9 T. a: D/ [  utmp文件被各種命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。
1 i' V( S4 U+ P; ~$ ]7 f/ {  wtmp和utmp文件都是二進制文件,他們不能被諸如tail命令剪貼或合併(使用cat命令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的信息。
: f: ~' R$ U! z% R  1.who命令8 }! @) d% r0 ^4 p* [
  who命令查詢utmp文件並報告當前登錄的每個用戶。Who的缺省輸出包括用戶名、終端類型、登錄日期及遠程主機。使用該命令,系統管理員可以查看當前系統存在哪些不法用戶,從而對其進行審計和處理。例如:運行who命令顯示如下所示:" M( T! ~8 c2 K4 p# m# G! p4 d
  # who
* M3 Q5 `  Y4 @  v
/ g$ s3 K# a8 g  如果指明瞭wtmp文件名,則who命令查詢所有以前的記錄。命令who /var/log/wtmp將報告自從wtmp文件創建或刪改以來的每一次登錄。例如:運行該命令如下所示:* f% i. _7 e, L! z
  # who /var/log/wtmp! M& Y6 I5 N' P+ N8 C5 x
  root :0 2010-01-24 21:47- M2 f; x' J- Y; u# u! _
  root pts/1 2010-01-24 21:47 (:0.0)% w/ w# W% K& n, y& s
  root :0 2010-02-20 19:368 l" ?5 ?$ A( a4 p9 {3 C9 M
  root pts/1 2010-02-20 19:36 (:0.0)
, S; ^  h- c) _5 o- {  root :0 2010-02-21 15:211 z* R  [3 o  b. {
  root pts/1 2010-02-21 15:56 (:0.0)# z( ]- O2 G- ~' d! H) Y: P6 g3 C
  root pts/2 2010-02-21 16:03 (:0.0)" r( k. J/ {; \- v2 C
  root :0 2010-02-22 13:01
. u! N1 @0 ^9 h: p  S6 r9 N  root pts/1 2010-02-22 13:02 (:0.0), A4 R+ v1 k9 B1 d$ }  n9 j. ?
  root pts/2 2010-02-22 15:57 (:0.0)
/ Q$ N1 d& G4 G: V  root pts/3 2010-02-22 15:57 (:0.0)
$ Q% F8 H& s  o& j) h  2.users命令
( C% i, y- ^- {: h0 G/ S" B6 v  users用單獨的一行打印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。運行該命令將如下所示:& c: I/ i7 j% |+ E
  # users4 g$ L# ]0 g" y( S# {# @
  root root root* ]( j$ i6 S: C- Z0 ~  q
  3.last命令
& K7 j. J/ x) e; O: `. k  last命令往回搜索wtmp來顯示自從文件第一次創建以來登錄過的用戶。系統管理員可以週期性地對這些用戶的登錄情況進行審計和考覈,從而發現起中存在的問題,確定不法用戶,並進行處理。運行該命令,如下所示:
9 q. h- ^+ I9 {  # last) G% S$ R& ^# ]4 C8 u
  root pts/3 :0.0 Mon Feb 22 15:57 still logged in
+ d4 K5 n% B8 l" f" ]/ R7 f  root pts/2 :0.0 Mon Feb 22 15:57 still logged in
4 o( d" V/ k6 H5 q  root pts/1 :0.0 Mon Feb 22 13:02 still logged in% {1 ^, e! i0 Q( g1 K
  root :0 Mon Feb 22 13:01 still logged in, @& X" t. r2 v
  reboot system boot2.6.18-8.el5 Mon Feb 22 12:56 (03:02)2 v: p! S$ D+ k( P# O8 G4 u$ ]
  root pts/2 :0.0 Sun Feb 21 16:03 - down (02:37)
9 g! F( x) {9 ^, W  root pts/1 :0.0 Sun Feb 21 15:56 - down (02:45)
. B( X; Q/ S9 o& W  root :0 Sun Feb 21 15:21 - down (03:20)
4 |6 f. R& `2 I  reboot system boot2.6.18-8.el5 Sun Feb 21 15:19 (03:22)6 _) C3 e; J) e5 }, _8 [! B
  root pts/1 :0.0 Sat Feb 20 19:36 - down (01:50)  |2 j* R. [' X! O8 Y
  root :0 Sat Feb 20 19:36 - down (01:51)
# Y! \7 M- l% e9 G9 ]  reboot system boot2.6.18-8.el5 Sat Feb 20 19:34 (01:53), h4 D1 g# n! R- n" Q4 ?* _: V- v
  root pts/1 :0.0 Sun Jan 24 21:47 - down (00:02)  o8 q. j% b5 @
  root :0 Sun Jan 24 21:47 - down (00:02)! f9 K8 f% H  J0 E$ b! a3 ~4 d
  reboot system boot2.6.18-8.el5 Sun Jan 24 21:45 (00:05)
7 ]8 x, c9 O4 U7 d* Z$ a  rebootsystem boot2.6.18-8.el5 Sun Jan 24 21:41 (00:02)4 q4 Q7 s9 u2 _  |3 Q
  wtmp begins Sun Jan 24 21:41:03 2010
 讀者可以看到,使用上述命令顯示的信息太多,區分度很小。所以,可以通過指明用戶來顯示其登錄信息即可。例如:使用last reoot來顯示reboot的歷史登錄信息,則如下所示:; l5 Z& O8 t4 i) H/ r6 {
  # last reboot
, ~, ], h3 m+ N* u4 y  reboot system boot2.6.18-8.el5 Mon Feb 22 12:56 (03:07). y7 P5 g) W3 j1 `. ^4 |) M
  reboot system boot2.6.18-8.el5 Sun Feb 21 15:19 (03:22)2 L6 P1 ^; V# v7 E# R5 g/ e
  reboot system boot2.6.18-8.el5 Sat Feb 20 19:34 (01:53)
/ G9 _3 ?6 @* W- ?: ?1 v  reboot system boot2.6.18-8.el5 Sun Jan 24 21:45 (00:05)" ]% R6 J6 N9 d; T, E
  reboot system boot2.6.18-8.el5 Sun Jan 24 21:41 (00:02)7 X. k( }( k4 l' P- R. w/ f4 o
  wtmp begins Sun Jan 24 21:41:03 2010' Q* t/ C3 S) e' P* @1 \
  4.ac命令
* b8 ~; g% R' O4 a- L/ p  ac命令根據當前的/var/log/wtmp文件中的登錄進入和退出來報告用戶連結的時間(小時),如果不使用標誌,則報告總的時間。例如:ac(回車)顯示:total 18.47,如下所示:
: E7 @$ {: ]4 }( x1 [: B8 s, B  # ac! K# `5 R) `; P
  total 18.479 H: ]3 z4 j" H1 r" `( n
  另外,可加一些參數,例如,last -u 102將報告UID爲102的用戶;last -t 7表示限制上一週的報告。
1 v! j1 m5 K% h# Q% l  5.lastlog命令" r5 D5 }9 Q- _; \  t
  lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日誌/var/log/lastlog的內容。它根據UID排序顯示登錄名、端口號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示**Never logged**。注意需要以root身份運行該命令。運行該命令如下所示:8 T$ z9 Z- S( L- ~' M- \0 K4 L
  # lastlog
# o7 U! Z) e  [0 m' ?  用戶名 端口 來自 最後登陸時間
. S9 W5 c/ D! m" Y  root **從未登錄過**  Y$ j4 W" B" E; }. ?
  bin **從未登錄過**9 f( l9 e$ ~, r( J3 w
  daemon **從未登錄過**
5 [, o4 U, g8 l* D& b) s+ M8 c  adm **從未登錄過**+ w" e5 ]' e6 W; z5 l
  lp **從未登錄過**" ?4 X! j9 d7 b6 e) s5 w! ]
  sync **從未登錄過**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章