任何系统管理员想要在其生产服务器上部署的首要安全措施之一是检测文件篡改的机制——不仅是文件内容,还有它们的属性。AIDE(“高级入侵检测环境”的缩写)是一个开源的基于主机的入侵检测系统。AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整性,包括权限、文件类型、inode、链接数、链接名、用户、组、文件大小、块数、修改时间、添加时间、创建时间、acl、SELinux安全上下文、xattrs和各种特征,包括md5/sha检查值。AIDE扫描(未被篡改的)Linux服务器的文件系统以建立文件属性数据库,然后将服务器文件属性与数据库中的文件属性进行核对,然后在服务器运行时对修改的索引文件发出警告。因此,AIDE必须在系统更新或对其配置文件进行合法修改后重新索引受保护的文件。对于一些客户,他们可能会根据他们的安全策略在他们的服务器上强制执行某种入侵检测系统。然而,无论客户是否要求,系统管理员部署入侵检测系统通常是一个好习惯。在CentOS或RHEL上安装AIDEAIDEAIDEAIDE的初始安装(和首次运行)最好在系统安装后立即完成,并且没有任何服务暴露在Internet甚至LAN上。在这个早期阶段,我们可以最大限度地减少从外面闯入和破坏的风险。事实上,这是确保系统在AIDE构建其初始数据库时保持干净的唯一方法。(LCTT译注:当然,如果你的安装源本身存在安全隐患,是无法建立可信数据记录的)基于以上原因,在安装好系统后,我们可以执行如下命令来安装AIDE:#yuminstallaide我们需要断开我们的机器与网络的连接并执行下面描述的一些基本配置任务。配置AIDE默认配置文件是/etc/aide.conf,它描述了几个示例保护规则(例如FIPSR、NORMAL、DIR、DATAONLY),每条规则后跟一个等号和要检查的文件属性列表,或者some一些预定义的规则(用+分隔)。您还可以使用此格式来自定义规则。FIPSR=p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256NORMAL=FIPSR+sha512例如,上面的例子显示NORMAL规则将检查与以下属性的不一致:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时间(m)、创建时间(c)、访问控制列表(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和(sha256和sha512)。定义的规则可以灵活地用于不同的目录和文件(用正则表达式表示)。条目前的感叹号(!)告诉AIDE忽略子目录(或目录中的文件),可以为其定义附加规则。在上面的例子中,PERMS是/etc机器子目录和文件的默认规则。但是,没有规则适用于/etc中的备份文件(例如/etc/.*~),也没有规则适用于/etc/mtab文件。对于/etc中的一些其他选定的子目录或文件,使用NORMAL规则而不是默认规则PERMS。定义正确的规则并将其应用到系统中的正确位置是使用AIDE最困难的部分,但做出良好的判断调用是一个良好的开端。作为第一条规则,不要检查不必要的属性。比如查看/var/log或/var/spool中文件的修改时间,会导致很多误报,因为很多应用程序和守护进程经常往这个位置写,内容是没有问题的。此外,检查多个校验和可能会增强安全性,但会增加AIDE的运行时间。或者,如果您使用MAILTO变量指定电子邮件地址,则可以将检查结果发送到您的邮箱。将以下行放在/etc/aide.conf中的任意位置。MAILTO=root@localhost要首次运行AIDE,请运行以下命令来初始化AIDE数据库:#aide--init从/etc/aide生成的/var/lib/aide/aide.db.new.gz文件。conf需要重命名为/var/lib/aide/aide.db.gz以便AIDE可以读取它:#mv/var/lib/aide/aide.db.new.gz/var/lib/aide.db。gz现在,该是第一次根据数据库检查我们的系统的时候了。任务很简单,只需运行:#aide当没有选项时,AIDE假设使用了--check选项。如果在创建数据库后没有对系统进行任何修改,AIDE将以OK消息结束校对。在生产环境中管理AIDE构建初始AIDE数据库后,作为一项持续的系统管理活动,出于某些正当理由,您经常需要更新受保护的服务器。每次服务器更新后,您必须重建AIDE数据库以更新数据库内容。为此,请执行以下命令:#aide--update要使用AIDE保护生产系统,最好通过任务计划调用AIDE以定期检查不一致情况。例如,让AIDE每天运行一次并将结果发送到电子邮件:#crontab-e00***/usr/sbin/aide--check|/usr/bin/mail-s"AIDErunfor$HOSTNAME"your@email.com测试AIDE以检查文件篡改以下测试环境将演示AIDE如何检查文件完整性。测试环境1让我们添加一个新文件(如/etc/fake)。#cat/dev/null>/etc/fake测试环境2让我们修改文件权限,看看它是否被检测到。#chmod644/etc/aide.conf测试环境3最后,我们来修改一下文件内容(例如,在/etc/aide.conf中添加注释行)。echo"#Thisisacomment">>/etc/aide.conf在上面的截图中,第一列是文件的属性,第二列是AIDE数据库中的值,第三列是更新后的值.第三列中的空白部分表示该属性尚未更改(例如本例中的ACL)。结论如果您发现自己有充分的理由相信系统已受到威胁,但乍一看无法准确判断发生了什么变化,那么像AIDE这样的基于主机的入侵检测系统会非常有用,因为它可以帮助您快速识别更改的内容,而不是通过猜测浪费宝贵的时间。via:http://xmodulo.com/host-intrusion-detection-system-centos.html作者:GabrielCánepa译者:GOLinux校对:wxy
