Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

aide使用手册

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

1.什么是AIDE

AIDE(Adevanced Intrusion Detection Environment,高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性。

AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号。

在系统安装完毕,要连接到网络上之前,系统管理员应该建立新系统的AIDE数据库。这第一个AIDE数据库是系统的一个快照和以后系统升级的准绳。数据库应该包含这些信息:关键的系统二进制可执行程序、动态连接库、头文件以及其它总是保持不变的文件。这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录。

一旦发现系统被侵入,系统管理员可能会使用ls、ps、netstat以及who等系统工具对系统进行检查,但是所有这些工具都可能被特洛伊木马程序代替了。可以想象被修改的ls程序将不会显示任何有关入侵的文件信息,ps也不会显示任何入侵进程的信息。即使系统管理员已经把关键的系统文件的日期、大小等信息都打印到了纸上,恐怕也无法通过比较知道它们是否被修改过了,因为文件日期、大小等信息是非常容易改变的,一些比较好的rootkit可以很轻松地对这些信息进行假冒。

虽然文件的日期、大小等信息可能被假冒,但是假冒某个文件的一个加密校验码(例如:mk5)就非常困难了,更不要说假冒所有AIDE支持的校验码了。在系统被侵入后,系统管理员只要重新运行AIDE,就能够很快识别出哪些关键文件被攻击者修改过了。

不过,要注意这也不是绝对的,因为AIDE可执行程序的二进制文件本身可能被修改了或者数据库也被修改了。因此,应该把AIDE的数据库放到安全的地方,而且进行检查时要使用保证没有被修改过的程序。

2.编译

2.1 快速安装

如果你已经安装了所有所需的软件,只要输入以下命令,就可以安装好AIDE了。

#tar zxvf aide-版本号.tar.gz
#cd aide-版本号
#./configure
#make
#make install

2.2 获取所需的软件

在编译安装AIDE之前,应该首先获取以下软件:

然后,就可以解压aide源代码包,准备安装了

tar zxvf aide-版本号.tar.gz

2.3 配置编译选项

下面,你就可以使用configure脚本对各种编译选项进行配置了。可以输入./configure --help命令获得帮助信息。其中的大部分选项,你不必关心。一般只需要设置以下选项:

  • --with-mhash
  • 使用这个选项加入mhash的支持。

  • --with-gnu-regexp
  • 使用GNU正则表达式库

  • --prefix=
  • 改变默认的安装路径

  • --with-psql
  • 加入对PostgreSQL的支持

2.4 编译安装

输入make命令进行安装,然后输入make install命令将aide安装到指定的目录。

3.配置

接下来,你需要建立一个配置文件。aide的配置文件是aide.conf,其语法和Tripwire的配置文件极为相似,Tripwire的配置文件tw.conf可以很轻松转换为aide.conf。

aide.conf文件中的内容是大小写敏感的,而且开头和结尾的空格都被忽略。

aide.conf文件中有三种类型的语句:

  • 配置选项
  • 设置配置参数以及定义/取消定义变量。

  • 选择选项
  • 选择加入数据库的文件。

这些选项中,只有选择选项是必须的。以#开头的行是注释行,它们将被忽略。

3.1 配置选项

配置选项的一般格式是参数=值。

  • database
  • aide要读的数据库。只能有一个,如果定义多个,aide就会使用第一个,默认值是./aide.db。

  • database_out
  • 要输出的新数据库。只能有一个,如果定义了多个,aide就会使用第一个,默认值是./aide.db.new。

  • verbose
  • 输出信息的级别。值可以在0-255之间。这个参数只能被定义一次。如果运行aide时,使用了--verbose或者-V命令行,aide就会使用这个参数定义的值。默认是5。在执行--check或者--update操作时,如果这个值是20,aide就会输出额外的报告信息。

  • report_url
  • 报告信息从哪个URL输出。这个参数可以定义多个事例。aide会把输出送到所有定义的URL。默认值是标准输出(stdout)。

  • gzip_dbout
  • 是否对输出的数据库进行压缩。有效的值有yes、true、no、false。默认值是no。只有编译时连接了zlib库,这个选项才会生效。

  • 组定义
  • 如果参数不是上面的任何参数,AIDE就认为这是一个组的定义。值就被认作是一个表达式。表达式是如下格式:

    <预定义的组>|<表达式>+<预定义的组> |<表达式>-<预定义的组>

    请参考DEFAULT GROUPS关于默认预定义组的解释。

    有一个特别的组叫作ignore_list。这个预定义组列出不在最后的报告中显示的组。

3.2 选择选项

选择选项有三种类型:regular、negative、equals。以/开始就是正则(regular)选择选项;以!开头就是否定(negative)选择选项;以=打头就是等于(equals)选择选项。AIDE将把这些符号之后的字符串看作对文件名(包括目录)进行匹配的正则表达式。要获得更深入的解释,请参考配置选项。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:IP欺骗技术介绍   下一篇:PortSentry实战

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号