日志对于系统的安全来说非常重要,它记录了系统每天发生的各种各样的事情,用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志主要的功能是审计和监测。它还可以实时地监测系统状态,监测和追踪侵入者。
那么下面就让我们来了解一下日志系统吧。
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的,所有相应在配置文件中需要修改的内容我这里没有给出。
如果一切正常的话那么就可以打开网页了。
然后按照提示一步一步操作即可。
需要注意的是:在配置数据库的时候,每一项都必须与上面创建的一模一样,包括数据库名以及账号密码,必须严格区分大小写。
这是最终显示的界面。一旦你看到了这个就表明已经成功安装了。
好了本节的内容就到这里,谢谢!