先把基础动作做对:运行aide --init生成aide.db.new.gz,然后将其重命名为aide.db.gz,并把权限设为600。少了其中任何一步,aide --check要么直接报“database not found”,要么看起来没动静、实际已经失效。还有几个关键细节也不能忽略:排除规则要写在前面,路径必须足够精确,而最终是否生效,唯一可靠的判断标准其实是退出码。

如何在Linux中配置完整性扫描

直接用 aide,别折腾 md5sum 脚本或定时 sha256sum ——它不防增删、不看权限、不处理硬链接和 SELinux 上下文,纯属自欺欺人。

为什么必须先跑 aide --init 再重命名数据库

安装完 aide 后,aide --init 生成的是 /var/lib/aide/aide.db.new.gz,不是正式库。不重命名就执行 aide --check,会直接报错 database not found

/etc/aide.conf 配置最容易踩的三个坑

默认配置几乎必误报,新手常卡在这一步:语法没错但天天收“Changed”邮件,最后发现是 /etc/resolv.conf/etc/mtab 这类动态文件没排除。

crontab 定时检查必须判断退出码,不能只靠 grep

aide --check 的退出码,才是真正值得信赖的判断依据:0 代表没有任何变更,1 代表确实存在文件变动(Added/Removed/Changed),2 则说明执行过程中间出了问题,比如权限不够、数据库损坏。要是只是拿 grep 管道去抓输出,表面上看省事,实际上会直接漏掉 2 这类错误,也根本分不清到底是“真的发生了变更”,还是“日志写入环节出了故障”。

看到 AddedRemovedChanged 更危险

收到告警后,第一反应不该是查哈希值,而是确认新增或删除行为是否合理。例如 Added: /tmp/.X11-unix/xauth-12345 是临时文件可忽略;但 Added: /usr/local/bin/.shellshock 就极可能是后门。

本文转载于:https://www.php.cn/faq/3003879.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。