【CentOS实用篇】之aide文件监控

介绍

AIDE(Adevanced Intrusion Detection Environment)高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.

所有安装的包都会在rpm数据库生成对应的记录,可以使用rpm -V 来进行查询和比对,在记录发生变化时会出现相应的提示信息。aide和rpm数据库的区别就是aide能监控所有的文件,以及更全面的文件属性,rpm数据库之限定于rpm安装的包。

[root@c6 ~]#rpm -V bash
[root@c6 ~]#
配置

程序文件 /usr/sbin/aide
配置文件 /etc/aide.conf
数据库文件 /var/lib/aide
日志文件 /var/log/aide
数据库读取时用到的文件aide.db.gz,用于校验文件
数据库被写入时生成的文件 aide.db.new.gz,在使用时需要修改为aide.db.gz,便于校验数据时的读取

属性
# 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
设置监控
Commands:
  -i, --init     Initialize the database -------------------------------- # 初始化数据库
  -C, --check    Check the database ------------------------------------- # 检查数据库
  -u, --update   Check and update the database non-interactively -------- # 更新数据库

以监控/app文件夹为例,设置一条监控的属性信息mon,直接在/app后调用,/app/f3不需要监控,用叹号!指定

[root@c7 ~]#ll /app/
total 16
-rw-r--r--. 1 root root  6 Sep 13 14:32 f1
-rw-r--r--. 1 root root  9 Sep 13 14:33 f2
-rw-r--r--. 1 root root  8 Sep 13 14:33 f3
-rw-r--r--. 1 root root 13 Sep 13 14:33 f4
mon = p+u+g+sha512+m+a+c
# Next decide what directories/files you want in the database. Aide
# uses a first match system. Put file specific instructions before generic
# matches. e.g. Put file matches before directories.
/app mon
!/app/f3

创建数据库,生成 /var/lib/aide/aide.db.new.gz文件

[root@c7 app]#aide --i

AIDE, version 0.15.1

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

因为没有aide.db.gz文件,此时还不能对文件进行监控

[root@c7 ~]#aide -C
Couldn't open file /var/lib/aide/aide.db.gz for reading

进入文件夹改名,再次查询

[root@c7 ~]#cd /var/lib/aide/
[root@c7 aide]#mv aide.db.new.gz aide.db.gz
[root@c7 aide]#ll
total 8
-rw-------. 1 root root 483 Sep 13 15:44 aide.db.gz

再次检查/app下文件,因为是第一次监控文件,在创建数据库时对文件进行了读取,文件的访问时间atiem变更为数据库读取的时间。因为跳过了f3文件,再次不做显示。由此就实施了对文件的监控。

[root@c7 aide]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:45:44

Summary:
  Total number of files:    5
  Added files:          0
  Removed files:        0
  Changed files:        3


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

changed: /app/f1
changed: /app/f2
changed: /app/f4

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


File: /app/f1
 Atime    : 2017-09-13 14:32:52              , 2017-09-13 15:39:08

File: /app/f2
 Atime    : 2017-09-13 14:33:00              , 2017-09-13 15:39:08

File: /app/f4
 Atime    : 2017-09-13 14:33:18              , 2017-09-13 15:39:08

修改所有者,查看文件的属性变化
修改f1文件的所有者为用户feng,用aide -C检查,会发现f1文件的所有者的ID从0变更为1000,文件的ctime显示了更改的时间

[root@c7 app]#chown feng f1
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:51:07

Summary:
  Total number of files:    5
  Added files:          0
  Removed files:        0
  Changed files:        3


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

changed: /app/f1
changed: /app/f2
changed: /app/f4

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


File: /app/f1
 Uid      : 0                                , 1000
 Atime    : 2017-09-13 14:32:52              , 2017-09-13 15:39:08
 Ctime    : 2017-09-13 14:33:53              , 2017-09-13 15:50:59

File: /app/f2
 Atime    : 2017-09-13 14:33:00              , 2017-09-13 15:39:08

File: /app/f4
 Atime    : 2017-09-13 14:33:18              , 2017-09-13 15:39:08

修改文件内容,查看文件的属性变化
修改f2文件的内容,用aide -C检查,此时文件的mtime和ctime,以及哈希值都发生了改变,说明数据已经变化了

[root@c7 app]#echo sfsfs >> f2
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:57:18

Summary:
  Total number of files:    5
  Added files:          0
  Removed files:        0
  Changed files:        3


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

changed: /app/f1
changed: /app/f2
changed: /app/f4

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


File: /app/f1
 Uid      : 0                                , 1000
 Atime    : 2017-09-13 14:32:52              , 2017-09-13 15:51:07
 Ctime    : 2017-09-13 14:33:53              , 2017-09-13 15:50:59

File: /app/f2
 Atime    : 2017-09-13 14:33:00              , 2017-09-13 15:39:08
 Mtime    : 2017-09-13 14:33:00              , 2017-09-13 15:57:16
 Ctime    : 2017-09-13 14:33:53              , 2017-09-13 15:57:16
 SHA512   : f55IMty3iZr+1thEbZQVtAM3grorDOUP , JL56faPPxSMwRTiCqcT8l4Kml9OS7r9m

File: /app/f4
 Atime    : 2017-09-13 14:33:18              , 2017-09-13 15:39:08

更新数据库
在数据变更之后,如果实在正常的情况下,需要保存下来以后使用,可以使用aide -u进行更新数据库,在数据库更新之后,会重新生成 /var/lib/aide/aide.db.new.gz文件,因为数据库读取的文件是aide.db.gz,所以在更新数据库之后,我们要删除原aide.db.gz文件,把aide.db.new.gz重命名为aide.db.gz,再次检查文件的变化,会发现之前的改动在aide监控下已经变成了正常

[root@c7 app]#ls /var/lib/aide/
aide.db.gz  aide.db.new.gz
[root@c7 app]#cd /var/lib/aide/
[root@c7 aide]#rm -f aide.db.gz 
[root@c7 aide]#mv aide.db.new.gz aide.db.gz
[root@c7 aide]#aide -C

AIDE, version 0.15.1

### All files match AIDE database. Looks okay!

修改文件权限并改回,查看属性的变化
f4文件的权限是644,把f4文件的权限修改为600,用aide -C检查是会提示文件的权限的变化和ctime的改变。当文件的权限再次更改为644时,文件的atime和ctime都发生了改变,没有提示权限上的错误

[root@c7 app]#chmod 600 f4
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 16:12:49

Summary:
  Total number of files:    5
  Added files:          0
  Removed files:        0
  Changed files:        1


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

changed: /app/f4

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


File: /app/f4
 Perm     : -rw-r--r--                       , -rw-------
 Ctime    : 2017-09-13 14:33:53              , 2017-09-13 16:12:36
---------------------------------------------------------------------------------------
[root@c7 app]#chmod 644 f4
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 16:13:00

Summary:
  Total number of files:    5
  Added files:          0
  Removed files:        0
  Changed files:        1


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

changed: /app/f4

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


File: /app/f4
 Atime    : 2017-09-13 15:39:08              , 2017-09-13 16:12:49
 Ctime    : 2017-09-13 14:33:53              , 2017-09-13 16:12:58

aide是一个很好的监控文件,可以用它监控一些重要的文件,比如不会经常变动的二进制文件,被入侵时串改文件,可以及时发现并解决问题,避免不必要的损失

你可能感兴趣的:(【CentOS实用篇】之aide文件监控)