CentOS 上 Inotify 的安全加固与稳健配置
一 基线检查与最小权限
uname -a 与 ls /proc/sys/fs/inotify。inotify-tools(yum install inotify-tools),监控进程以最小权限专用账号运行,避免使用 root 直接执行监控脚本。chown your_user:your_group /var/log/file_audit.log && chmod 600 /var/log/file_audit.log。二 资源限制与稳定性加固
/etc/sysctl.conf 后执行 sysctl -p 生效。
fs.inotify.max_user_watches:建议从 524288 起步;fs.inotify.max_user_instances:建议 1024 起步;fs.inotify.max_queued_events:根据队列压力调整(如 16384 或更高)。lsof | grep inotify、inotifywatch 定位占用进程,清理不必要的监控或优化脚本批量处理逻辑,并检查系统日志 journalctl -xe。三 审计与取证能力
auditd 对关键路径建立系统调用审计规则,并通过关键字检索。示例:
sudo auditctl -a always,exit -F arch=b64 -S openat -F auid>=1000 -F auid!=4294967295 -F path=/path/to/your/target -k user_file_access(按实际架构与路径调整);ausearch -k user_file_access | tail、aureport -au;/etc/audit/rules.d/ 后重启 auditd 服务。四 加固清单与实施要点
| 加固项 | 操作要点 | 建议值或做法 |
|---|---|---|
| 运行身份 | 专用低权限账号 | 禁止 root 直接运行监控脚本 |
| 最小权限 | 目录/日志权限收敛 | 目录对监控账号可读;日志 600,仅授权必要人员 |
| 监控范围 | 路径与事件最小化 | 仅监控必需目录;仅订阅必要事件类型 |
| 内核参数 | 合理上限与持久化 | max_user_watches≥524288;max_user_instances≥1024;max_queued_events≥16384;写入 /etc/sysctl.conf 并执行 sysctl -p |
| 审计联动 | inotify + auditd | 关键路径建立系统调用审计规则并加 key,便于 ausearch/aureport 检索 |
| 资源巡检 | 定期排查泄漏与洪泛 | `lsof |
| 日志保护 | 集中与防篡改 | 统一落盘、权限 600、集中采集与备份 |
以上措施在保障 Inotify 可用性的同时,兼顾最小权限、可审计性与稳定性,降低被滥用或资源耗尽带来的风险。