保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障-創(chuàng)新互聯(lián)

在處理Linux操作系統(tǒng)出現(xiàn)的各種故障時,故障的癥狀是最容易發(fā)現(xiàn)的,但導致故障的原因才是最終排除故障的關鍵。熟悉Linux操作系統(tǒng)中常見的日志文件,了解一般故障的分析與解決辦法,將有助于管理員快速定位故障點,“對癥下藥”,及時解決各種系統(tǒng)問題。

創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站建設、網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鐘山做網(wǎng)站,已為上家服務,為鐘山各地企業(yè)和個人服務,聯(lián)系電話:13518219792

博文大綱:
一、分析日志文件;
二、排除系統(tǒng)啟動類故障;
三、排除文件系統(tǒng)類故障;

一、分析日志文件

日志文件是用于記錄Linux操作系統(tǒng)中各種運行消息的文件,相當于Linux主機的“日記”。不同的日志文件記載了不同類型的信息,如Linux內(nèi)核消息、用戶登錄事件、程序錯誤等。

日志文件對于診斷和解決系統(tǒng)中的問題很有幫助,因為在Linux操作系統(tǒng)中運行的程序通常會把系統(tǒng)消息和錯誤消息寫入相應的日志文件,這樣系統(tǒng)一旦出現(xiàn)問題就會“有據(jù)可查”,此外,當主機遭受 破壞時,日志文件還可以幫助尋找破壞 者留下別的痕跡。

1.主要日志文件

在Linux操作系統(tǒng)中,日志數(shù)據(jù)主要包括以下三種類型:

  • 內(nèi)核及系統(tǒng)日志:這種日志數(shù)據(jù)由系統(tǒng)服務rsyslog統(tǒng)一管理,根據(jù)其主配置文件/etc/rsyslog.conf中的設置決定將內(nèi)核消息及各種系統(tǒng)程序消息記錄到什么位置。 系統(tǒng)中有相當一部分程序會把自己的日志文件交由rsyslog管理,因而這些程序使用的日志記錄也具有相似的格式;
  • 用戶日志:這種日志數(shù)據(jù)用于記錄Linux操作系統(tǒng)用戶登錄及退出系統(tǒng)的相關信息,包括用戶名、登錄的終端、登錄時間、來源主機、正在使用的進程操作等;
  • 程序日志:有些應用程序會選擇由自己獨立管理一份日志文件(而不是交給rsyslog服務管理),用于記錄本程序運行過程中的各種事件信息。由于這些程序只負責管理自己的日志文件,因此不同程序所使用的日志記錄格式可能會存在較大的差異;

Linux操作系統(tǒng)本身和大部分的服務器程序的日志文件都默認放在目錄/var/log/下。一部分程序公用一個日志文件,一部分程序使用單個日志文件;而有些大型的服務程序由于日志文件不止一個,所以會在/var/log/目錄中建立相應的子目錄來存放日志文件,這樣既保證了日志文件目錄的結(jié)構(gòu)清晰,又可以快速定位日志文件。有相當一部分日志文件只有root用戶才有權(quán)限讀取,這保證了相關信息的安全性。

對于Linux操作系統(tǒng)中的日志文件,有必要了解其各自的用途,這樣才能在需要的時候更快地找到問題所在、及時地解決各種故障。

常見的一些日志文件,如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障

2.日志文件分析

分析日志文件的目的在于通過瀏覽日志查找關鍵信息,對系統(tǒng)服務進行調(diào)試,以及判斷發(fā)生故障的原因等。

對于大多數(shù)文本格式的日志文件(如內(nèi)核及系統(tǒng)日志、大多數(shù)的程序日志),可以使用tail、more、cat、less等命令進行查看,對于一些特殊的二進制的日志文件(如用戶日志)則需要使用特定的查詢命令。

(1)內(nèi)核及系統(tǒng)日志

rsyslog服務所使用的配置文件為/etc/rsyslog.conf。

[root@localhost ~]# grep -v "^$" /etc/rsyslog.conf 
//過濾空行
# rsyslog configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
                      ……………………                       //省略部分內(nèi)容

從配置文件中可以看出,受rsyslog服務管理的日志文件都是Linux操作系統(tǒng)中主要的日志文件,它們記錄了Linux操作系統(tǒng)中內(nèi)核、用戶認證、電子郵件、計劃任務等基本的系統(tǒng)消息。在Linux內(nèi)核中,根據(jù)日志消息的重要程度不同,將其分為不同的優(yōu)先級別(數(shù)字越小,優(yōu)先級越高,消息越重要)。如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
內(nèi)核及大多數(shù)系統(tǒng)消息被記錄到公共日志文件/var/log/messages中,而其他一些程序消息被記錄到各自獨立的日志文件中,此外日志消息還能夠記錄到特定的存儲設備中,或者直接發(fā)送給指定用戶。

對于rsyslog服務統(tǒng)一管理的大部分日志文件,使用的日志記錄格式基本上是相同的。以公共日志/var/log/messages文件的記錄格式為例,其中每一行表示一條日志消息,每一條消息均包括以下四個字段:

  • 時間標簽:消息發(fā)出的日期和時間;
  • 主機名:生成消息的計算機名稱;
  • 子系統(tǒng)名稱:發(fā)出消息的應用程序的名稱;
  • 消息:消息的具體內(nèi)容;

在有些情況下,可以設置rsyslog,使其在把日志信息記錄到文件的同時將日志信息發(fā)送到打印機進行打印,這樣無論網(wǎng)絡 非法進入 者怎么修改日志都不能清除***的痕跡。rsyslog日志服務是一個常被 破壞 的的顯著目標,破壞了它將管理員難以發(fā)現(xiàn) 非法進入 及相關信息,因此要特別注意監(jiān)控其守護進程及配置文件。

(2)用戶日志

在wtmp、btmp、lastlog等日志文件中,保存了系統(tǒng)用戶登錄、退出等相關的時間消息。但是這些文件都是二進制的數(shù)據(jù)文件,不能直接使用tail、less等文本查看工具進行瀏覽,需要使用who、w、users、last和lastb等用戶查詢命令來獲取日志信息。

1)查詢當前登錄的用戶情況——users、who、w命令

user命令只是簡單地輸出當前登錄的用戶名稱,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那么他的用戶名將顯示與其相同的次數(shù)。操作如下:

[root@localhost ~]# users
(unknown) root root root

who命令用于報告當前登錄到系統(tǒng)中的每個用戶的信息。使用該命令,系統(tǒng)管理員可以查看當前系統(tǒng)存在哪些不合法的用戶,從而對其進行審計和處理。who的默認輸出包括用戶名、終端類型、登錄日期及遠程主機。操作如下:

[root@localhost ~]# who
(unknown) :0           2019-09-10 00:01 (:0)
root     tty2         2019-09-10 00:10
root     pts/0        2019-09-09 16:25 (192.168.1.253)
root     tty3         2019-09-09 16:42

w命令用于顯示當前系統(tǒng)中的每個用戶及其運行的進程信息,比users、who命令的輸出內(nèi)容更豐富一些,操作如下:

[root@localhost ~]# w
 16:49:29 up 48 min,  4 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCU WHAT
root     tty2                      00:10     ?     0.84s  0.84s -bash
root     pts/0    192.168.1.253    16:25    1.00s  0.10s  0.06s w
root     tty3                      16:42     ?     0.08s  0.03s -bash
2)查詢用戶登錄的歷史記錄——last、lastb命令

last命令用于查詢成功登錄到系統(tǒng)的用戶記錄,最近的登錄情況將顯示在最前面。

[root@localhost ~]# last
xiaoli   tty3                          Thu Sep 12 04:49   still logged in   
root     pts/0        192.168.1.253    Thu Sep 12 04:47   still logged in   
root     tty2                          Thu Sep 12 04:46   still logged in

lastb命令用于查詢登錄失敗的用戶記錄,如登錄的用戶名錯誤,密碼不正確等情況都將記錄下來。

[root@localhost ~]# lastb
xiaowang tty3                          Thu Sep 12 04:52 - 04:52  (00:00)    
xiaoli   tty3                          Thu Sep 12 04:52 - 04:52  (00:00)

除了使用lastb命令以外,還可以查看安全日志/var/log/secure。查看日志文件可以使用webalizer、Awstats軟件可以通過圖形化查看日志,通俗易懂!

3)程序日志

在Linux操作系統(tǒng)中,還有相當一部分應用程序沒有使用rsyslog服務來管理日志,而是由程序自己維護日志記錄。例如:http網(wǎng)站服務等。不同應用程序i的日志記錄格式差別很大,且沒有嚴格使用統(tǒng)一的格式。

作為一名合格的系統(tǒng)管理人員,應該提高警惕,隨時注意各種可疑狀況,定期并隨機檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡連接日志、文件傳輸日志及用戶登錄日志記錄等。在檢查這些日志時,要注意是否有不和常理的時間或操作記錄。

出現(xiàn)以下情況之一,就需要多加注意:

  • 用戶在非常規(guī)的時間登錄,或者用戶登錄系統(tǒng)的IP地址和往常的不一樣;
  • 用戶登錄失敗的日志記錄,尤其是那些一再連續(xù)嘗試進入系統(tǒng)失敗的日志記錄;
  • 非法使用或不正當使用超級用戶權(quán)限;
  • 無故或者非法重新啟動各項網(wǎng)絡服務的記錄;
  • 不正常的日志記錄,如日志殘缺不全,或者比如wtmp這樣的日志文件無故缺少了中間的記錄文件。

另外,需要管理人員注意的是,日志并不是完全可靠的,聰明的黑 客在進入系統(tǒng)后經(jīng)過會打掃現(xiàn)場。所以管理人員需要綜合運用以上的系統(tǒng)命令,全面、綜合地進行審查和檢測。切記不要斷章取義,否則將會做出錯誤的判斷。

二、排除系統(tǒng)啟動類故障

Linux操作系統(tǒng)的啟動過程涉及到MBR、GRUB啟動菜單、系統(tǒng)初始化配置文件等各方面,其中任何一個環(huán)節(jié)出現(xiàn)故障都可能導致系統(tǒng)啟動失常,因此一定要在注意好相關文件的備份工作。

1.MBR扇區(qū)故障

MBR扇區(qū)包括三部分:

  • 系統(tǒng)引導程序(GRUB引導菜單占用446字節(jié));
  • 分區(qū)表(最多可以有四個主分區(qū),每個分區(qū)占用16字節(jié));
  • 扇區(qū)的結(jié)束標志占用2字節(jié);

MBR位于物理硬盤的第一個扇區(qū)(512字節(jié)),該扇區(qū)又稱為主引導扇區(qū)(MBR扇區(qū)),除了包含系統(tǒng)引導程序的部分數(shù)據(jù)外部分數(shù)據(jù)外,還包含整個硬盤的分區(qū)表記錄。當主引導扇區(qū)發(fā)生故障時,將很有可能無法進入引導才散,或者無法找到正確的分區(qū)位置而無法加載系統(tǒng),通過該硬盤引導主機時很可能進入黑屏、死機狀態(tài)。

通過下面示例我們開始對MBR扇區(qū)進行備份、模擬破壞、修復的過程:

(1)備份MBR扇區(qū)數(shù)據(jù)

由于MBR扇區(qū)中包含了整個硬盤的分區(qū)表記錄,因此該扇區(qū)的備份文件必須存放到其他的存儲設備中,否則在恢復時將無法讀取到備份文件。例如:

[root@localhost ~]# mkdir /backup
[root@localhost ~]# mount /dev/sdb1 /backup
[root@localhost ~]# dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
//使用dd命令將第一塊硬盤中的MBR扇區(qū)數(shù)據(jù)備份到第二塊硬盤sdb1分區(qū)中

關于硬盤分區(qū)等詳細情況可以參考博文:Linux磁盤和文件系統(tǒng)管理(一)

(2)模擬MBR扇區(qū)故障

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
//使用/dev/zero(無限寫零)文件覆蓋原本的MBR扇區(qū)數(shù)據(jù)

系統(tǒng)重啟,將會出現(xiàn)“Operating system not found”的提示信息,表示無法找到可用的操作系統(tǒng),因此無法啟動主機。

(3)從備份文件中恢復MBR扇區(qū)數(shù)據(jù)

由于MBR扇區(qū)被破壞以后,就無法再從硬盤啟動系統(tǒng)化,所以需要使用其他硬盤中的操作系統(tǒng)進行引導,或者使用Centos系統(tǒng)的安裝光盤進行引導,不管使用什么方式,目的都是相同的——獲得一個可以執(zhí)行命令的Shell環(huán)境,以便從備份文件中恢復MBR扇區(qū)中的數(shù)據(jù)。

我們使用系統(tǒng)盤引導為例,操作如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
完成以上操作后,就會出現(xiàn)一個帶“sh-4.2#”提示符的bash環(huán)境,如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
完成恢復操作以后,執(zhí)行“exit”命令退出當前臨時shell環(huán)境,系統(tǒng)將會自動重啟!

2.GRUB引導菜單故障

GRUB是大多數(shù)Linux操作系統(tǒng)默認使用的引導程序,可以通過啟動菜單的方式選擇進入不同的操作系統(tǒng)(如果有別的系統(tǒng)),當配置文件/boot/grub2/grub.cfg 丟失,或者關鍵配置出現(xiàn)錯誤,或者MBR中的引導程序遭到破壞時,
提前備份grub配置文件:

[root@localhost ~]# vim /boot/grub2/grub.cfg 
[root@localhost ~]# mv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
//將原本的grub配置文件改名

重啟之后,Linux主機啟動后可能會出現(xiàn)“grub>”的提示符,無法完成進一步的系統(tǒng)啟動過程。如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
解決方案:
進入急救模式,如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
完成以上操作后,就會出現(xiàn)一個帶“sh-4.2#”提示符的bash環(huán)境,具體操作命令如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障

當選擇啟動方式為光盤啟動時,建議修改完成之后依然選擇硬盤啟動,也可以根據(jù)光盤啟動的提示信息手工選擇本地硬盤啟動,如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障

完成以后操作后,系統(tǒng)就可正常啟動!

注意:CentOS7因為使用的是grub2,配置文件同grub有不少變化,一定要切記備份grub.cfg以便恢復。

遺忘root密碼可以參考博文:遺忘Linux系統(tǒng)root密碼所采取的必要措施

無論是MBR扇區(qū)故障、GRUB引導菜單還是遺忘root密碼相關操作,都可進入急救模式進行修復。

三、排除文件系統(tǒng)類故障

文件系統(tǒng)及磁盤中所存儲的數(shù)據(jù)的價值是無法估量的,管理員的工作職責之一就是必須確保數(shù)據(jù)的安全。由于磁盤屬于易損耗品,無法預估它什么時候會損壞,所以最好的辦法就是建立完整的備份機制。當系統(tǒng)出現(xiàn)文件系統(tǒng)或磁盤故障時沒一定要慎重處理。

1.修復文件系統(tǒng)

在Linux主機中,可能會因為非正常關機、突然斷電、設備數(shù)據(jù)讀寫異常等原因?qū)е挛募到y(tǒng)破壞。比較常見的是超級快損壞。超級快是文件系統(tǒng)的核心“檔案”,它記錄了該文件系統(tǒng)的類型、大小、空閑磁盤塊等信息。

當文件系統(tǒng)的超級塊數(shù)據(jù)損壞是,Linux將無法識別該文件系統(tǒng),掛載時會出現(xiàn)錯誤提示以致不能正常使用。執(zhí)行下列操作可以破壞文件的超級塊數(shù)據(jù)庫。命令如下:

[root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
記錄了4+0 的讀入
記錄了4+0 的寫出
2048字節(jié)(2.0 kB)已復制,0.000868901 秒,2.4 MB/秒
[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/sdb1 /a
mount: /dev/sdb1 寫保護,將以只讀方式掛載
mount: 未知的文件系統(tǒng)類型“(null)”
[root@localhost ~]# vim /etc/fstab
                      ……………………                //省略部分內(nèi)容
/dev/sdb1               /a                      xfs     defaults        0 1
//實現(xiàn)自動掛載

重啟系統(tǒng)后,會出現(xiàn)以下錯誤,如圖:
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障
修復完畢!??!

2.磁盤資源耗盡故障

顯而易見,當一個文件系統(tǒng)的磁盤空間耗盡以后,將無法繼續(xù)在該分區(qū)中創(chuàng)建新的文件數(shù)據(jù),從而導致故障的出現(xiàn)。

當因為根分區(qū)磁盤空間不足,而無法啟動進入Linux操作系統(tǒng)時,可以進入急救模式,清理占用大量空間的文件。可以使用命令“dd if=/dev/zer0 of=/a bs=1M count=999999”模擬故障。

除此之外,在每一個文件系統(tǒng)中,能夠使用的文件數(shù)量(對應i結(jié)點的數(shù)量)也是有限的,當一個文件系統(tǒng)被格式化后,其i結(jié)點數(shù)也就固定了,如果用戶故意消耗i結(jié)點數(shù)量,那么,及時該分區(qū)有大量的空間,也不可以創(chuàng)建文件。

通過示例了解一下:

(1)模擬i結(jié)點耗盡故障

[root@localhost ~]# mkdir /a
[root@localhost ~]# mount /dev/sdb1 /a
[root@localhost ~]# df -i /a
文件系統(tǒng)          Inode 已用(I)  可用(I) 已用(I)% 掛載點
/dev/sdb1      10485248       3 10485245       1% /a

編寫一個小腳本,消耗i結(jié)點數(shù)量,腳本內(nèi)容如下:

[root@localhost ~]# vim a.sh
#!/bin/bash
i=1
while [ $i -le 310485245 ]
do
touch /a/file$i
let i++
done
[root@localhost ~]# sh a.sh &
[root@localhost ~]# df -i /a
文件系統(tǒng)          Inode 已用(I)  可用(I) 已用(I)% 掛載點
/dev/sdb1      10485248    0   3 10485245       100% /a
[root@localhost ~]# touch /a/newfile
touch: 無法創(chuàng)建“/a/newfile” :設備上沒有空間
[root@localhost ~]# df -hT /a
文件系統(tǒng)            類型  容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root xfs    17G  4.5G   13G   26% /

(2)修復i結(jié)點故障

[root@localhost ~]# rm -rf /a/file*

3.檢測硬盤壞道

磁盤壞道分為邏輯壞道和物理壞道來哪種,前者是由于軟件操作不當造成,可以使用軟件修復工具進行修復,而后者是物理性損壞,只能通過更改磁盤分區(qū)或扇區(qū)的占用位置進行進行改善,從而排除包含壞塊的磁盤空間,若磁盤出現(xiàn)以下現(xiàn)象,則有可能是磁盤出現(xiàn)壞道,需要檢測和修復。

  • 讀取磁盤中的數(shù)據(jù)時,磁盤設備發(fā)出異響;
  • 訪問磁盤中的某個文件時,反復讀取且出錯,提示文件損壞;
  • 對于新建立的分區(qū)無法格式化;
  • 系統(tǒng)使用該磁盤時,頻繁死機;
  • 此案出現(xiàn)壞道后,如果不及時更換或進行技術處理,壞道則會越來越多,且可能造成頻繁死機和數(shù)據(jù)丟失的后果,因此必要時應該對磁盤進行定期檢測,檢測是否存在壞道。

在Linux系統(tǒng)中,檢測磁盤的壞道情況可以使用badblocks命令進行,結(jié)合“-s”用于顯示進度信息;“-v”選項用于顯示詳情。

[root@localhost ~]# badblocks -sv /sdb/sdb

在長期使用計算機的過程中,文件系統(tǒng)和磁盤類的故障現(xiàn)象很難完全避免,對于此類故障的修復需要十分謹慎,如果操作不當可能會加重數(shù)據(jù)破壞的程度。當發(fā)現(xiàn)磁盤中存在壞道時,應盡快停止系統(tǒng)中的應用服務、備份相關數(shù)據(jù),必要時立即關閉系統(tǒng)一方磁盤壞道進一步擴散,避免導致更大的損失。對于存在壞道的硬盤設備,應使用其他完好的硬盤進行替換。

———————— 本文至此結(jié)束,感謝閱讀 ————————

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

標題名稱:保證Linux系統(tǒng)安全之分析和排查系統(tǒng)故障-創(chuàng)新互聯(lián)
瀏覽路徑:http://bm7419.com/article4/hcioe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、移動網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)頁設計公司、App設計、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設