Linux的日誌文件配置方法

日誌也應該是用戶注意的地方。不要低估日誌文件對網絡安全的重要作用,因爲日誌文件能夠詳細記錄系統每天發生的各種各樣的事件,用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到***、被***時追蹤***者的蹤跡。日誌的兩個比較重要的作用是審覈和監測
  日誌也應該是用戶注意的地方。不要低估日誌文件對網絡安全的重要作用,因爲日誌文件能夠詳細記錄系統每天發生的各種各樣的事件, 用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到***、被***時追蹤***者的蹤跡。日誌的兩個比較重要的作用是審覈和監測。配置好的Linux的日誌 非常強大。對於Linux系統而言,所有的日誌文件在/var/log下。默認情況下,Linux的日誌文件沒有記錄FTP的活動。用戶可以通過修改 /etc/ftpacess讓系統記錄FTP的一切活動。
  /etc/syslog.conf的格式
  Linux系統的日誌文件是可以配置的,在前面的章節中已經介紹瞭如何定製Apache、wu-ftpd、Sendmail的日誌文件。 Linux系統的日誌文件是由/etc/syslog.conf決定的,用戶有必要花時間仔細配置一下/etc/syslog.conf。下面是/etc /syslog.conf的範例:
 
# Log all kernel messages to the kernlog.
# Logging much else clutters up the screen.
kern.* /var/log/kernlog
# 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/messages
*.warning /var/log/syslog
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
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
 
 
  可以看出,該配置文件的每一行的第一個字段列出要被記錄的信息種類,第二個字段則列出被記錄的位置。第一個字段使用下面的格式:facility.level[;facility.level…]
  此處的faciity是產生信息的系統應用程序或工具,level則是這個信息的重要程度。level的重要程度由低到高依次是:debug(調試消 息)、info(一般消息)、notice(值得注意的消息)、warning(警告)、err(一般性錯誤)、crit(嚴重錯誤)、alert(或 emerg,緊急情況)。facility包含有:auth(認證系統,如login或su,即詢問用戶名和口令)、cron(系統執行定時任務時發出的 信息)、daemon(某些系統的守護程序的syslog,如由in.ftpd產生的log)、kern(內核的信息)、lpr(打印機的信息)、 mail(處理郵件的守護進程發出的信息)、mark(定時發送消息的時標程序)、news(新聞組的守護進程的信息)、user(本地用戶的應用程序的 信息)、uucp(uucp子系統的信息)和“*”(表示所有可能的facility)。
  將日誌文件記錄到遠程主機
  如果有另一個Linux或UNIX系統,那麼可以配置日誌文件,讓其把消息發到另外一個系統並記錄下來。這也是爲什麼上面的所有日誌文件都記錄 了主機名的原因。要實現這個功能,在該配置文件中,指定一個記錄動作,後面接一個由“@”開頭的遠程系統的主機名,如下 例:*.warn;authpriv.notice;auth.notice @bright.hacker.com.cn
  同時,還要將接受消息的目的系統設置爲允許這種操作。此例主機bright.hacker.com.cn的syslogd守護進程要用-r參數 啓動。如果不使用-r參數,則目標主機的syslogd將丟棄這個消息以避免DoS***使硬盤塞滿虛假消息。並且確保目標主機的/etc/service 文件必須設置syslog服務所使用的UDP端口514(這也是RedHat Linux默認的設置)。如果syslogd守護進程用了-r和-h參數,那麼,參數-h將允許轉發消息。也就是說,如果系統B的syslogd用了-h 參數,這樣,當系統A把消息轉發到系統B後,系統B就把來自系統A和它自己的消息轉發到系統C。
  將警告信息發送到控制檯
  syslogd可以將任何從內核發出的重要程度爲emerg或alert的信息發送到控制檯。控制檯是指虛擬控制檯或啓動時加-C參數的 xterm。要實現這一功能,在/etc/syslog.conf文件中加上下面一行:kern.emerg /dev/console
  這樣,當系統內核發生錯誤而發出消息時,用戶能夠馬上知道並且進行處理。如果用了“*”,就是一旦內核發生錯誤,就將消息發送給所有在線用戶, 但只有這個用戶正在登錄的時候才能看到。修改了/etc/syslog.conf文件後,必須重新啓動syslogd守護進程以使配置更改生效,請執行下 面的命令:#/etc/rc.d/init.d/syslog restart
 
本人使用OS:Centos 4.4 final(Centos是一款redhat advanced server兼容的免費發行版本)
------------------------------------------
日誌的作用:日誌文件用來記錄系統的狀態,幫助管理員確定、檢修故障
常用日誌存放目錄:/var/log/,默認日誌都放在這個位置
相關命令:last命令,顯示最近登陸系統的用戶
相關守護進程:SYSLOGD(system log daemon,你可以通過ps -aux | grep syslog查看到,該守護進程
處於運行狀態),配置文件位於/etc/syslog.conf
SYSLOGD相關概念:
Levels(等級) =從調試到緊急(0~7)
0 = log_debug調試 調試程序時使用
1 = log_info信息 
2 = log_notice注意 沒有錯誤,但是可能有設置不當,需要處理
3 = log_warning警告
4 = log_error錯誤 
5 = log_critical嚴重 
6 = log_alert警報 應該馬上被改正的問題
7 = log_emergency緊急
Facilities(設備) = 設備/服務類型 內核/應用程序類型
Log_kernel 內核產生的信息
Log_user 用戶產生的信息
Log_mail 電子郵件信息
Log_daemon 守護進程信息
Log_auth 認證系統信息 login,logout,su等
Log_lpr 系統打印機spooling信息
Log_local0 - Log_local7 本地使用保留
例1 facility = Cisco Firewall
levels = 0~7
例2 facility = sendmail
levels = 0~7
/etc/syslog.conf 結構--分爲兩列
facility.level destination(log目的地)
例1 kern.* /dev/console
例2 *.info;mail.none;cron.none;authpriv.none /var/log/messages
例3 mail.* /var/log/maillog
以上例1,例3中的*表示所有level都記錄,例2表示除非了mail,cron,authpriv以外的所有log等級大於等於info都記錄下來
SyslogD生成的log文件包含4個縱列
日期 時間 主機名 應用程序信息/設備信息
例如:Dec 25 22:49:40 mushroom sshd(pam_unix)[4298]: session opened for user root by root(uid=0)
你可以用編輯器打開/var/log/下的任意一個日誌,都是這種結構
SyslogD的參數開關位於/etc/sysconfig/syslog文件內,以下是該文件內容
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
注意:修改了系統日誌的配置文件後,需要重起syslog服務才能生效
/sbin/service syslog restart即可
------------------------------------------
redhat系統爲了便於維護,提供了一個非常強大的GUI log查看工具 system-logviewer(早期版本的
redhat系統例如redhat 9是redhat-logviewer),通過此工具可以非常方便的查看、管理系統日誌。

system-logviewer工具的配置文件處於/etc/sysconfig/下的system-logviewer(早期版本的redhat系統 例如redhat 9是redhat-logviewer),用vi打開/etc/sysconfig/system-logviewer可以打開和修改相關配置信息。
以下是本人系統中該文件的內容
---------------------------------------------------------------------------------------------------
# Configuration File for Red Hat Log Viewer
# Copyright (c) 2001-2003 Red Hat, Inc. all rights reserved.
# Copyright (c) 2001-2003 Tammy Fox <[email protected]>
# Log file names
SYSLOG=/var/log/messages
SECURELOG=/var/log/secure
MAILLOG=/var/log/maillog
CRONLOG=/var/log/cron
NEWSLOG=/var/log/spooler
BOOTLOG=/var/log/boot.log
CIPELOG=/var/log/cipe.log
DMESGLOG=/var/log/dmesg
HTTPDACCESSLOG=/var/log/httpd/access_log
HTTPDERRORLOG=/var/log/httpd/error_log
MYSQLLOG=/var/log/mysqld.log
RPMLOG=/var/log/rpmpkgs
TUXLOG=/var/log/tux
UP2DATELOG=/var/log/up2date
FTPLOG=/var/log/vsftpd.log
XFREE86LOG=/var/log/XFree86.0.log
XORGLOG=/var/log/Xorg.0.log
# How often to refresh messages, in seconds
# If set below 30 seconds, it defaults to 30 seconds
REFRESHRATE=30
## Words to show alert icon for
## Comma-delimited list, not case-sensitive
ALERTWORDS=fail,denied,rejected,oops,segfault,segmentation
## Words to show warning icon for
## Comma-delimited list, not case-sensitive
WARNINGWORDS=warn
-
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章