Chinaunix首页 | 论坛 | 博客
  • 博客访问: 639448
  • 博文数量: 321
  • 博客积分: 4065
  • 博客等级: 上校
  • 技术积分: 3087
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-23 19:04
个人简介

随遇而安

文章分类

全部博文(321)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(8)

2011年(47)

2010年(124)

2009年(92)

2008年(24)

2007年(8)

2006年(15)

分类: LINUX

2009-09-04 15:26:21

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

    审核和记录系统的事件是很重要的。特别是当您的电脑连接到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》,原文及其版权协议请参考:。
阅读(3187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~