linux的日志文件可以幫助我們了解系統(tǒng)所處的狀態(tài),比如查出哪些用戶有登入,及其它安全相關(guān)的一些問題。
linux下的日志分析。
以下內(nèi)容,部分參考了:探討 linux 日志分析 這篇文章。
1.了解日志文件
linux的日志文件可以說是最有用的了,日志文件可以讓我們了解系統(tǒng)所處的狀態(tài),比如能查出哪些用戶有登入,這也涉及相關(guān)的安全問題。如果我們不懂得分析日志,可能我們都不知道有些用戶曾經(jīng)登入過我們的系統(tǒng)。另外系統(tǒng)出了什么問題,我們也要查看系統(tǒng)日志,比如我們經(jīng)常會進(jìn)入不了Xwindows,我們要查看系統(tǒng)日志類似XFree86.0.log等文件,再來詳細(xì)的說一下,如果我們運(yùn)行過系統(tǒng)顯示屬性方面的設(shè)置[理論上應(yīng)該叫XFree86.setup],我以Redhat 8.0來說一下這個(gè)問題,當(dāng)我們在終端或者虛擬控制臺下運(yùn)行redhat-config-xfree86時(shí),我們就能在etc/var
目錄下發(fā)現(xiàn)一個(gè)XFree86.setup.log,這個(gè)文件記錄著我們曾經(jīng)設(shè)置過的內(nèi)容以及詳細(xì)的情況。
2.日志文件所處的位置
日志文件所處的位置都在/var/log目錄下,前提是您沒有對日志配置文件/etc/syslog.conf進(jìn)行過特別的配制。
3.日志文件的配置文件
日志文件的配制文件,在/etc/syslog.conf,如果我們要修改日志配制文件,我們要首先要備份。這一點(diǎn),是我們進(jìn)行系統(tǒng)管理的首要任務(wù)。
下面的命令是備份,我是以root權(quán)限操作的,使用root權(quán)限要小心,切記。
[root@linuxsir01 root]# cp /etc/syslog.conf /etc/syslog.confBAK
當(dāng)我們把/etc/syslog.conf配制錯(cuò)了,但我們還記不清楚原來的系統(tǒng)文件是什么樣的了。這時(shí)備份文件就有極大的作用了,我們就還原回去就OK了。我們還可以再來改動這個(gè)文件。
[root@linuxsir01 root]# cp /etc/syslog.confBAK /etc/syslog.conf
4.日志配制文件都有些什么?請看!我們可以用下面的命令來查看,比如more /etc/syslog.conf
[root@linuxsir01 root]# more /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/message
s
# The authpriv file has restricted access.
authpriv.* /var/log/secure 安全驗(yàn)證日志,系統(tǒng)生成的日志文件是放在了/var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog這個(gè)是電子郵件系統(tǒng)的功能,這個(gè)日志文件是在/var/log/maillog目錄下。
# Log cron stuff
cron.* /var/log/cron[COLOR=blue]這個(gè)是計(jì)時(shí)信息
# Everybody gets emergency messages
*.emerg * 這是syslog對日志所設(shè)置的級別,emerg表示系統(tǒng)已經(jīng)不可用
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler這是syslog對news和uucp的日志所設(shè)置的級別,crit表示危急,但事故還沒有發(fā)生,將要發(fā)生。
# Save boot messages also to boot.log
local7.* /var/log/boot.log 開機(jī)系統(tǒng)日志,用local7來表示,日志文件的位置處在/var/log,日志文件是boot.log
#
# INN
#
news.=crit /var/log/news/news.crit
news.=err /var/log/news/news.err
news.notice /var/log/news/news.notice
5]日志類型
authpriv 安全性/驗(yàn)證的信息,通過這個(gè),我們可以查看比如telnet和ssh之類登入系統(tǒng)方面的日志。這對于防黑有重要作用,不可小視。
cron 任務(wù)調(diào)度信息,有點(diǎn)象windows中的計(jì)劃任務(wù),我們可以通過這個(gè)程序在什么時(shí)間做什么事。他的配制文件在 /etc/crontab中,在這里我們是說它的日志文件的配制
kern 這是系統(tǒng)內(nèi)核的日志,這個(gè)要我們自己定義存放位置,我們可以在/etc/syslog.conf中自己來定義存放位置。比如,我們可以在syslog.conf中加一行,比如是這樣的
ker.debug /var/log/kern.log
local0-local7 自定義級別,開機(jī)系統(tǒng)日志,用local7來表示,日志文件的位置處在/var/log,日志文件是boot.log
lpr 看名字也應(yīng)該知道,這是打印的日志文件,這個(gè)我們也一樣可以自己來定義。在下面,我們再逐步深入說一下如何寫系統(tǒng)日志
mail 是電子郵件的,sendmail,qmail等信息
news 是新聞組服務(wù)器的。
user 一般和戶信息
syslog 內(nèi)部log信息
auth 也是用戶登入的信息,安全性和驗(yàn)證性的日志
uucp 全稱是UNIX-TO-UNIX COPY PROTOCOL的信息
6]日志級別,日志系統(tǒng)管理員來維護(hù)系統(tǒng)的,系統(tǒng)日志的內(nèi)容太多,所以就有必要把日志按級別來排序,這樣能方便管理員發(fā)現(xiàn)比較緊急和重要的問題,以著手處理和解決。
這里有一個(gè)主次順序,也就是重要的都放在前面,級別是由高而低的。
emerg 系統(tǒng)已經(jīng)不可用,級別為緊急
alert 警報(bào),需要立即處理和解決
crit 既將發(fā)生,得需要預(yù)防。事件就要發(fā)生
warnig 警告。
err 錯(cuò)誤信息,普通的錯(cuò)誤信息
notice 提醒信息,很重要的信息
info 通知信息,屬于一般信息
debug 這是調(diào)試類信息
* 記錄所有的信息,并發(fā)到所給所有的用戶
了解了linux日志的存儲、類型等內(nèi)容后,大家最感興趣的莫過于如何分析linux日志了。
此時(shí),我們需要掌握一些 linux 日志分析命令 ,然后用這些命令或腳本對日志進(jìn)行詳細(xì)分析。
7]日志設(shè)置或者語法格式的書寫
在/etc/syslog.conf中,根據(jù)我們自己的情況,可以配制或者定義日志文件。語法格式如下,也比較簡單。。
日志類型.等級 日志存放位置[要用絕對路徑]
舉個(gè)例子來說
kern.debug /var/log/kern.log
進(jìn)一步詳細(xì)解說:[注:以RedHat 8.0為例]在RedHat 8.0中,我們能看到如下的一行。這代表什么意思呢。
authpriv.* /var/log/secure
這個(gè)代表的意思是:所有驗(yàn)證類級別的日志都存放在secure這個(gè)日志文件里。有時(shí),我們也會在/var/log目錄里,看到secure1之類的,其實(shí)也是這類的日志,我們要靈活一下。是不是?
通過這個(gè)文件,我們可以看到驗(yàn)證類的日志,比如telnet和ssh等。如果別人用telnet我們的機(jī)器,我們就要查看這個(gè)文件了。我們可以通過
#more secure | grep telnet來看,當(dāng)然用more也能一頁一頁的看過去,我的目的僅僅是想知道是不是這個(gè)文件能看到這方面的東西,比如我用機(jī)其它器telnet,我的
linux的主機(jī),就有從下面得到記錄。是不是一清二楚了?
Dec 15 15:22:59 linuxsir01 xinetd[809]: START: telnet pid=2535 from=192.168.0.6
Dec 17 01:06:42 linuxsir01 xinetd[810]: START: telnet pid=26581 from=192.168.0.6
Dec 17 17:59:05 linuxsir01 xinetd[810]: START: telnet pid=4152 from=192.168.0.8
Dec 18 02:52:59 linuxsir01 xinetd[810]: START: telnet pid=9520 from=192.168.0.6
Dec 18 03:15:55 linuxsir01 xinetd[810]: START: telnet pid=9910 from=192.168.0.6