日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

用Syslog 記錄UNIX和Windows日志的方法

在比較大規(guī)模的網絡應用或者對安全有一定要求的應用中,通常需要對系統的日志進行記錄分類并審核,默認情況下,每個系統會在本地硬盤上記錄自己的日志,這樣雖然也能有日志記錄,但是有很多缺點:首先是管理不便,當服務器數量比較多的時候,登陸每臺服務器去管理分析日志會十分不便,其次是安全問題,一旦有入侵者登陸系統,他可以輕松的刪除所有日志,系統安全分析人員不能得到任何入侵信息 。
因此,在網絡中安排一臺專用的日志服務器來記錄系統日志是一個比較理想的方案 。本文以FreeBSD下的syslog為例,介紹如何利用freebsd的syslogd來記錄來自Unix和Windows的log信息 。
一、記錄UNIX類主機的log信息
首先需要對Freebsd的syslog進行配置,使它允許接收來自其他服務器的log信息 。
在/etc/rc.conf中加入:
syslogd_flags="-4 -a 0/0:*"
說明:freebsd的syslogd參數設置放在/etc/rc.conf文件的syslogd_flags變量中
Freebsd對syslogd的默認設置參數是syslogd_flags="-s",(可以在/etc/defaults/rc.conf中看到)
默認的參數-s表示打開UDP端口監(jiān)聽,但是只監(jiān)聽本機的UDP端口,拒絕接收來自其他主機的log信息 。如果是兩個ss,即-ss,表示不打開任何UDP端口,只在本機用/dev/log設備來記錄log.
修改后的參數說明:
-4 只監(jiān)聽IPv4端口,如果你的網絡是IPv6協議,可以換成-6
-a 0/0:* 接受來自所有網段所有端口發(fā)送過來的log信息 。
如果只希望syslogd接收來自某特定網段的log信息可以這樣寫:-a 192.168.1.0/24:*
-a 192.168.1.0/24:514或者-a 192.168.1.0/24表示僅接收來自該網段514端口的log信息,這也是freebsd的syslogd進程默認設置,也就是說freebsd在接收來自其他主機的log信息的時候會判斷對方發(fā)送信息的端口,如果對方不是用514端口發(fā)送的信息,那么freebsd的syslogd會拒絕接收信息 。即,在默認情況下必須:遠程IP的514端口 發(fā)送到本地IP的514,
在參數中加入*,表示允許接收來自任何端口的log信息 。這點,在記錄Unix類主機信息的時候感覺不到加不加有什么區(qū)別,因為UNIX類主機都是用514端口發(fā)送和接收syslog信息的 。但是在接收Windows信息的時候就非常重要了 。因為windows的syslog軟件不用514端口發(fā)送信息,這會讓默認配置的syslogd拒絕接收信息 。筆者同樣在Linux系統下用linux的syslogd來配置log服務器,發(fā)現linux下的syslogd就沒有那么多限制,只要給syslogd加上-r參數,就可以接收來自任何主機任何端口的syslog信息,在這方面來說FreeBSD的默認配置安全性要比linux稍微高一點 。
修改好syslogd參數后,我們需要修改一下/etc/syslog.conf文件,指定log信息的存放路徑,
比如你要記錄其他系統的遠程登陸登出信息并指定日志存放路徑,則需要修改以下行:
authpriv.* /var/log/testlog
這表示把系統的登入登出日志(包括本機系統登陸登出日志)存放到/var/log/testlog文件中 。
當然,這是最簡陋的做法,因為這樣會把所有服務器的登陸登出信息存放在一個文件中,察看的時候很不方便,通常的做法是用一個腳本,對接收到的信息進行簡單的分揀,再發(fā)送到不同的文件 。
如下設置:
authpriv.* |/var/log/filter_log.sh
在記錄目標前面加上“|表示把接收到的信息交給后面的程序處理,這個程序可以是一個專門的日志處理軟件,也可以是一個自己編寫的小的腳本,舉例:
#!/bin/sh
read stuff
SERVER=`echo $stuff |awk ‘{print $4}’`
echo $stuff >> /var/log/login_log/$SERVER.log
這個簡單的腳本以IP作為分類依據,先用read讀取log信息,用awk取出第四字段(即IP地址或者主機名所在的字段),以該字段為文件名存放該主機的日志 。

推薦閱讀