在CentOS系统的日常运维和安全防护中,核心系统文件、配置文件被未授权修改是常见的安全隐患,文件完整性检查通过对比文件的哈希值、权限、属主等属性,能够快速发现文件的异常变动。CentOS系统自带部分基础工具,也可以安装专业的完整性检查工具实现更全面的检测。
常用文件完整性检查工具介绍
CentOS系统下可以选择多种文件完整性检查工具,不同工具的适用场景有所区别:
- md5sum/sha256sum:系统自带的哈希计算工具,适合小范围单个或少量文件的快速校验,无需额外安装
- aide:高级入侵检测环境,轻量且功能完善,支持自定义监控规则和告警,是CentOS官方仓库默认提供的完整性检查工具
- tripwire:老牌的文件完整性检查工具,规则配置灵活,支持多平台,适合对检测精度要求较高的场景
使用系统自带工具快速检测单个文件修改
如果只是需要检测少量关键文件是否被修改,可以直接使用系统自带的sha256sum工具,首先生成文件的基准哈希值,后续比对哈希值是否变化即可判断文件是否被修改。
首先生成关键文件的基准哈希值并保存到文件:
# 计算/etc/passwd的sha256哈希值并保存到基准文件 sha256sum /etc/passwd > /root/passwd_base.txt # 查看基准文件内容 cat /root/passwd_base.txt
当需要检测文件是否被修改时,重新计算哈希值并与基准比对:
# 重新计算/etc/passwd的哈希值并比对 sha256sum -c /root/passwd_base.txt
如果输出etc/passwd: OK说明文件未被修改,如果输出etc/passwd: FAILED则说明文件已经被修改。
使用aide实现系统级文件完整性检测
aide是CentOS下更常用的系统级完整性检查工具,支持监控文件的哈希值、权限、属主、修改时间等多个属性,适合批量监控关键系统文件。
安装aide
CentOS系统默认仓库包含aide,直接使用yum安装即可:
# 安装aide yum install aide -y
配置aide监控规则
aide的配置文件为/etc/aide.conf,默认已经包含常见系统目录的监控规则,也可以根据需求自定义配置。以下是常见的配置项说明:
| 配置项 | 说明 |
|---|---|
| database | 指定aide存储基准数据的数据库路径 |
| database_out | 指定新生成的基准数据库输出路径 |
| /etc p+i+u+g | 监控/etc目录的权限(p)、inode(i)、属主(u)、属组(g)变化 |
| /bin FULL | 对/bin目录进行全属性监控,包括哈希值、大小、时间等所有属性 |
如果需要添加自定义监控目录,比如在配置文件中添加/opt/app DATAONLY,表示只监控/opt/app目录的数据内容变化,不监控权限等属性。
初始化基准数据库
首次使用aide需要先初始化基准数据库,该数据库会记录当前所有被监控文件的属性信息:
# 初始化aide基准数据库 aide --init # 将生成的数据库移动到配置中指定的默认数据库路径 mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
执行文件完整性检查
初始化完成后,执行检查命令即可对比当前文件状态和基准数据库的差异:
# 执行完整性检查 aide --check
如果所有被监控文件都没有修改,不会有额外输出;如果有文件被修改,会输出具体的文件改动信息,例如:
AIDE found differences between database and filesystem!! Changed files: changed: /etc/passwd
定期自动检测配置
可以通过crontab配置aide定期自动执行检查,比如每天凌晨2点执行检查并将结果发送到管理员邮箱:
# 编辑crontab任务 crontab -e # 添加以下内容,每天2点执行检查 0 2 * * * /usr/sbin/aide --check | mail -s "CentOS文件完整性检查报告" admin@ipipp.com
检测结果分析与处理
当文件完整性检查报告文件被修改时,需要先确认修改是否为合法操作:
- 如果是管理员主动修改的配置文件,属于正常变动,可以重新初始化基准数据库更新基准
- 如果是未知的文件修改,需要立即排查修改时间、修改进程,确认是否为入侵行为,同时恢复文件到原始状态
重新初始化基准数据库的命令和首次初始化一致,执行后新的基准会覆盖旧基准:
# 重新初始化基准数据库 aide --init mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
注意事项
- 基准数据库需要妥善保存,避免被篡改,否则会导致检测结果失效
- 监控规则不要过于宽泛,避免监控大量无关文件导致检测效率下降
- 系统升级、软件安装等正常操作会导致部分系统文件变动,需要在操作完成后及时更新基准数据库