当前位置: > Linux服务器 > 服务器设置 >

RSYSLOG日志服务器的搭建

时间:2016-01-15 21:30来源:linux.it.net.cn 作者:IT

  服务器被黑,日志被删除,让我们在发生安全事件后查找原因时很难入手。日志作为一个重要的切入点,如果不能保证其完整性以及正确性,无疑将对分析安全事件加大了难度。因此,搭建一套完整的日志系统是非常必要的。同时,还要养成每天查看日志、检查异常的良好习惯。

  利用开源软件rsyslog在Linux操作系统上进行安装调试。大致的步骤如下:

  1.下载并安装最新版本的 rsyslog。目前最新的版本是rsyslog 6.1.7 (v6-devel) released,下载地址:http://www.rsyslog.com/rsyslog-6-1-7-v6-devel/

  2.安装

  (1)把源代码解压,并进入源代码中执行:

  ./configure --enable-mysql

  (2)依次执行:make和make install

  3.配置rsyslog.conf

  在源代码下有一个示例文件,把它拷贝到/etc

  (1)接受远程设备的syslog则要把以下三行的#去掉:

  # UDP Syslog Server:
  #$ModLoad imudp.so? # provides UDP syslog reception
  #$UDPServerRun 514 # start a UDP syslog server at standard port 514

  并同时在iptables中开放514端口

  (2)配置rsyslog自动启动

  (3)记录到mysql

  如果要使用sql来记录日志则先要建表,找到rsyslog-3.20.0\plugins\ommysql下的createDB.sql文件,打开它, 把里面的建表语句在数据库里执行,当然也可以自建一个新数据库。之后加载mysql模块,一定要确认ommysql.so在lib文件夹里存在,如果之前使用./configure --enable-mysql进行配置则会在/usr/local/lib/rsyslog下存在ommysql.so文件(操作系统不同,目录可能不一 样),然后在rsyslog.conf文件中加上:

  $ModLoad ommysql
  local4.*???? :ommysql:127.0.0.1,yourdb,yourname,yourpass;

  注意这里是local4来接受远程的syslog在交换机上的配置:

  1.华为

  info-center loghost?1.1.1.1 facility local4 //local4要和rsyslog.conf 里配置的一致,1.1.1.1为你的syslog服务器地址
  info-center loghost source Vlan-interface 11//你的网管VLAN接口,要改的
  info-center source SHELL channel loghost log level notifications//只想要操作日志

  2.思科

  logging?? 1.1.1.1(配置 syslog服务器地址,可以定义多个)?
  service timestamps debug datetime localtime show-timezone msec
  service timestamps log datetime localtime show-timezone msec?? (syslog 信息包含时间戳)
  logging facility local4?? (定义 facility 级别,缺省为local7,可以设置从 local0到 local7)
  logging trap warning?? (定义severity 级别缺省为 infor 级别)

  到mysql 服务器查看:

  select * from SystemEvents

  但这里还有个小Bug,我们会发现fromhost的这个字段不正确,并不是所用交换机的地址,这是rsyslog的一个bug,那么如何解决?可以自定义模板,不用其默认的模板。定义一个模板:MySQLInsert并用它来执行sql语句,关于模板的概念,请参考ht t p://www.r syslog.com/docrsyslog_conf.html这 里有详细的解释

  参考rsyslog.conf:

  # UDP Syslog Server:
  $ModLoad imudp.so? # provides UDP syslog reception
  $UDPServerRun 514 # start a UDP syslog server at standard port 514
  # MySQL log
  $ModLoad ommysql
  $template MySQLInsert,"insert into SystemEvent s( ReceivedAt,
  DeviceReportedTime,message,FromHost,syslogtag) values('%timegenerated:::
  date-mysql%','%timereported:::date-mysql%','%msg%','%fromhost-ip%',
  '%syslogtag%')", SQL
  local4.*???? :ommysql:127.0.0.1,syslogdatabase,syslogusername,syslogpass;
  MySQLInsert

  注意笔者使用了%f r o m h o s t - i p %,而不是%HOSTNAME%。

  当然针对Liunx服务器,把syslog发送过来就可以了,具体的配置就不详细说明。这里还需要提到的是Windows操作系统,需要安装一个客户端软件NTSyslog2.msi。

  配置rsyslog服务器地址如图1所示。

图1 配置rsyslog服务器地址

  一个完整的搭建rsyslog服务器以及相应的设备配置就完成了。

(责任编辑:IT)
------分隔线----------------------------