Linux系统安全工具之:日志管理工具介绍

  • 摘要:一般的 Linux 发行版中都自带这个工具。日志文件过大如何处理是一个问题。它可以自动使日志循环,删除保存最久的日志。你可以把它放在 crontab 中,每天定期运行。这在很多 linux 发行版中都是缺省设置的。
  • 标签:Linux  日志管理  日志工具
  •  

三个日志管理工具

1、logrotate

一般的 Linux 发行版中都自带这个工具。日志文件过大如何处理是一个问题。它可以自动使日志循环,删除保存最久的日志。你可以把它放在 crontab 中,每天定期运行。这在很多 linux 发行版中都是缺省设置的。

您可以从下面的网址获得新版本的 logrotate:ftp://ftp.redhat.com/pub/redhat

它的配置文件是 /etc/logrotate.conf 我们可以在这个文件中设置日志的循环周期,日志的备份数目,以及如何备份日志等等。

在 /etc/logrotate.d 目录下包括一些工具的日志循环设置文件。例如:syslog,samba,cron 等等,在这些文件中指定如何根据 /etc/logrotate.conf 做日志循环,您也可以在这里面添加其他的文件以循环其他服务的日志。

关于配置文件的详细信息您可以参阅 man logrotate。

最后还是提醒您使用 cron 运行 logrotate。

2、swatch

swatch 是一个实时的日志监控工具。您可以设置您所感兴趣的事件,它可以在事件发生的时候告诉您。Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。

Swatch 提供了许多通知方式,例如:email,振铃,终端输出,多种颜色等等。

您可以从下面的站点下载:ftp://ftp.stanford.edu/general/security-tools/swatch/

swatch 的安装需要一些 perl 库的支持,安装前确信您的系统已经可以支持 perl。

Swatch 可以在命令行中进行一些简单的设置,例如日志循环时告诉 swatch 在循环完毕后重新启动等等。

配置文件 swatchmessage 是 swatch 软件的重点。这个文本文件告诉 swatch 需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作。当 swatch 发现到与 swatchmessage 中定义的触发器正则表达式相符时,它将执行在 swatchrc 中定义的通知程序。Swatch 通过使用/usr/bin/tail -f 实时监视日志文件。

在这里我们不想过多的将如何配置,配置 swatch 非常简单,您可以参考 swatch 自带的配置文件。针对每个服务例如:ftp,sendmail 等等,你必须为每个您所关心的服务配置一个 swatchmessage 文件。

Swatch 启动时可以带很多参数,但使用通常如下格式启动它就可以了:

/usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog -r 06:00&

-c 参数用于指定配置文件,-t 参数指定实时监视的日志文件,-r 指定重起的时间,"&" 使 swatch 在后台运行。启动后,swatch 产生子进程,因此 swatch 是以两个进程运行的,在停止 swatch 时必须杀掉两个进程。

也可以通过 logrotate 配置在日志循环后重起 swatch,可以在 /etc/logrotate.d 建立一个您所要关心的日志的循环文件,其中最关键的是要加入下面这行:

/usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog -r + 0

其他的地方可以仿造别的同目录下的文件。'

3、logcheck

审核和记录系统的事件是非常重要的。特别是当你的计算机连接到 Internet 上之后,系统管理员如果对"异常"的事件保持警觉,就能防止系统被入侵。在 Unix 系统中如果仅仅把系统事件作为日志记录下来,而不去查看,还是无济于事。

logchek 可以自动地检查日志文件,先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员。Logcheck 被设计成自动运行,定期检查日志文件以发现违反安全规则以及异常的活动。logcheck 用 logtail 程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息。

可以在下面的站点获得 logcheck:http://www.psionic.com/abacus/logcheck/

logcheck 主要由下面几个主要的文件:

1、logcheck.sh

这个是一个可执行的脚本文件,里面记录 logcheck 检查那些日志文件等 logcheck 运作所必须的信息。您可以把它加入 crontab 中定时运行。

2、logcheck.hacking

它和下面的三个文件一样,是 logcheck 检查的模式文件。他们四个文件按从上到下的顺序执行。这个文件表明了入侵活动的模式。

3、logcheck.violations

这个文件表示有问题,违背常理的活动的模式。优先级小于上面的那个模式文件。

4、logcheck.violations.ignore

这个文件和上面的 logcheck.violations 是相对的,是您所不关心的问题的模式文件。

5、logcheck.ignore

这是检查的最后一个模式文件。如果没有和前三个模式文件匹配,也没有匹配这个模式文件的话,则输出到报告中。

6、logtail

这个文件记录日志文件信息。

Logcheck首次运行时读入相关的日志文件的所有内容。Logtail 在日志文件的目录下为每个关心的日志文件建立一个 logfile.offset 的偏移量文件,以便于下次检查时从这个偏移量开始检查。Logcheck 执行时未被忽略的内容通过邮件的形式发送给 logcheck.sh 中 SYSADMIN 指定的用户。

Logcheck 的通知没有那么实时,但是相对于 swatch 它更适合于分布式日志文件系统。因为它不必为每个日志文件建立一个进程。在 Turbolinux 中就集成了 logcheck 工具。