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