13.13. 使用 AIDE 进行入侵检测
AIDE (高级入侵检测环境)是一个文件和目录完整性检查器。它用于检测未授权文件篡改或更改的事件。例如,如果系统密码文件发生更改,AIDE 可以提醒您。
AIDE 通过分析系统文件,然后编译文件哈希的完整性数据库即可工作。然后,数据库充当一个比较点,以验证文件和目录的完整性并检测更改。
director 包含 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
,带有完整性 checksumsha256
。
有关 AIDE 配置文件可用属性的完整列表,请参见 的 AIDE MAN 页面(https://aide.github.io/)。
完成以下内容以将更改应用到您的部署:
-
将设置保存为
/home/stack/templates/
目录中的名为aide.yaml
的文件。 -
编辑
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 规则
可使用前面描述的格式创建复杂的规则。例如:
MyAlias = p+i+n+u+g+s+b+m+c+sha512
以上指令将转换为以下指令:监控权限、索引节点、链接数、用户、组、大小、块计数、mtime、ctime、ctime,使用 sha256 生成校验和。
请注意,别名应始终具有 1
的顺序位置,这表示它位于 AIDE 规则的顶部,并递归应用到下面的所有值。
在别名后面是要监控的目录。请注意,可以使用正则表达式。例如,我们为 var
目录设置了监控,但使用了 not(!
)语句('!/var/log.*'
和 '!/var/spool.*'
)进行了覆盖。
13.13.2. 其他 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.3. AIDE 的 Cron 配置
AIDE director 服务允许您配置 cron 任务。默认情况下,它将报告发送到 /var/log/audit/
;如果您想要使用电子邮件警报,则启用 AideEmail
参数,以将警报发送到配置的电子邮件地址。请注意,对关键警报的依赖电子邮件可能会受到系统中断和意外消息过滤的影响。
13.13.4. 考虑系统升级的影响
执行升级时,AIDE 服务将自动重新生成一个新的完整性数据库,以确保正确重新计算所有升级的文件具有更新的校验和。
如果 openstack overcloud deploy
作为后续运行调用到初始部署,并且更改了 AIDE 配置规则,则 director AIDE 服务将重建数据库,以确保新配置属性封装在完整性数据库中。