日誌對於系統的安全來說非常重要,它記錄了系統每天發生的各種各樣的事情,用戶可以通過它來檢查錯誤發生的原因,或者尋找受到***時***者留下的痕跡。日誌主要的功能是審計和監測。它還可以實時地監測系統狀態,監測和追蹤侵入者。
那麼下面就讓我們來了解一下日誌系統吧。
syslog
日誌系統 (早期的日誌系統,只支持文本文件記錄)
syslogd: 系統進程的相關日誌
klogd: 內核事件相關的日誌
Rsyslog
今天我們主要講解的rsyslog的內容,它相比於syslog來說功能要強大的多:
支持多線程
支持TCP,SSL,TLS,RELP
能夠存放在MySQL, PGSQL, Oracle等多種關係型數據中
可實現過濾系統信息中的任意部分
可以自定義輸出格式
適用於企業級別日誌記錄需求
對於rsyslog日誌系統,其配置文件在/etc/rsyslog.conf中。
該配置文件中定義的格式爲
facility.priority target
分別對三者進行解釋:
facility: 設施,從功能或程序上對日誌進行分類,並由專門的工具負責記錄其日誌
auth #認證相關
authpriv #認證授權相關
cron #週期性任務記錄
daemon # 守護進程相關
kern #內核進程相關
lpr #打印相關
mail #郵件相關
mark #防火牆標記相關
news #新聞相關
security #安全相關
syslog #自己記錄日誌相關
user #用戶相關
uucp
local0 through local7: 8 customed facility
指定設施時可以使用通配符:
*: 所有
f1,f2,f3,...: 列表
!: 取反
priority: 級別
debug # 程序或系統的調試信息
info # 一般信息
notice # 不影響正常功能,需要注意的消息
warning,warn # 可能影響系統功能,需要提醒用戶的重要事件
err,error # 錯誤信息
crit # 比較嚴重的
alert # 必須馬上處理的
emerg/panic # 會導致系統不可用的
通配符:
*: 所有級別
none: 沒有任何級別
Target:
文件路徑:例如/var/log/messages
用戶: *
日誌服務器:@SERVER_IP
管道:|COMMAND
配置文件中的一些符號的用法及意義:下面是一些例子
mail.info /var/log/maillog
# 比指定級別更高的所有級別,包括指定的級別本身;
mail.=info /var/log/maillog
# 明確指定級別;
mail.!info *
# 除了指定級別
*.info | COMMAND
# 所有facility的info級別
mail.*:
# mail的所有級別
mail,news.info
# mail和new的info級別
日誌信息的格式:
時間 主機 進程(PID):事件
啓用日誌服務器的功能:
配置文件中劃分爲3部分:
#### MODULES #### 日誌的模塊 #### GLOBAL DIRECTIVES ####定義全局日誌格式的指令 #### RULES ####
首先在日誌模塊中啓用一下幾項
# Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
rsyslog支持將日誌存儲於MySQL服務器中:
1)安裝配置好mysql數據庫服務;
[root@localhost ~]# yum install mysql-server
2)安裝rsyslog-mysql包;
[root@localhost ~]# yum install rsyslog-mysql
3)創建rsyslog依賴的數據庫:
[root@localhost ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
4)配置rsyslog啓用模塊
在#### Modules #####啓用模塊:
添加以下模塊
$ModLoad ommysql
在####rules####段中定義記錄日誌信息於數據庫中
facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,sysloguser,syslogpass
5)數據庫授權
[root@localhost ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.71 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> grant all on Syslog.* to [email protected] identified by 'syslogpass' -> ; 注意:授權的時候用戶密碼以及數據庫名稱都要與日誌配置文件中一致。 Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; 刷新授權 Query OK, 0 rows affected (0.00 sec)
好了這樣就配置好了,我們可以測試下;
安裝一個PHP,看看會不會有日誌信息:
[root@localhost ~]# yum install php
登進mysql之後進入Syslog數據庫查看:
mysql> select * from SystemEvents; +----+------------+---------------------+---------------------+----------+----------+-----------+------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+-------------+--------------+-----------------+----------+ | ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryData | MaxAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID | +----+------------+---------------------+---------------------+----------+----------+-----------+------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+-------------+--------------+-----------------+----------+ | 1 | NULL | 2014-08-09 05:48:51 | 2014-08-09 05:48:51 | 0 | 6 | localhost | imklog 5.8.10, log source = /proc/kmsg started. | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL | | 2 | NULL | 2014-08-09 05:48:51 | 2014-08-09 05:48:51 | 5 | 6 | localhost | [origin software="rsyslogd" swVersion="5.8.10" x-pid="27393" x-info="http://www.rsyslog.com"] start | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL | | 3 | NULL | 2014-08-09 05:49:16 | 2014-08-09 05:49:16 | 1 | 6 | localhost | Installed: php-common-5.3.3-26.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | yum[27402]: | NULL | NULL | NULL | | 4 | NULL | 2014-08-09 05:49:16 | 2014-08-09 05:49:16 | 1 | 6 | localhost | Installed: php-cli-5.3.3-26.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | yum[27402]: | NULL | NULL | NULL | | 5 | NULL | 2014-08-09 05:49:17 | 2014-08-09 05:49:17 | 1 | 6 | localhost | Installed: php-5.3.3-26.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | yum[27402]: | NULL | NULL | NULL | +----+------------+---------------------+---------------------+----------+----------+-----------+------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+-------------+--------------+-----------------+----------+ 5 rows in set (0.00 sec)
發現裏面以及記錄了。這樣就成功了。
LogAnalyzer:通過webGUI展示日誌信息
LogAnalyzer是分析系統日誌,並用web界面展示的工具,下面我們就來安裝一下。
# yum -y install httpd php php-mysql php-gd # tar xf loganalyzer-3.6.5.tar.gz 注意這裏首先需要將包下載過來 # mkdir /var/www/html/loganalyzer # cp loganalyzer-3.6.5/src/* /var/www/html/loganalyzer/ # cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/ # cd /var/www/html/loganalyzer/ # chmod +x configure.sh secure.sh # ./configure.sh # ./secure.sh # chmod 666 config.php # chown -R apache.apache ./*
注意:該應用是基於LAMP的,所有相應在配置文件中需要修改的內容我這裏沒有給出。
如果一切正常的話那麼就可以打開網頁了。
需要注意的是:在配置數據庫的時候,每一項都必須與上面創建的一模一樣,包括數據庫名以及賬號密碼,必須嚴格區分大小寫。
這是最終顯示的界面。一旦你看到了這個就表明已經成功安裝了。
好了本節的內容就到這裏,謝謝!