aide

1、aide的概述
AIDE(Adevanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,


主要用途是检查文本的完整性。 
AIDE能够构造一个指定文档的数据库,他使用aide.conf作为其配置文档。AIDE数据库能够保存


文档的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)


、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间


(atime)、增加的大小连同连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以


密文形式建立每个文档的校验码或散列号。


常见的入侵检测软件:
1、tripwire --操作比较复杂
2、aide --用以代替tripwire的一款新产品


文件系统入侵检测的原理:
1、当系统处于健康状态时,把系统所有的文件做各种指纹的检验,得出一个检验基准数据库。
2、不是所有的文件都需要保存指纹,临时文件(/var/log | /tmp | /var/tmp | /proc | 


/sys | /dev/shm...)
3、需要检验文件是否被更改,只需要把基准数据对应指纹值做对比,就可以得知哪些文件被更


改过。
4、每天把检验的结果以邮件或者其它方式发送管理员。




2、aide部署
1.从结帽官方获取最新的src rpm包
# wget ftp://ftp.redhat.com/redhat/linux/enterprise/5Server/en/os/SRPMS/aide-


0.13.1-6.el5.src.rpm
# rpm -ivh aide-0.13.1-6.el5.src.rpm
# rpmbuild -bb /usr/src/redhat/SPEC/aide.spec
# rpm -ivh /usr/src/redhat/RPMS/i386/aide-0.13.1-6.el5.src.rpm




3、aide的初级使用
1)新建一个目录,里边放一些测试文件
# mkdir /aide_test_check
# cp /etc/hosts* /aide_test_check
# grep -v ^# /etc/aide.conf |grep -v ^$ > /etc/aide2.conf
# mv /etc/aide2.conf /etc/aide.conf
mv: overwrite `/etc/aide.conf'? y




2)定义配置文件,及被临控的目录
# cp /etc/aide.conf /etc/aide.conf.bak
# vim /etc/aide.conf
@@define DBDIR /var/lib/aide --基准数据库目录
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz --基准数据库文件
database_out=file:@@{DBDIR}/aide.db.new.gz --更新数据库文件
gzip_dbout=yes
verbose=5
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
R=p+i+n+u+g+s+m+c+acl+xattrs+md5
L=p+i+n+u+g+acl+xattrs
>=p+u+g+i+n+S+acl+xattrs
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
EVERYTHING = R+ALLXTRAHASHES
NORMAL = R+rmd160+sha256
DIR = p+i+n+u+g+acl+xattrs
PERMS = p+i+u+g+acl
LOG = >
LSPP = R+sha256
DATAONLY =  p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger


/aide_check_test        NORMAL
    
3)初始化数据库:
# /usr/sbin/aide -c /etc/aide.conf --init


AIDE, version 0.13.1


### AIDE database at /var/lib/aide/aide.db.new.gz initialized.


4)把初始化的数据库当做基准数据库
# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz


5)测试AIDE能否发现文件更改
# cp /etc/passwd /aide_test_check/
# rm -rf /aide_test_check/hosts
# echo hello > /aide_test_check/hosts.allow
# /usr/sbin/aide  -c /etc/aide.conf --check
# /usr/sbin/aide  -c /etc/aide.conf --check
AIDE found differences between database and filesystem!!
Start timestamp: 2012-07-10 15:03:17


Summary:
  Total number of files:        6
  Added files:                  1
  Removed files:                1
  Changed files:                2




---------------------------------------------------
Added files:
---------------------------------------------------


added: /aide_test_check/passwd


---------------------------------------------------
Removed files:
---------------------------------------------------


removed: /aide_test_check/hosts


---------------------------------------------------
Changed files:
---------------------------------------------------


changed: /aide_test_check
changed: /aide_test_check/hosts.allow


--------------------------------------------------
Detailed information about changes:
---------------------------------------------------




Directory: /aide_test_check
  Mtime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40
  Ctime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40


File: /aide_test_check/hosts.allow
  Size     : 161                              , 166
  Mtime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40
  Ctime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40
  Inode    : 1678982                          , 1678985
  MD5      : Jf16ip7EeUlg7xmKYPZtIg==         , fbZt8P2s5dOjQHh3Wer2UQ==
  RMD160   : sZxwc595gS7oA92r3vt/0bf6IvE=     , XIEY/gh5Xl+ucwrwLkbk8DFr0Mo=
  SHA256   : 2xfzPtX0u7LS231etvkgOCGqrDK0ViKj , M5Gh2f/I2GwR4fF6eNhF+5LM3gob226S




6)如果上面的更改合法的操作,需要更新基准数据库:
# /usr/sbin/aide  -c /etc/aide.conf --update
# cd /var/lib/aide
# cp aide.db.new.gz aide.db.gz 
cp: overwrite `aide.db.gz'? y




7)把报告发往邮箱:
# /usr/sbin/aide  -c /etc/aide.conf --check |mail -s "test aide" root@localhost








4、使用aide监控系统中的文件


1)修改配置文件,让aide监控系统中的所有文件
# mv /etc/aide.conf.bak /etc/aide.conf --清空前面操作
# rm -rf /var/lib/aide/aide.db.*




# vim /etc/aide.conf
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide
database=file:@@{DBDIR}/aide.db.gz --基准数据库
database_out=file:@@{DBDIR}/aide.db.new.gz --每次update时会产生更新
gzip_dbout=yes
verbose=20
report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
R = p+i+n+u+g+s+m+c+acl+xattrs+md5
L = p+i+n+u+g+acl+xattrs
> = p+u+g+i+n+S+acl+xattrs
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
EVERYTHING = R+ALLXTRAHASHES
NORMAL = R+rmd160+sha256
DIR = p+i+n+u+g+acl+xattrs
PERMS = p+i+u+g+acl
LOG = >
LSPP = R+sha256
DATAONLY =  p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger
/boot   NORMAL
/bin    NORMAL
/sbin   NORMAL
/lib    NORMAL
/opt    NORMAL
/usr    NORMAL
/root   NORMAL
!/usr/src
!/usr/tmp
/etc    PERMS
!/etc/mtab
!/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
/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
/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
!/var/log/sa
!/var/log/aide.log
/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
!/var/log/and-httpd
/root/.* PERMS


2)初始化aide,并生成基准数据库文件
# aide -c /etc/aide.conf --init --根据当前系统中文件数据的多少,所需要的时


间不等,当前我这个系统花了20分钟左右


# ls /var/lib/aide/ --基准数据库的存放位置,在上面的配置文件中


也有定义
aide.db.new.gz   这是一个很重要的文件,一般可以把它


放在光盘或者加密分区中保存


# cd /var/lib/aide --把基准数据库拷贝一份给当前系统的AIDE使用
# cp aide.db.new.gz aide.db.gz




3)使用AIDE检测系统中的文件是否被修改:
aide --check --检测被监控的文件是否发生变化,结果在屏幕输出
aide --check| mail -s "aide check about `hostname`,data:`date`" root@localhost
--检测被监控的文件是否发生变化,把结果发给管理员,可以结合


crontab完成




4)更基准数据库:
注意:
1)更新的前提的系统中文件的改变是合法合理,不是非法篡改的则要更新基准数据库
2)更新完后要备份新的基准数据库到安全的存储介质中


# /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.new.gz20111019 --备份旧


的基准数据库
# aide --update


--又需要20分钟的文件扫描,真是悲具,所以在生产环境需要选择系统不繁忙的时段进



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


--把旧的基准数据库替换成最新的






5)把aide程序、配置文件和基准数据库写入只读设备中,防止被恶意操作:
# mkdir /tmp/aide
# cp /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide /tmp/aide
# yum -y install genisoimage
# cd /tmp/ && mkisofs -V aide_DBS -J -R -o aide.iso aide/ --把所有


的文件制作成光盘
# rpm -e aide
# rm -rf /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide


--把系统中原来的文件删除

你可能感兴趣的:(aide)