如何在Linux中使用“AIDE”检查文件和目录的完整性

AIDE(高级入侵检测环境)是一个免费的入侵检测工具,它使用预定义的规则来检查Linux中的文件和目录完整性。

在我们关于加强和保护CentOS 7的大型指南中,在“ 内部保护系统 ”一节中,我们列出的用于内部系统保护以防病毒,rootkit,恶意软件和检测未授权活动的有用安全工具之一是AIDE

AIDE高级入侵检测环境 )是一个小而强大的免费开源入侵检测工具,它使用预定义的规则来检查类Unix操作系统(如Linux)中的文件和目录完整性。 它是用于简化客户端/服务器监视配置的独立静态二进制文件。

它功能丰富:使用纯文本配置文件和数据库使其易于使用; 支持多种消息摘要算法,例如但不限于md5,sha1,rmd160,tiger; 支持常用文件属性; 还支持强大的正则表达式来选择性地包含或排除要扫描的文件和目录。

它也可以编译,支持Gzip压缩,Posix ACL,SELinux,XAttrs和扩展文件系统属性。

Aide通过创建一个数据库(它只是文件系统的选定部分的一个快照),通过配置文件中定义的正则表达式规则来工作。 一旦这个数据库被初始化,你可以验证系统文件的完整性。 本指南将介绍如何在Linux中安装和使用助手。

如何在Linux中安装AIDE

Aide被封装在主流Linux发行版的官方软件库中,安装它使用软件包管理器运行你的发行版命令。

# apt install aide 	   [On Debian/Ubuntu]
# yum install aide	   [On RHEL/CentOS] 	
# dnf install aide	   [On Fedora 22+]
# zypper install aide	   [On openSUSE]
# emerge aide 	           [On Gentoo]

安装完成后,主配置文件是/etc/aide.conf 要查看安装的版本以及编译时间参数,请在终端上运行以下命令:

# aide -v
示例输出
Aide 0.14
Compiled with the following options:
WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

您可以使用您最喜爱的编辑器打开配置。

# vi /etc/aide.conf

它具有定义数据库位置,报告位置,缺省规则,数据库中包含的目录/文件的指令。

了解默认助理规则

AIDE默认规则

AIDE默认规则

使用上述默认规则,例如,您可以在aide.conf文件中定义新的自定义规则。

PERMS = p+u+g+acl+selinux+xattrs

PERMS规则仅用于访问控制,它将根据文件/目录权限,用户,组,访问控制权限,SELinux上下文和文件属性检测对文件或目录的任何更改。

这只会检查文件内容和文件类型。

CONTENT = sha256+ftype

这是以前规则的扩展版本,它检查扩展内容,文件类型和访问。

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

下面的DATAONLY规则将帮助检测所有文件/目录内数据的任何更改。

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256
配置助手规则

配置助手规则

定义规则来观察文件和目录

一旦你定义了规则,你可以指定要观看的文件和目录。 考虑到上面的PERMS规则,这个定义将检查根目录中所有文件的权限。

/root/\..*  PERMS

这将检查/ root目录中的所有文件以进行任何更改。

/root/   CONTENT_EX

为了帮助您检测/ etc /下所有文件/目录内数据的任何更改,请使用此。

/etc/   DATAONLY 
配置文件系统的辅助规则

配置文件系统的辅助规则

使用AIDE在Linux中检查文件和目录完整性

首先构建一个数据库,对照将使用--init标志执行的检查。 预计将在系统连接到网络之前完成此操作。

下面的命令将创建一个数据库,其中包含您在配置文件中选择的所有文件。

# aide --init
初始化助手数据库

初始化助手数据库

然后在继续之前使用此命令将数据库重命名为/var/lib/aide/aide.db.gz

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

建议将数据库移到安全的位置,可能位于只读介质或其他机器上,但要确保更新配置文件以便从那里读取。

在创建数据库之后,您现在可以使用--check标志来--check文件和目录的完整性。

# aide --check

它将读取数据库中的快照,并将其与系统磁盘中找到的文件/目录进行比较。 如果发现您可能不期望的地方发生了变化,则会生成一份报告,然后您可以查看。

运行文件完整性检查

运行文件完整性检查

由于没有对文件系统进行更改,因此只能得到类似于上面的输出。 现在尝试在配置文件中定义的区域中创建文件系统中的一些文件。

# vi /etc/script.sh
# touch all.txt

然后再运行一次检查,应该报告上面添加的文件。 这个命令的输出取决于你为检查而配置的文件系统的部分,可能是冗长的超时。

# aide --check
检查文件系统更改

检查文件系统更改

您需要定期运行辅助检查,并且在已经选择的文件发生任何更改的情况下,或者在配置文件中添加新的文件定义时,请始终使用--update选项更新数据库:

# aide --update

运行数据库更新后,为了将来的扫描使用新数据库,请将其重命名为/var/lib/aide/aide.db.gz

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

目前为止就这样了! 但请注意这些重要的一点:

  • 大多数入侵检测系统AIDE(包括AIDE)的一个特点是它们不会为系统上的大多数安全回路孔提供解决方案。 然而,他们通过帮助系统管理员检查对系统文件/目录的任何改变来帮助缓解入侵响应过程。 所以你应该时刻保持警惕,不断更新你目前的安全措施。
  • 强烈建议将新创建的数据库,配置文件和AIDE二进制文件保存在安全位置,如只读介质(如果从源代码安装,则可能)。
  • 为了提高安全性,请考虑签署配置和/或数据库。

有关更多信息和配置,请参阅其手册页或查看AIDE主页: http//aide.sourceforge.net/