日誌也應該是用戶注意的地方。不要低估日誌文件對網絡安全的重要作用,因爲日誌文件能夠詳細記錄系統每天發生的各種各樣的事件,用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到***、被***時追蹤***者的蹤跡。日誌的兩個比較重要的作用是審覈和監測
日誌也應該是用戶注意的地方。不要低估日誌文件對網絡安全的重要作用,因爲日誌文件能夠詳細記錄系統每天發生的各種各樣的事件,
用戶可以通過日誌文件檢查錯誤產生的原因,或者在受到***、被***時追蹤***者的蹤跡。日誌的兩個比較重要的作用是審覈和監測。配置好的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 |