linux敏感目录安全加固需四层防护:一、权限最小化(如/root设700);二、auditd细粒度审计(-w /etc -p wa);三、rsyslog集中日志留存与轮转;四、inotifywait实时告警。

对敏感目录(如 /etc、/root、/var/log、/home/*/.* 等)实施访问权限审计与日志监控,是Linux安全加固的关键环节。核心在于:权限最小化 + 操作可追溯 + 异常可告警。
一、严格控制敏感目录的访问权限
权限设置是第一道防线,避免因宽松权限导致未授权读写或执行。
-
/etc:应为
drwxr-xr-x(755),属主 root:root;关键文件如/etc/shadow必须为-rw-------(600) -
/root:必须为
drwx------(700),禁止其他用户进入或列出内容 -
/var/log:建议
drwxr-x---(750),属组syslog或adm,便于日志轮转工具写入,但限制普通用户访问 - 检查命令:
ls -ld /etc /root /var/log;批量修复示例:sudo chmod 700 /root && sudo chmod 750 /var/log
二、启用auditd对敏感目录进行细粒度访问审计
auditd 是内核级审计框架,能精确记录谁、何时、对哪些文件/目录做了何种操作(read/write/execute/attribute change)。
- 添加监控规则(永久生效):
编辑/etc/audit/rules.d/sensitive-dir.rules,写入: -
-w /etc -p wa -k etc_access-w /root -p wa -k root_access-w /var/log -p wa -k log_access
(-p wa表示监控写入和属性修改;-k指定检索关键字) - 重载规则:
sudo augenrules --load或sudo systemctl restart auditd - 实时查看审计事件:
sudo ausearch -k etc_access | aureport -f -i
三、配置rsyslog或journalctl集中记录并保留审计日志
auditd 日志默认存于 /var/log/audit/audit.log,需防止被覆盖或误删,并支持长期归档与分析。
- 编辑
/etc/audit/auditd.conf,确保:max_log_file = 10(单位MB)num_logs = 5(保留5个滚动日志)max_log_file_action = rotate(满则轮转,非忽略) - 将 audit 日志转发至 rsyslog(增强可靠性):
在/etc/rsyslog.d/audit.conf中添加:if $programname == 'auditd' then /var/log/audit/audit.log& stop - 启用日志轮转:
sudo logrotate -f /etc/logrotate.d/auditd
四、部署轻量级实时监控与告警(以inotifywait + shell脚本为例)
auditd 侧重事后审计,而 inotifywait 可实现毫秒级事件响应,适合关键目录的即时告警。
- 安装:
sudo apt install inotify-tools(Debian/Ubuntu)或sudo yum install inotify-tools(RHEL/CentOS) - 编写监控脚本
/usr/local/bin/watch-etc.sh: -
#!/bin/bashinotifywait -m -e create,delete,modify,attrib,moved_to /etc --format '%w%f %e %T' --timefmt '%Y-%m-%d %H:%M:%S' | while read file event time; doecho "[$time] ALERT: $event on $file" | logger -t "INOTIFY-ETC"echo "[$time] $event $file" | mail -s "ETC CHANGE ALERT" admin@example.comdone - 用 systemd 托管该服务,确保开机自启并自动恢复异常退出
权限控制、内核审计、日志留存、实时响应——四层叠加,才能真正守住敏感目录的安全边界。不复杂但容易忽略细节,比如 audit 规则未持久化、logrotate 配置缺失、或监控脚本没加守护机制。











