国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

認識與分析登錄檔

2024-07-21 02:36:04
字體:
來源:轉載
供稿:網友

  什么是登錄檔、干嘛要分析登錄檔
  這部分是最輕易被新手所忽略的,那就是具體而確實的紀錄或者是備份系統的登錄檔。 什么是登錄檔呢?簡單的說,就是記錄系統活動記錄的幾個檔案,例如:何時、何地(來源 ip )、何人( login name )、做了什么動作,另外就是系統在什么時候做了什么樣的行為時,發生了什么樣的事件等等,要知道的是,我們的 linux 主機在背景之下,有相當多的 daemons 在工作著,那么這些工作中的程序總是會有一些訊息顯示,這些顯示的訊息就是給記錄在登錄檔當中啦,也就是說,記錄這些系統的重要訊息,就是登錄檔所進行的紀錄工作的內容了。而由于這些記錄的工作內容對于系統的資訊太具體了,若被取得將可能影響到系統的安全性,因此,通常這些登錄檔只有 root 可以進行視察的功能!
  那么為何要記錄與解析登錄檔呢?這是由于記錄檔有幾個重要的功能:
  · 解決系統的錯誤:這個對于系統治理員來說是很重要的資訊,例如:開機的過程當中偵測到的硬體訊息資料會記錄到記憶體當中,由于這些偵測的資訊可以提供我們了解硬體資訊,所以假如你的系統發生問題時,可以下達 dmesg 看看硬體的偵測有沒有發生錯誤呢!另外,假如系統資源被耗盡、核心活動發生錯誤等等事件發生的時候,則系統登錄檔亦會將錯誤的訊息記錄在登錄檔中(通常是 /var/log/messages ),這些都可以藉以取得錯誤發生時的資訊,并加以克服問題?。?
  · 解決網路服務的問題:在安裝或設定新服務的套件時,最常使用到這個功能了!例如在安裝啟動 sendmail 時,假如 sendmail 無法提供服務的時候,那么無法提供服務的問題則會被紀錄到登錄檔當中去,則只要分析登錄檔就可以了解問題點,并藉以解決問題啦!( 所以我們常說『天助自助者』是真的啦!察看(1)螢幕上面的錯誤訊息與(2)登錄檔的錯誤資訊,幾乎可以解決大部分的 Linux 問題! )
  · 記錄登錄資訊:這個東西相當的重要!例如:有天您的 apache 這個 WWW 服務掛了,你怎么知道何時掛掉的?而最后登入者是誰?!這都可以藉由分析 apache 的登錄檔來取得資訊;此外,萬一有一天您的系統被入侵,并且被利用來攻擊他人的主機,這個時候對方的主機查出是您的 Linux 在進行攻擊的行為,這個時候你要如何告知對方您的主機是由于被入侵所導致的問題,并且協助對方繼續往來源追查呢?!呵呵!此時登錄檔可是相當重要的呢!
  因此,一個有經驗的主機治理員,會隨時隨地查閱一下自己的登錄檔,以隨時把握系統的最新脈動!那么見的幾個登錄檔有哪些呢?一般而言,有下面幾個:
  · /var/log/secure:記錄登入系統存取資料的檔案,例如 pop3, ssh, telnet, FTP 等都會記錄在此檔案中;
  · /var/log/wtmp:記錄登入者的訊息資料,由于本檔案已經被編碼過,所以必須使用 last 這個指令來取出檔案的內容;
  · /var/log/messages:這個檔案相當的重要,幾乎系統發生的錯誤訊息(或者是重要的資訊)都會記錄在這個檔案中;
  · /var/log/boot.log:記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息;
  · /var/log/maillog 或 /var/log/mail/*:紀錄郵件存取或往來( sendmail 與 pop3 )的使用者記錄;
  · /var/log/cron:這個是用來記錄 crontab 這個例行性服務的內容的!
  · /var/log/httpd, /var/log/news, /var/log/MySQLd.log, /var/log/samba, /var/log/PRocmail.log: 分別是幾個不同的網路服務的記錄檔啦!
  好了,那么記錄了這些登錄檔之后,我要做什么分析呀?。炕旧?,一個好的系統治理員大概都知道『一部主機負責的服務最好能少盡量少』,這是什么意思呢?也就是說,這部主機為郵件主機那么就專門負責郵件工作,不要還搞 WWW 服務!這樣有幾個好處,除了系統的安全性較佳之外(因為開的 port 變少了?。涗洐n的解析也會比較簡單!因為我們的 /var/log/secure 記錄的登入者資訊就會比較有一致性!那么我們就可以查詢一下每日登入的使用者帳號啦與錯誤訊息啦等等的?。ó斎粏?,假如你的頻寬夠、經驗豐富的話,那么一部主機上面安裝所有的網路服務也是可以的啦!)基本上,檢查/var/log/messages、/var/log/secure這些個檔案也就相當夠了!因為系統發生的錯誤或者是警告訊息通常都會寫入這個檔案中。
  但是,假如我手邊有數十部主機怎么辦?我要不要一部一部去察看 log file 呢?呵呵!那樣察看會死人ㄋㄟ?因此,我們底下也使用一個簡易的登錄檔來分析 Red Hat 或 Mandrake 這兩種 Linux distribution 的登錄檔吧!
  Linux 登錄檔的規劃: syslogd, logrotate,
  在系統的登錄檔系統當中,大多以一支常駐程式來進行寫入這些訊息的這個工作,那就是 syslogd 這支程式啦!另外,由于登錄檔假如一直長大的話,那么這些登錄檔的寫入動作將會很沒有效率,這是因為檔案太大時,ASCII 格式碼的資料檔案寫入比較麻煩的緣故!那么怎么進行登錄檔資料的備份工作呢?呵呵!那就使用 logrotate 吧!將資料進行輪轉( rotate )?什么是輪轉??。ㄎ舀台吲_語不輪轉呦?。浚┢鋵嵰部梢苑Q為輪替啦!基本上,就是將舊的 log 檔案更改名稱,然后建立一個空的 log 檔案,如此一來,新的 log 檔案將從零開始記錄,然后只要將舊的 log 檔案留下一陣子,嗯!那就可以達到將登錄檔『輪轉』的目的啦!此外,假如舊的紀錄(大概要保存幾個月吧!)保存了一段時間沒有問題,那么就可以讓系統自動的將他砍掉,免得占掉很多寶貴的硬碟空間說?。ㄅe個例子來說,我的 WWW 網站一個月的登錄檔,所占掉的硬碟空間大小,大概就有 1GB 這么多....而且都是純文字檔....很可怕吧?。?
  所以說,基本上,針對 log 檔案來設計的服務有這兩支:
  o syslogd:進行系統或者是網路服務的登錄檔記錄工作;
  o logrotate:將舊的資料更名,并且建立新的登錄檔,以保持登錄檔的『新鮮』,并視設定將最舊的登錄檔刪除。

  所以,接著下來我們來談一談怎么樣規劃這兩支程式呢?!就由 syslogd 這支程式先談起吧!究竟得先有登錄檔,才可以進行 logrotate 呀!您說是吧???
  o syslogd:
  我們在Linux里面預設就已經使用了syslogd這支程式來記錄系統的登入資料,不相信的話,你可以使用ps來查詢一下:
  [root @test root]# ps -auxgrep syslog root    782 0.0 0.8 1340 508 ?    S  Oct30  0:00 syslogd -m 0 root   11044 0.0 1.1 2408 732 pts/1  S  00:03  0:00 grep syslog
  o  
  看到syslog這個服務名稱了吧?!呵呵!所以知道他已經在背景底下工作啰!syslog 這支程式可以提供『系統登入資訊記錄』及『Kernel錯誤或警示資訊記錄』等功能,此外,他還提供了『本地端與遠端電腦的登錄資訊記錄』功能,所以,可以將遠端的主機登入資訊同時記錄在本地端呢!很不錯的功能吧??!此外,目前正規使用的系統服務中,大都預設支援以 syslog 這一個服務來記錄他的登錄檔案資料,例如apache, samba, sendmail 等等。而通常syslog提供的記錄參數主要有:
  § 事件發生時間;
  § 主機名稱;
  § 啟動此事件的服務名稱(例如 httpd, samba...)
  § 訊息資料內容
  等等這些資訊,當然,這些資訊的具體度是可以修改的,此外,這些資訊可以作為系統除錯之用呢!我們先來看一下/var/log/secure的內容顯示些什么呢?
  [root @test root]# vi /var/log/secure Nov 4 16:28:35 test xinetd[7831]: START: telnet pid=7841 from=192.168.1.11 Nov 4 16:28:35 test xinetd[7841]: FAIL: telnet address from=192.168.1.11 Nov 4 23:41:17 test sshd[10803]: Accepted passWord for test from 192.168.1.11 port 3117 ssh2 Nov 4 23:41:17 test sshd(pam_unix)[10805]: session opened for user test by (uid=500) Nov 4 23:41:29 test su(pam_unix)[10838]: authentication failure; logname=test uid=500 euid=0 tty= ruser=test rhost= user=root Nov 4 23:41:34 test su(pam_unix)[10839]: session opened for user root by test(uid=500)
  在上面的表格中,可以看到每筆記錄的主要內容是:
  <日期與時間><主機名稱><服務名稱><顯示訊息>
  以第一筆資料來看,<日期是 Nov 4 的 16:28:35 時候>,在<主機 test 當中>,<那個 xinetd 服務的內容有資料啦>,<該程序的 PID 為 7831,顯示的訊息,說的是telnet這個由xinetd啟動的服務有人登入,登入者的IP是192.168.1.11>,這樣夠具體了吧!還有很多的資訊值得看的呢!尤其是/var/log/messages的內容。然后,不要忘記了,在最后一筆資料中,還記錄了可以使用su的使用者的uid為500,帳號名稱為test,那么假如這個資料被人家奪走了,呵呵!未來外面的cracker將可能試圖以test這個帳號來猜測你的密碼,并加以破解,嗯!真的很重要吧!所以這些資料很多都不能外流呢!
  好了,再來看到我們要如何來設定 syslogd 呢?!剛剛說到 syslog 可以記錄我們系統中的幾乎所有的預設的系統工作,那么萬一我的網路服務是自行設定的呢?!例如以 Tarball 安裝好的服務套件。OK!我們可以藉由修改 syslog 的參數檔來達到這個目的。那么預設的 syslog 參數檔放在哪里呢?!
  § /etc/syslog.conf
  其實預設的 syslogd 程式的參數檔案就是 /etc/syslog.conf 這個檔案內容啦!這個檔案的內容可以規定『什么服務需要被記錄、該服務被紀錄的訊息等級如何?』。基本上,可以使用底下的句子語法來說明:
  服務名稱.訊息等級   存放或顯示地點
  § 服務名稱:例如 mail, http, news, cron, at 等等的服務名稱;
  § 訊息等級:總共分成下列幾種等級:
  § info : 提示一些訊息資料;
  § notice : 注重!需要比較留意的訊息;
  § waring

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江城| 乐都县| 怀远县| 宁武县| 巩义市| 乐安县| 延吉市| 潢川县| 夏津县| 大余县| 威海市| 安溪县| 洮南市| 屏东市| 察雅县| 阿拉善盟| 武汉市| 太白县| 金山区| 海晏县| 大安市| 北流市| 南丹县| 义乌市| 三台县| 左云县| 南华县| 额尔古纳市| 奎屯市| 威信县| 铁力市| 合川市| 略阳县| 平阴县| 社旗县| 高雄县| 卢龙县| 苏州市| 香港| 浦县| 德格县|