深入瞭解Linux文件系統和日誌分析

深入瞭解Linux文件系統和日誌分析

1、inode與block

1.1 Inode和block概述

文件是存儲在硬盤上的,硬盤最小存儲叫做扇區,每個扇區512字節
操作系統讀取硬盤信息,不會一個一個扇區讀取。實際情況一下連續讀取多個扇區,一次性讀取多個扇區,叫做塊(Block),這種多個扇區組成的“塊”是文件存取的最小單位,最常見的4K,就是8個扇區組成的一個Block塊,512字節*8=4096字節。

文件數據分爲:元數據和實際數據。

1.2 inode內容

inode包含很多的文件元信息,但不包含文件名
1、文件的字節數
2、文件擁有者UserID
3、文件的GroupID
4、文件的rwx權限(讀、寫、執行)
5、文件時間戳

1.3 使用stat查看文件inode信息

在這裏插入圖片描述
在這裏插入圖片描述

1.4 inode的號碼

用戶在訪問問件時候,表面上是用戶通過文件名打開的,而實際系統內部的過程分成三步完成的
1、系統找到文件名的inode號碼
2、通過inode號碼,獲取inode信息
3、根據inode信息,找到文件所在的block,並讀取數據

文件名-----對應的inode號碼-----inode信息-----找到文件所在的block,讀取數據

1.5 常見查看inode號碼有這麼幾種方式

li -i命令:直接查看當前目錄文件名的所對應的inode信息
ls-ai命令:直接查看當面目錄的文件及隱藏文件的所對應的inode信息
stat命令:通過查看文件inode信息而查看到inode號碼
在這裏插入圖片描述

2、硬連接與軟連接

在這裏插入圖片描述
在這裏插入圖片描述

3、分析日誌文件

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

###日誌文件分析####

分析日誌文 件的目的在於通過瀏覽日誌查找關鍵信息、對系統服務進行調試,以及判斷髮生故障的原因 等。
本小節主要介紹三類日誌文件的基本格式和分析方法。
對於大多數文本格式的日誌文件(如內核及系統日誌、大多數的程序日誌),只要使用 tail、more、less、cat
等文本處理工具就可以查看日誌內容。而對於一些二進制格式的日誌 文件(如用戶日誌),則需要使用特定的查詢命令

1.內核及系統日誌
內核及系統日誌功能主要由默認安裝的 rsyslog-7.4.7-16.el7.x86_64.rpm 軟件包提供。
rsyslog 服務所使用的配置文件爲/etc/rsyslog.conf。通過查看/etc/rsyslog.conf 文件中的內 容,
可以瞭解到系統默認的日誌設置,具體操作如下:
[root@localhost ~]# grep -v “^$” /etc/rsyslog.conf ####過濾掉空行

從配置文件/etc/rsyslog.conf 中可以看到,受 rsyslogd 服務管理的日誌文件都是 Linux 操作系統中主要的日誌文件,
它們記錄了 Linux 操作系統中內核、用戶認證、電子郵件、計 劃任務等基本的系統消息。在 Linux 內核中,
根據日誌消息的重要程度不同,將其分爲不同 的優先級別(數字等級越小,優先級越高,消息越重要)

0 EMERG(緊急):會導致主機系統不可用的情況。

1 ALERT(警告):必須馬上採取措施解決的問題。

2 CRIT(嚴重):比較嚴重的情況。

3 ERR(錯誤):運行出現錯誤

4 WARNING(提醒):可能影響系統功能,需要提醒用戶的重要事件

5 NOTICE(注意):不會影響正常功能,但是需要注意的事件。

6 INFO(信息):一般信息。

7 DEBUG(調試):程序或系統調試信息等。

內核及大多數系統消息被記錄到公共日誌文件/var/log/messages 中,而其他一些程序 消息被記錄到各自獨立的日誌文件中,
此外日誌消息還能夠記錄到特定的存儲設備中,或者 直接發送給指定用戶。查看/var/log/messages 文件的內容如下
more /var/log/messages

對於 rsyslog 服務統一管理的大部分日誌文件,使用的日誌記錄格式基本上是相同的。
以公共日誌/var/log/messages 文件的記錄格式爲例,其中每一行表示一條日誌消息,每 一條消息均包括以下四個字段。
時間標籤:消息發出的日期和時間。
主機名:生成消息的計算機的名稱。
子系統名稱:發出消息的應用程序的名稱。
消息:消息的具體內容。

在有些情況下,可以設置 rsyslog,使其在把日誌信息記錄到文件的同時將日誌信息發 送到打印機進行打印,
這樣無論網絡入侵者怎樣修改日誌都不能清除入侵的痕跡。rsyslog 日誌服務是一個常會被攻擊的顯著目標,
破壞了它將使管理員難以發現入侵及入侵的痕跡, 因此要特別注意監控其守護進程及配置文件

2、用戶日誌
在 wtmp、btmp、lastlog 等日誌文件中,保存了系統用戶登錄、退出等相關的事件消息。
但是這些文件都是二進制的數據文件,不能直接使用 tail、less 等文本查看工具進行瀏覽,
需要使用 who、w、users、last 和 lastb 等用戶查詢命令來獲取日誌信息
(1)查詢當前登錄的用戶情況——users、who、w 命令
users 命令只是簡單地輸出當前登錄的用戶名稱,每個顯示的用戶名對應一個登錄會話。
如果一個用戶有不止一個登錄會話,那他的用戶名將顯示與其相同的次數。user 命令的具 體操作如下:
[root@localhost ~]# users ###打開了一個終端
root

who 命令用於報告當前登錄到系統中的每個用戶的信息。使用該命令,系統管理員可 以查看當前系統存在哪些不合法用戶,
從而對其進行審計和處理。who 的默認輸出包括用 戶名、終端類型、登錄日期及遠程主機。
who 命令的具體操作如下:
[root@localhost ~]# who
root pts/0 2020-06-23 00:34 (20.0.0.1)

[root@localhost ~]# w
01:16:49 up 45 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 20.0.0.1 00:34 1.00s 0.22s 0.00s w

[root@localhost log]# w ####出現這個問題,遠程終端最大化
w: 66 column window is too narrow

(2)查詢用戶登錄的歷史記錄——last、lastb 命令 last 命令用於查詢成功登錄到系統的用戶記錄,
最近的登錄情況將顯示在最前面。通過 last 命令可以及時掌握 Linux 主機的登錄情況,
若發現未經授權的用戶登錄過,則表示當前 主機可能已被入侵。last 命令的具體操作如下
[root@localhost ~]# last

lastb 命令用於查詢登錄失敗的用戶記錄,如登錄的用戶名錯誤、密碼不正確等情況都 將記錄在案。
登錄失敗的情況屬於安全事件,因爲這表示可能有人在嘗試猜解你的密碼。除 了使用 lastb 命令查看以外,
也可以直接從安全日誌文件/var/log/secure 中獲得相關信息。

[root@localhost ~]# lastb

[root@localhost ~]# tail /var/log/secure

3.程序日誌 在 Linux 操作系統中,還有相當一部分應用程序沒有使用 rsyslog 服務來管理日誌,
而 是由程序自己維護日誌記錄。例如,httpd 網站服務程序使用兩個日誌文件 access_log 和 error_log
分別記錄客戶訪問事件和錯誤事件。不同應用程序的日誌記錄格式差別較大,且 沒有嚴格使用統一的格式,
這裏不再詳細介紹。 總的來說,作爲一名合格的系統管理人員,應該提高警惕,隨時注意各種可疑狀況,
定 期並隨機檢查各種系統日誌文件,包括一般信息日誌、網絡連接日誌、文件傳輸日誌及用戶

登錄日誌記錄等。在檢查這些日誌時,要注意是否有不合常理的時間或操作記錄。例如,出 現以下現象就應多加註意。
●用戶在非常規的時間登錄,或者用戶登錄系統的 IP 地址和以往的不一樣。
●用戶登錄失敗的日誌記錄,尤其是那些一再連續嘗試進入失敗的日誌記錄。
●非法使用或不正當使用超級用戶權限。
●無故或者非法重新啓動各項網絡服務的記錄。
●不正常的日誌記錄,如日誌殘缺不全,或者是諸如 wtmp 這樣的日誌文件無故缺少 了中間的記錄文件。

另外,需要提醒管理人員注意的是,日誌並不是完全可靠的,高明的黑客在入侵系統後 經常會打掃現場。
所以管理人員需要綜合運用以上的系統命令,全面、綜合地進行審查和檢 測,切忌斷章取義,
否則將可能做出錯誤的判斷。

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