中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 技  术 > 软件 > 软件应用
RSYSLOG日志服务器的搭建
http://www.edu.cn   2011-07-15 中国教育网络 作者:虞国全

字体选择:【大】 【中】 【小】

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

  利用开源软件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服务器以及相应的设备配置就完成了。

  (作者单位为南昌理工学院英雄校区计算机系)

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com