香港VPS在CentOS上配置基于主机的入侵检测系统
一、AIDE的概念AIDE:Advanced Intrusion Detection Environment,是一款入侵检测工具,主要用途是检查文档的完整性。AIDE在本地构造了一个基准的数据库,一旦操作系统被入侵,可以通过对比基准数据库而获取文件变更记录,使用aide.conf作为其配置文档。AIDE数据库能够保存文档的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小连同连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文档的校验码或散列号。
二、在 CentOS或RHEL上安装AIDE
AIDE的初始安装(同时是首次运行)最好是在系统刚安装完后,并且没有任何服务暴露在互联网甚至局域网时。在这个早期阶段,我们可以将来自外部的一切闯入和破坏风险降到最低限度。事实上,这也是确保系统在AIDE构建其初始数据库时保持干净的唯一途径。(LCTT 译注:当然,如果你的安装源本身就存在安全隐患,则无法建立可信的数据记录)
出于上面的原因,在安装完系统后,我们可以执行下面的命令安装AIDE:
#yum install aide
三、配置AIDE
默认配置文件是/etc/aide.conf,该文件介绍了几个示例保护规则(如FIPSR,NORMAL,DIR,DATAONLY),各个规则后面跟着一个等号以及要检查的文件属性列表,或者某些预定义的规则(由+分隔)。你也可以使用此种格式自定义规则。
FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
例如,FIPSR和CONTENT_EX上面的例子说明,规则将检查下列属性的不一致性:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时间(m)、创建时间(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和(sha256和sha512)。
定义的规则可灵活地用于不同的目录和文件(用正则表达式表示)。
对于/etc中的备份文件(如/etc/.*~)则不应用任何规则,也没有规则用于/etc/mtab文件。对于/etc中的其它一些选定的子目录或文件,使用CONTENT_EX
定义并应用正确的规则到系统中正确的位置,是使用AIDE最难的一部分,但作一个好的判断是一个良好的开始。作为首要的一条规则,不要检查不必要的属性。例如,检查/var/log或/var/spool里头的文件的修改时间将导致大量误报,因为许多的应用程序和守护进程经常会写入内容到该位置,而这些内容都没有问题。此外,检查多个校验值可能会加强安全性,但随之而来的是AIDE的运行时间的增加。
可选的,如果你使用MAILTO变量指定电子邮件地址,就可以将检查结果发送到你的邮箱。将下面这一行放到/etc/aide.conf中的任何位置即可。
MAILTO=root@localhost
四、首次运行AIDE
运行以下命令来初始化AIDE数据库:
#Aide -init
根据/etc/aide.conf生成的/var/lib/aide/aide.db.new.gz文件需要被重命名为/var/lib/aide/aide.db.gz,以便AIDE能读取它:
现在,是时候来将我们的系统与数据库进行第一次校对了。任务很简单,只需运行:
#Aide
在没有选项时,AIDE假定使用了--check选项。
如果在数据库创建后没有对系统做过任何修改,AIDE将会以OK信息来结束本次校对。
五、生产环境中管理AIDE
在构建了一个初始AIDE数据库后,作为不断进行的系统管理活动,你常常需要因为某些合法的理由更新受保护的服务器。每次服务器更新后,你必须重新构建AIDE数据库,以更新数据库内容。要完成该任务,请执行以下命令:
# aide --update
要使用AIDE保护生产系统,可能最好通过任务计划调用AIDE来周期性检查不一致性。例如,要让AIDE每天运行一次,并将结果发送到邮箱:
# crontab -e
0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE run for $HOSTNAME" your@email.com
测试AIDE检查文件篡改
下面的测试环境将演示AIDE是如何来检查文件的完整性的。
测试环境 1
cat /dev/null > /etc/fake
测试环境 2
让我们修改文件权限,然后看看它是否被检测到。
#chmod 644 /etc/aide.conf
测试环境 3
最后,让我们修改文件内容(如,添加一个注释行到/etc/aide.conf)。
#echo "#This is a comment" >> /etc/aide.conf
结尾
如果你曾经发现你自己有很好的理由确信系统被入侵了,但是第一眼又不能确定到底哪些东西被改动了,那么像AIDE这样一个基于主机的入侵检测系统就会很有帮助了,因为它可以帮助你很快识别出哪些东西被改动过,而不是通过猜测来浪费宝贵的时间。
页:
[1]