時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
日志對于安全來說,非常重要,它記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,你可以通過他來檢查錯(cuò)誤發(fā)生的原因,或者受到攻擊時(shí)攻擊者留下的痕跡。日志主要的功能有:審計(jì)和監(jiān)測。他還可以實(shí)時(shí)的監(jiān)測系統(tǒng)狀態(tài),監(jiān)測和追蹤侵入者等等。正因?yàn)槿绱,撫琴煮酒特的將它整理成一篇比重跟硬件篇、網(wǎng)絡(luò)篇并列的文章,希望大家能從中學(xué)習(xí)到對自己有用的東西。
一、配置syslog(gyl4802959同學(xué)撰寫)
目前,linux依舊使用syslogd作為日志監(jiān)控進(jìn)程,對其進(jìn)行必要的配置能減少很多麻煩,并且可更有效的從系統(tǒng)日志監(jiān)控到系統(tǒng)的狀態(tài)。理解并完善一個(gè)syslog的配置,對于系統(tǒng)管理員來說顯得尤為重要。
/etc/syslog.conf根據(jù)如下的格式定義規(guī)則: facility.level action
設(shè)備.優(yōu)先級 動(dòng)作facility.level 字段也被稱為seletor(選擇條件),選擇條件和動(dòng)作之間用空格或tab分割開。
#號開頭的是注釋,空白行會自動(dòng)跳過。
1、facility
facility定義日志消息的范圍,其可使用的key有: auth -由 pam_pwdb 報(bào)告的認(rèn)證活動(dòng)。
authpriv -包括特權(quán)信息如用戶名在內(nèi)的認(rèn)證活動(dòng)
cron -與 cron 和 at 有關(guān)的計(jì)劃任務(wù)信息。
daemon -與 inetd 守護(hù)進(jìn)程有關(guān)的后臺進(jìn)程信息。
kern -內(nèi)核信息,首先通過 klogd 傳遞。
lpr -與打印服務(wù)有關(guān)的信息。
mail -與電子郵件有關(guān)的信息
mark - syslog內(nèi)部功能用于生成時(shí)間戳
news -來自新聞服務(wù)器的信息
syslog -由 syslog 生成的信息
user -由用戶程序生成的信息
uucp -由 uucp 生成的信息
local0-local7 -與自定義程序使用
* 通配符代表除了 mark 以外的所有功能除mark為內(nèi)部使用外,還有security為一個(gè)舊的key定義,等同于auth,已經(jīng)不再建議使用。
2、level級別
level定義消息的緊急程度。按嚴(yán)重程度由高到低順序排列為: emerg -該系統(tǒng)不可用,等同panic
alert -需要立即被修改的條件
crit -阻止某些工具或子系統(tǒng)功能實(shí)現(xiàn)的錯(cuò)誤條件
err -阻止工具或某些子系統(tǒng)部分功能實(shí)現(xiàn)的錯(cuò)誤條件,等同error
warning -預(yù)警信息,等同warn
notice -具有重要性的普通條件
info -提供信息的消息
debug -不包含函數(shù)條件或問題的其他信息
none -沒有重要級,通常用于排錯(cuò)
* 所有級別,除了none其中,panic、error、warn均為舊的標(biāo)識符,不再建議使用。
在定義level級別的時(shí)候,需要注意兩點(diǎn): 1)優(yōu)先級是由應(yīng)用程序在編程的時(shí)候已經(jīng)決定的,除非修改源碼再編譯,否則不能改變消息的優(yōu)先級;
低的優(yōu)先級包含高優(yōu)先級,例如,為某個(gè)應(yīng)用程序定義info的日志導(dǎo)向,則涵蓋notice、warning、err、crit、alert、emerg等消息。(除非使用=號定義)
3、selector選擇條件
通過小數(shù)點(diǎn)符號"."把facility和level連接在一起則成為selector(選擇條件)。
可以使用分號";"同時(shí)定義多個(gè)選擇條件。也支持三個(gè)修飾符: * - 所有日志信息
= - 等于,即僅包含本優(yōu)先級的日志信息
! - 不等于,本優(yōu)先級日志信息除外
4、action動(dòng)作
由前面選擇條件定義的日志信息,可執(zhí)行下面的動(dòng)作: file-指定日志文件的絕對路徑
terminal 或 print -發(fā)送到串行或并行設(shè)備標(biāo)志符,例如/dev/ttyS2
@host -遠(yuǎn)程的日志服務(wù)器
username -發(fā)送信息本機(jī)的指定用戶信息窗口中,但該用戶必須已經(jīng)登陸到系統(tǒng)中
named pipe -發(fā)送到預(yù)先使用 mkfifo 命令來創(chuàng)建的 FIFO 文件的絕對路徑※注意,不能通過"|/var/xxx.sh"方式導(dǎo)向日志到其他腳本中處理。
5、舉例
例如: *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
#把除郵件、新聞組、授權(quán)信息、計(jì)劃任務(wù)等外的所有通知性消息都寫入messages文件中。
mail,news.=info /var/adm/info
#把郵件、新聞組中僅通知性消息寫入info文件,其他信息不寫入。
mail.*;mail.!=info /var/adm/mail
#把郵件的除通知性消息外都寫入mail文件中。
mail.=info /dev/tty12
#僅把郵件的通知性消息發(fā)送到tty12終端設(shè)備
*.alert root,joey
#如果root和joey用戶已經(jīng)登陸到系統(tǒng),則把所有緊急信息通知他們
*.* @finlandia
#把所有信息都導(dǎo)向到finlandia主機(jī)(通過/etc/hosts或dns解析其IP地址)※注意:每條消息均會經(jīng)過所有規(guī)則的,并不是唯一匹配的。
也就是說,假設(shè)mail.=info信息通過上面范例中定義的規(guī)則時(shí),/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主機(jī)都會收到相同的信息。這樣看上去比較煩瑣,但可以帶來的好處就是保證了信息的完整性,可供不同地方進(jìn)行分析。
#p#副標(biāo)題#e#
二、messages日志
首先說下我們最關(guān)注的系統(tǒng)/var/log/messages,這東東不僅是咱們服務(wù)器的系統(tǒng)日志,很多時(shí)候它也做了許多服務(wù)的日志,這也是它被稱為雜貨鋪的原因,值得重點(diǎn)關(guān)注,大家一般都喜歡用以下命令看最后十條日志
tail -n10 /var/log/messages
其實(shí)還可以將一段日志保存成文件,正用練下自己的awk、sed和grep水平;或者直接用vim來查看,這也是算是一種經(jīng)驗(yàn)之談吧。我以前配置bind的主從復(fù)制,有時(shí)因?yàn)闄?quán)限的原因報(bào)錯(cuò);這時(shí)可以在一臺報(bào)錯(cuò)的服務(wù)器上用命令tail -f /var/log/messages實(shí)時(shí)查看服務(wù)器的變化情況,從中查找錯(cuò)誤的蛛絲馬跡;事實(shí)證明,效果很好,而且用于lvs+keepalived的排錯(cuò)效也不錯(cuò),其它事例依此類推。
三、secure的用法
/var/log/secure:記錄登入系統(tǒng)存取數(shù)據(jù)的文件,例如 pop3, ssh, telnet, ftp 等都會被記錄,我們可以利用此文件找出不安全的登陸IP。
四、記錄登陸者的數(shù)據(jù)
/var/log/wtmp:記錄登入者的訊息數(shù)據(jù),由于本文件已經(jīng)被編碼過(為二進(jìn)制文件),所以必須使用 last指令來取出文件的內(nèi)容,你用cat等命令直接查看此文件是不行的。
五、lastlog記錄系統(tǒng)時(shí)間
/var/log/lastlog : 記錄每個(gè)使用者最近簽入系統(tǒng)的時(shí)間, 因此當(dāng)使用者簽入時(shí), 就會顯示其上次簽入的時(shí)間,您應(yīng)該注意一下這個(gè)時(shí)間, 若不是您上次簽入的時(shí)間, 表示您的帳號可能被人盜用了。 此檔可用 /usr/bin/lastlog 指令讀取(Freebsd下為/usr/sbin/lastlogin)。
六、用dmesg查看啟動(dòng)消息
dmesg提供了一個(gè)簡單的方法查看系統(tǒng)啟動(dòng)信息。當(dāng)Linux啟動(dòng)的時(shí)候,內(nèi)核的信息被存入內(nèi)核ring緩存當(dāng)中,dmesg可以顯示緩存中的內(nèi)容。默認(rèn)情況下,dmesg打印內(nèi)容到屏幕上面,當(dāng)然你可以重定向輸出到一個(gè)文件。如果硬件損壞的話,在dmesg日志里是有顯示的,可用以下命令來查看dmesg | grep error
七、服務(wù)器的郵件日志
服務(wù)器的郵件為/var/log/messages,如果要用專業(yè)的日志分析工具來分析的話,我推薦用Awstats;由于公司的開發(fā)對郵件的要求比較低,所以我?guī)退麄兣渲玫木褪亲詈唵蔚膕endmail,有時(shí)看看郵件日志里的status狀態(tài)來判斷郵件到底有沒有正確發(fā)送;在配置Nagios服務(wù)器,我也習(xí)慣用此日志來判斷報(bào)警郵件到底有沒有發(fā)送,如果對自己的shell水平足夠自信,也可以寫腳本來收集郵件服務(wù)器的返回狀態(tài)等,但專業(yè)的事情,建議還是由專業(yè)的工具來做,特別是郵件負(fù)載比較大時(shí),每天幾百萬條日志或上千萬條日志不是開玩笑的。
八、日志文件的專業(yè)工具
像系統(tǒng)的一些服務(wù),比如Apache、nginx、Squid、還有mysql,都有自己的特定的日志文件,由于格式比較復(fù)雜,也推薦用專業(yè)工具,如Awstats、Cacti來分析,現(xiàn)在用cacti用得比較多是用它分析Nginx負(fù)載均衡器的一段時(shí)間的并發(fā)情況。
九、輸出Iptables日志到一個(gè)指定的文件(logboy同學(xué)撰寫)
Iptables的man參考頁中提到: 我們可以使用Iptables在Linux內(nèi)核中建立, 維護(hù)和檢查IP包過濾規(guī)則表。幾個(gè)不同的表可能已經(jīng)創(chuàng)建, 每一個(gè)表包含了很多內(nèi)嵌的鏈, 也可能包含用戶自定義的鏈。Iptables默認(rèn)把日志信息輸出到/var/log/messages文件。不過一些情況下你可能需要修改日志輸出的位置。下面向大家介紹如何建立一個(gè)新的日志文件/var/log/iptables.log。通過修改或使用新的日志文件, 你可以創(chuàng)建更好的統(tǒng)計(jì)信息或者幫助你分析網(wǎng)絡(luò)攻擊信息。
(1). Iptables默認(rèn)的日志文件
例如, 如果你輸入下面的命令, 屏幕將顯示/var/log/messages文件中的Iptables日志信息:
# tail -f /var/log/messages
輸出:
Oct 4 00:44:28 debian gconfd (vivek-4435):Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults"to a read-only configuration source at position 2Oct 4 01:14:19 debian kernel:IN=ra0 OUT= MAC=00:17:9a:0a:f6:44:00:08:5c:00:00:01:08:00SRC=200.142.84.36 DST=192.168.1.2LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=18374DF PROTO=TCP SPT=46040 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
(2).輸出Iptables日志信息到一個(gè)指定文件的方法
打開你的/etc/syslog.conf文件:
# vi /etc/syslog.conf
在文件末尾加
關(guān)鍵詞標(biāo)簽:Linux,服務(wù)器
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會話GNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址linux tc實(shí)現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤IO讀寫負(fù)載