一、操作目的和应用场景
 
(一)目的
 
CentOS 8系统安装配置aide入侵检测软件,并使用aide软件进行文件完整性检查。
 
 
 
(二)简介
 
1. 作用
 
AIDE(Advanced Intrusion Detection Environment,高级入qin检测环境),主要用于检测文件的完整性。
 
 
2. 原理
 
AIDE软件为系统文件生成初始的散列值数据库,然后每次执行检查命令时,aide会将之前生成的校验码和当前文件的校验码进行对比,并且输出报告,主要检查三类文件(修改过的,新增加的,删除的)。
 
AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)等。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列值。
 
在系统安装完毕,要连接到网络上之前,系统管理员应该建立新系统的AIDE数据库。这第一个AIDE数据库是系统的一个快照和以后系统升级的准绳。数据库应该包含这些信息:关键的系统二进制可执行程序、动态连接库、头文件以及其它总是保持不变的文件。这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录。
 
一旦发现系统被侵入,系统管理员可能会使用ls、ps、netstat以及who等系统工具对系统进行检查,但是所有这些工具都可能被特洛伊木马程序代替了。可以想象被修改的ls程序将不会显示任何有关入侵的文件信息,ps也不会显示任何入侵进程的信息。即使系统管理员已经把关键的系统文件的日期、大小等信息都打印到了纸上,恐怕也无法通过比较知道它们是否被修改过了,因为文件日期、大小等信息是非常容易改变的,一些比较好的rootkit可以很轻松地对这些信息进行假冒。
 
虽然文件的日期、大小等信息可能被假冒,但是假冒某个文件的一个散列值就非常困难了,更不要说假冒所有AIDE支持的散列值了。在系统被侵入后,系统管理员只要重新运行AIDE,就能够很快识别出哪些关键文件被攻击者修改过了。
 
不过,要注意这也不是绝对的,因为AIDE可执行程序的二进制文件本身可能被修改了或者数据库也被修改了。因此,应该把AIDE的数据库放到安全的地方,而且进行检查时要使用保证没有被修改过的程序。
 
tripwire也是入侵检测软件,但是操作比较复杂,aide可以替代tripwire。
 
 
 
二、操作步骤
 
(一)安装aide
 
1、 CentOS 8系统安装aide
 
 
yum makecache  //更新软件列表
 
yum install aide  //在线安装
 
 
2、查看aide版本和编译选项
 
 
aide -v
 
 
 
 
 
 通过查看AIDE的编译选项可了解当前安装的AIDE所支持的检查功能。 
 
 
(二)使用默认配置进行文件完整性检查
 
1、 创建新的数据库
 
 
 
 aide  
 --init  
  //生成包含文件系统中所有文件的数据库 
 
 
 
 
 
 aideinit程序将按照 
 /etc/aide.conf 
 文件中 
 DBDIR 
 的配置,在下面位置创建新的数据库文件: 
 
 
 /var/lib/aide/aide.db.new.gz 
 
 
 
 
 
 cp  
 /var/lib/aide/aide.db.new.gz 
   
 /var/lib/aide/aide.db 
 .gz 
 
 
 
 
 
 // 
 默认会检查文件系统中的全部文件和目录,包括 
 / 
 proc这样的虚拟目录。 
 
 
 aide -c /etc/aide.conf --check 
 
 
 
 
 
 而 
 /proc 
 这样的目录显然是不需要检查的,因此应指定 
 aide的 
 检查范围。 
 
 
 
 
 
 
 aide -c /etc/aide.conf --limit / 
 bin 
  --check 
 
 
 
 
(三)使用自定义的配置进行文件完整性检查
 
1、 创建自定义配置文件
 
 
 
 vi /home/user1/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 
 
 
 
 
 MYRULE = p+n+u+g+s+m+c+xattrs+md5+sha512 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 MYRULE = p+n+u+g+s+m+c+xattrs+md5+sha512的含义为: 
 
 
 p 
 ermissions,  
 n 
 umber of links,  
 u 
 ser,  
 g 
 roup,  
 m 
 odification time, inode/file  
 c 
 hange time, e 
 x 
 tended file  
 attr 
 ibutes,  
 MD5 
  checksum,  
 SHA512 
  checksum. 
 
 
 
 
 
 aide -c /home/ 
 user1 
 /aide.conf --config-check 
 
 
 
 
 
 
 
 
 
 aide --init 
  -c  
 /home/user1/aide.conf 
 
 
 
 
 
 
 
 cp  
 /var/lib/aide/aide.db.new.gz 
   
 /var/lib/aide/aide.db 
 .gz 
 
 
 
 
 
 
 
 
 aide -c /home/user1/aide.conf --check 
 
 
 
 
 
 由于在被监视的目录中没有变化,所以检查结果显示文件系统和数据库之间没有差异。 
 
 
 
 
 touch /bin/aide_test 
   //在被监视目录中创建文件 
 
 
 touch /etc 
   //修改 
 /etc 
 目录的时间 
 
 
 touch /home/aide_test1  // 
 在被排除的目录中创建文件 
 
 
 touch /usr/share/aide_test2  // 
 在被监视和被排除的路径之外的目录中创建文件 
 
 
 
 aide -c /home/user1/aide.conf --check 
   //再次进行完整性检查 
 
 
 
 
 
 检测到在被监视路径中出现的新文件,以及目录的 
 modify和change 
 时间的变化。 
 
 
 以上说明 
 aide可以使用自定义配置正常进行检测。 
 
 
(四)自动化检查文件完整性
 
 
 crontab -e -u root 
   //编辑crontab,创建计划任务 
 
 
 0 0 * * *  
 aide -c /home/user1/aide.conf --check 
 
 
 
 这样,每个午夜的 
 12点整都会自动进行文件的完整性检查。 
 
 
 
三、参考网址
 
 
 https://kifarunix.com/install-and-configure-aide-on-ubuntu-18-04/