13.13. 使用 AIDE 进行入侵检测
AIDE (高级入侵检测环境)是一个文件和目录完整性检查器。它用于检测未授权文件篡改或更改的事件。例如,如果系统密码文件发生更改,AIDE 可以提醒您。
AIDE 分析系统文件并编译文件哈希的完整性数据库。此数据库用于验证文件和目录的完整性,并检测更改。如需更多信息,请参阅 AIDE 服务支持的报告选项, 以及 AIDE 服务如何影响系统升级。
流程
director 包含 AIDE 服务。您可以添加 AIDE 规则,以指定 AIDE 服务用来创建其完整性数据库的目录。例如,您可以创建以下文件:
注意这个示例没有主动维护或基准测试,因此您应该选择适合您的要求的 AIDE 值。
resource_registry: OS::TripleO::Services::Aide: /usr/share/openstack-tripleo-heat-templates/deployment/aide/aide-baremetal-ansible.yaml parameter_defaults: AideRules: 'TripleORules': content: 'TripleORules = p+sha256' order: 1 'etc': content: '/etc/ TripleORules' order: 2 'boot': content: '/boot/ TripleORules' order: 3 'sbin': content: '/sbin/ TripleORules' order: 4 'var': content: '/var/ TripleORules' order: 5 'not var/log': content: '!/var/log.*' order: 6 'not var/spool': content: '!/var/spool.*' order: 7 'not nova instances': content: '!/var/lib/nova/instances.*' order: 8在本例中,第一个 AIDE 规则是名为
TripleORules的别名,它指定包含目录的所有规则的通用属性。创建并使用此别名可确保您不需要为每个规则重复这些属性。p+sha256的指定属性代表以下 AIDE 指令:监控所有文件权限p,其完整性为sha256。有关创建复杂 AIDE 规则的更多信息,请参阅 创建复杂的 AIDE 规则。有关 AIDE 属性的完整列表,请查看 AIDE MAN 页面( https://aide.github.io/)。
-
将设置保存为
/home/stack/templates/目录中名为aide.yaml的环境文件。 在
openstack overcloud deploy命令中包含此/home/stack/templates/aide.yaml环境文件,以及特定于您环境的所有其他必要的 heat 模板和环境文件:openstack overcloud deploy --templates ... -e /home/stack/templates/aide.yaml
13.13.1. 创建复杂的 AIDE 规则 复制链接链接已复制到粘贴板!
要提高 AIDE 规则的复杂性,您可以实施复杂的 AIDE 别名或使用支持的 AIDE 值。
您可以实施复杂的 AIDE 别名,将一组复杂的 AIDE 指令合并到您创建的所有 AIDE 规则中。您可以
例如,以下别名转换为以下 AIDE 指令:监控权限、索引节点、链接数、用户、组、大小、块数、mtime、ctime,使用 sha512 作为校验和生成:
MyAlias = p+i+n+u+g+s+b+m+c+sha512
别名必须是您创建的第一个 AIDE 规则,因为它会递归应用到实现它的相关规则。
别名后,您必须指定指定 AIDE 服务应包含和排除哪些目录的规则。您可以使用正则表达式。例如,使用 ! operator 排除这些特定子目录: !/var/logxz 和 !/var/spool198.51.100.0/24。
您可以在 AIDE 规则中使用以下 AIDE 值:
-
AideConfPath: aide 配置文件的完整 POSIX 路径,默认为/etc/aide.conf。如果没有要求更改文件位置,则建议使用默认路径来坚持。 -
AideDBPath: AIDE 完整性数据库的完整 POSIX 路径。这个值是可配置的,允许操作员声明自己的完整路径,因为通常 AIDE 数据库文件存储在只读文件挂载上。 -
AideDBTempPath: AIDE 完整性临时数据库的完整 POSIX 路径。AIDE 初始化新数据库时会创建此临时文件。 -
aideHour: 这个值是设置 hour 属性作为 AIDE cron 配置的一部分。 -
AideMinute: 这个值是设置 minute 属性,作为 AIDE cron 配置的一部分。 -
AideCronUser: 这个值是将 linux 用户设置为 AIDE cron 配置的一部分。 -
AideEmail: 此值设置每次进行 cron 运行时接收 AIDE 的电子邮件地址。 -
AideMuaPath: 这个值设置邮件用户代理的路径,用于将 AIDE 报告发送到AideEmail中设置的电子邮件地址。
13.13.2. AIDE 服务支持的报告选项 复制链接链接已复制到粘贴板!
AIDE director 服务允许您配置 cron 作业。默认情况下,它将报告发送到 /var/log/audit/。
如果要使用电子邮件警报,则启用 AideEmail 参数,以将警报发送到配置的电子邮件地址。
当您依赖电子邮件进行关键警报时,这个报告方法可能会容易受到系统中断和非预期的消息过滤的影响。
13.13.3. AIDE 服务对系统升级的影响 复制链接链接已复制到粘贴板!
执行升级时,AIDE 服务将自动重新生成一个新的完整性数据库,以确保正确重新计算所有升级的文件,使其具有更新的校验和。
如果 openstack overcloud deploy 被调用为初始部署的后续运行,并且更改了 AIDE 配置规则,则 director AIDE 服务将重建数据库,以确保新配置属性封装在完整性数据库中。