AIDE 学习笔记

参考:http://www.iamle.com/archives/1664.html

AIDE的用法和tripwire类似。都是通过生成一份文件指纹的数据库,然后对比。所以,我们最好在刚安装完系统后,就安装这个工具,获取一份干净的文件指纹。

安装与配置

yum -y install aide

主要文件如下:

主程序:/usr/sbin/aide

文件指纹库:/var/lib/aide

日志:/var/log/aide

cp /etc/aide.conf /etc/aide.conf_bak

vim /etc/aide.conf内容如下:

#Example configuration file for AIDE.

@@define DBDIR /var/lib/aide #基准数据库目录

@@define LOGDIR /var/log/aide #日志目录

#The location of the database to be read.

database=file:@@{DBDIR}/aide.db.gz #基础数据库文件

#The location of the database to be written.

#database_out=sql:host:port:database:login_name:passwd:table

#database_out=file:aide.db.new

database_out=file:@@{DBDIR}/aide.db.new.gz #更新数据库文件

#Whether to gzip the output to database

gzip_dbout=yes

#Default.

verbose=5

report_url=file:@@{LOGDIR}/aide.log

report_url=stdout

#report_url=stderr

#NOTIMPLEMENTED report_url=mailto:[email protected]

#NOTIMPLEMENTED report_url=syslog:LOG_AUTH

#These are the default rules.   下面这些这是规则说明

#

#p:      permissions

#i:      inode:

#n:      number of links

#u:      user

#g:      group

#s:      size

#b:      block count

#m:      mtime

#a:      atime

#c:      ctime

#S:      check for growing size

#acl:           Access Control Lists

#selinux        SELinux security context

#xattrs:        Extended file attributes

#md5:    md5 checksum

#sha1:   sha1 checksum

#sha256:        sha256 checksum

#sha512:        sha512 checksum

#rmd160:rmd160 checksum

#tiger:  tiger checksum

#haval:  haval checksum (MHASH only)

#gost:   gost checksum (MHASH only)

#crc32:  crc32 checksum (MHASH only)

#whirlpool:     whirlpool checksum (MHASH only)

下面是参数的组合表示法

#R:            p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5

#L:             p+i+n+u+g+acl+selinux+xattrs

#E:             Empty group

#>:             Growing logfilep+u+g+i+n+S+acl+selinux+xattrs

R = p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5

L = p+i+n+u+g+acl+selinux+xattrs

> = p+u+g+i+n+S+acl+selinux+xattrs

#You can create custom rules like this.

#With MHASH...

#ALLXTRAHASHES = sha1+rmd160+sha256+sha512+whirlpool+tiger+haval+gost+crc32

ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger

#Everything but access time (Ie. all changes)

EVERYTHING = R+ALLXTRAHASHES

#Sane, with multiple hashes

#NORMAL = R+rmd160+sha256+whirlpool

NORMAL = R+rmd160+sha256

#For directories, don‘t bother doing hashes

DIR = p+i+n+u+g+acl+selinux+xattrs

#Access control only

PERMS = p+i+u+g+acl+selinux

#Logfile are special, in that they often change

LOG = >

#Just do md5 and sha256 hashes

LSPP = R+sha256

#Some files get updated automatically, so the inode/ctime/mtime change

#but we want to know when the data inside them changes

DATAONLY = p+n+u+g+s+acl+selinux+xattrs+md5+sha256+rmd160+tiger

#下面是配置监控哪些目录下的文件异动情况

#Next decide what directories/files you want in the database.

/boot   NORMAL

/bin    NORMAL

/sbin   NORMAL

/lib    NORMAL

/lib64  NORMAL

/opt    NORMAL

/usr    NORMAL

/root   NORMAL

#These are too volatile

!/usr/src

!/usr/tmp

!/usr/share #通过文件路径前面加感叹号 ! 排除这个路径的监控,请自定义

#Check only permissions, inode, user and group for /etc, but

#cover some important files closely.

/etc    PERMS

!/etc/mtab

#Ignore backup files

!/etc/.*~

/etc/exports  NORMAL

/etc/fstab    NORMAL

/etc/passwd   NORMAL

/etc/group    NORMAL

/etc/gshadow  NORMAL

/etc/shadow   NORMAL

/etc/security/opasswd   NORMAL

/etc/hosts.allow   NORMAL

/etc/hosts.deny    NORMAL

/etc/sudoers    NORMAL

/etc/skel    NORMAL

/etc/logrotate.d    NORMAL

/etc/resolv.conf    DATAONLY

/etc/nscd.conf    NORMAL

/etc/securetty    NORMAL

#Shell/X starting files

/etc/profile    NORMAL

/etc/bashrc    NORMAL

/etc/bash_completion.d/    NORMAL

/etc/login.defs    NORMAL

/etc/zprofile    NORMAL

/etc/zshrc    NORMAL

/etc/zlogin    NORMAL

/etc/zlogout    NORMAL

/etc/profile.d/    NORMAL

/etc/X11/    NORMAL

#Pkg manager

/etc/yum.conf    NORMAL

/etc/yumex.conf    NORMAL

/etc/yumex.profiles.conf    NORMAL

/etc/yum/    NORMAL

/etc/yum.repos.d/    NORMAL

/var/log   LOG

/var/run/utmp    LOG

#This gets new/removes-old filenames daily

!/var/log/sa

#As we are checking it, we‘ve truncated yesterdays size to zero.

!/var/log/aide.log

#LSPP rules...

#AIDE produces an audit record, so this becomes perpetual motion.

#/var/log/audit/ LSPP

/etc/audit/    LSPP

/etc/libaudit.conf    LSPP

/usr/sbin/stunnel    LSPP

/var/spool/at    LSPP

/etc/at.allow    LSPP

/etc/at.deny    LSPP

/etc/cron.allow    LSPP

/etc/cron.deny    LSPP

/etc/cron.d/    LSPP

/etc/cron.daily/    LSPP

/etc/cron.hourly/    LSPP

/etc/cron.monthly/    LSPP

/etc/cron.weekly/    LSPP

/etc/crontab    LSPP

/var/spool/cron/root    LSPP

/etc/login.defs    LSPP

/etc/securetty    LSPP

/var/log/faillog    LSPP

/var/log/lastlog    LSPP

/etc/hosts    LSPP

/etc/sysconfig    LSPP

/etc/inittab    LSPP

/etc/grub/    LSPP

/etc/rc.d    LSPP

/etc/ld.so.conf    LSPP

/etc/localtime    LSPP

/etc/sysctl.conf    LSPP

/etc/modprobe.conf    LSPP

/etc/pam.d    LSPP

/etc/security    LSPP

/etc/aliases    LSPP

/etc/postfix    LSPP

/etc/ssh/sshd_config    LSPP

/etc/ssh/ssh_config    LSPP

/etc/stunnel    LSPP

/etc/vsftpd.ftpusers    LSPP

/etc/vsftpd    LSPP

/etc/issue    LSPP

/etc/issue.net    LSPP

/etc/cups    LSPP

#With AIDE‘s default verbosity level of 5, these would give lots of

#warnings upon tree traversal. It might change with future version.

#

#=/lost\+found    DIR

#=/home           DIR

#Ditto /var/log/sa reason...

!/var/log/and-httpd

#Admins dot files constantly change, just check perms

/root/\..*PERMS

# 初始化监控数据库

aide -c /etc/aide.conf --init

这步的时间较长,完成后会在/var/lib/aide下面生成一个名为:aide.db.new.gz的文件

# 把当前初始化的数据库作为开始的基础数据库

cp/var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# 在终端中查看检测结果

aide --check

下图是我添加一个账户账户,执行aide --check 的结果的部分截图。

# 如果确认文件变动是正常的改动更新改动到基础数据库

aide --update

cd /var/lib/aide/

mv aide.db.new.gz aide.db.gz  # 覆盖替换旧的数据库

# 检查文件改动保存到文件

aide--check --report=file:/tmp/aide-report-`date +%Y%m%d`.txt

# 定时任务执行aide检测报告和自动邮件发送aide检测报告

echo ‘0 8 * * * /usr/sbin/aide -C -V4 | mail -s "AIDE REPORT $(date+%Y%m%d)"  [email protected]‘ >> /var/spool/cron/root

注意:需要先配置好发邮件的程序。

-C参数和–check是一个意思

-V报告的详细程度可以通过-V选项来调控,级别为0-255, -V0 最简略,-V255 最详细。

时间: 2023-12-01 23:34:29

AIDE 学习笔记的相关文章

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

HTML&CSS基础学习笔记8-预格式文本

<pre>标签的主要作用是预格式化文本.被包围在 pre 标签中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.当然你也可以在你需要在网页中预显示格式时使用它. 会使你的文本换行的标签(例如<h>.<p>)绝不能包含在 <pre> 所定义的块里.尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的. 更多学习内容,就在码芽网http://www.

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl

[原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过