当前位置:Linux教程 - Linux - Linux系统中Logcheck的安装和配置

Linux系统中Logcheck的安装和配置

概述
  保证系统安全的一项很重要的工作就是定期查看日志文件。系统管理员一般比较忙,没有时间定期完成这项工作,这样就可能带来一些安全问题。

下面是Logcheck概括性的介绍:

审核和记录系统的事件是非常重要的。特别是当你的计算机连接到Internet上之后,系统管理员如果对“异常”的事件保持警觉,就能防止系统被入侵。在Unix系统中如果仅仅把系统事件作为日志记录下来,而不去查看,还是无济于事。Logchek可以自动地检查日志文件,先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息email给系统管理员。Logcheck被设计成自动运行,定期检查日志文件以发现违反安全规则以及异常的活动。Logcheck用logtail程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息。

注意事项
  下面所有的命令都是Unix兼容的命令。

源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。

安装在RedHat Linux 6.1和6.2下测试通过。

要用“root”用户进行安装。

Logcheck的版本是1.1.1。

软件包的来源
  Logcheck的主页:http://www.psionic.com/abacus/logcheck/。

下载:logcheck-1.1.1.tar.gz。

安装软件包需要注意的问题
  最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之前运行一下命令“find /* >Logcheck1”,在编译和安装完软件之后运行命令“find /* > Logcheck2”,最后用命令“diff Logcheck1 Logcheck2 > Logcheck-Installed”找出变化。

解压软件包
  把软件包(tar.gz)解压:

[root@deep /]# cp logcheck-version.tar.gz /var/tmp/
  [root@deep /]# cd /var/tmp
  [root@deep tmp]# tar xzpf logcheck-version.tar.gz

编译和优化
  必须修改“Makefile”文件,设置Logcheck的安装路径、编译标记,还要根据你的系统进行优化。必须根据RedHat的文件系统结构来修改“Makefile”文件,并且在“PATH”环境变量的设定的路径中安装Logcheck的脚本文件。

第一步

转到Logcheck所在的目录。

编辑“Makefile”文件(vi Makefile)并改变下面这些行:

CC = cc

改为:

CC = egcs

CFLAGS = -O

改为:

CFLAGS = -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions

INSTALLDIR = /usr/local/etc

改为:

INSTALLDIR = /etc/logcheck

INSTALLDIR_BIN = /usr/local/bin

改为:

INSTALLDIR_BIN = /usr/bin

INSTALLDIR_SH = /usr/local/etc

改为:

INSTALLDIR_SH = /usr/bin

TMPDIR = /usr/local/etc/tmp

改为:

TMPDIR = /etc/logcheck/tmp

上面这些修改是为了把“Makefile”配置为使用“egcs”编译器,使用适应于我们系统的编译优化标记,并且把Logcheck的安装目录设置成遵循RedHat的文件系统结构。

第二步

编辑“Makefile”文件(vi +67 Makefile)改变下面这些行:

@if [ ! -d $(TMPDIR) ]; then /bin/mkdir $(TMPDIR); fi

改为:

@if [ ! -d $(TMPDIR) ]; then /bin/mkdir -p $(TMPDIR); fi

加上“-p”参数是让安装程序根据需要自动创建目录。

第三步

安装Logcheck:

[root@deep logcheck-1.1.1]# make linux

上面的命令为Linux操作系统配置Logcheck,然后把源文件编译成二进制文件,最后把二进制文件和配置文件拷贝到相应的目录。

清除不必要的文件
  用下面的命令删除不必要的文件:

[root@deep /]# cd /var/tmp
  [root@deep tmp]# rm -rf logcheck-version/ logcheck-version_tar.gz

“rm”命令删除所有编译和安装Logcheck所需要的源程序,并且把Logcheck软件的压缩包删除掉。

配置“/usr/bin/logcheck.sh”文件
  因为我们不使用“/usr/local/etc”这个路径,所以必须改变“logcheck.hacking”、“logcheck.violations”、“logcheck.ignore”、“logcheck.violations.ignore”和“logtail”中所有的路径到要改变。Logcheck的脚本文件“/usr/bin/logcheck.sh”允许设置一些选项,可以改变路径和程序的运行。这些都有详细的注释,也很简单。

第一步

编辑“logcheck.sh”文件(vi /usr/bin/logcheck.sh)并且改变:

LOGTAIL=/usr/local/bin/logtail

改为:

LOGTAIL=/usr/bin/logtail

TMPDIR=/usr/local/etc/tmp

改为:

TMPDIR=/etc/logcheck/tmp

HACKING_FILE=/usr/local/etc/logcheck.hacking

改为:

HACKING_FILE=/etc/logcheck/logcheck.hacking

VIOLATIONS_FILE=/usr/local/etc/logcheck.violations

改为:

VIOLATIONS_FILE=/etc/logcheck/logcheck.violations

VIOLATIONS_IGNORE_FILE=/usr/local/etc/logcheck.violations.ignore

改为:

VIOLATIONS_IGNORE_FILE=/etc/logcheck/logcheck.violations.ignore

IGNORE_FILE=/usr/local/etc/logcheck.ignore

改为:

IGNORE_FILE=/etc/logcheck/logcheck.ignore

第二步

把Logcheck放到crontab中,使之成为cronjob:

安装完Logcheck之后,必须以“root”权限编辑本地的“crontab”文件,并把Logcheck设置成每小时运行一次(当然你也可以把时间设长一点或者设短一点)。

l 用下面的命令编辑crontab:

[root@deep /]# crontab -e

# Hourly check Log files for security violations and unusual activity.
  00 * * * * /usr/bin/logcheck.sh

注意:如果没有必要的话,Logcheck是不会用email报告任何东西的。

安装到系统中的文件
  > /etc/logcheck
  > /usr/bin/logcheck.sh
  > /etc/logcheck/tmp
  > /etc/logcheck/logcheck.hacking
  > /etc/logcheck/logcheck.violations
  > /etc/logcheck/logcheck.violations.ignore
  > /etc/logcheck/logcheck.ignore
  > /usr/bin/logtail
  > /var/log/messages.offset
  > /var/log/secure.offset
  > /var/log/maillog.offset

版权说明
  这篇文章翻译和改编自Gerhard Mourani的《Securing and Optimizing Linux: RedHat Edition》,原文及其版权协议请参考:www.openna.com。