1. 安装与启动auditd服务
auditd是Ubuntu系统默认的审计守护进程,负责记录系统活动(如文件访问、命令执行、用户登录等)。首先通过包管理器安装:sudo apt update && sudo apt install auditd audispd-plugins;安装完成后,启动服务并设置开机自启:sudo systemctl start auditd、sudo systemctl enable auditd。
2. 配置审计规则
审计规则定义了需要监控的事件类型,可通过静态配置文件或动态命令添加。静态规则需编辑/etc/audit/rules.d/audit.rules(推荐,避免重启服务),例如监控所有用户的sudo命令:-a always,exit -F arch=b64 -S sudo -k perm_mod(-k为自定义键名,便于后续过滤);动态规则可使用auditctl命令临时添加,如监控/etc/passwd文件的读写操作:sudo auditctl -w /etc/passwd -p rw -k passwd_access。配置完成后,可通过sudo auditctl -l查看当前生效的规则。
3. 查看与分析审计日志
审计日志默认存储在/var/log/audit/audit.log,可使用以下工具进行分析:
perm_mod相关的事件:sudo ausearch -k perm_mod;sudo aureport -i,或查看SELinux相关事件:sudo aureport -m selinux;sudo autrace -p 1234。4. 日志轮换与归档
为防止日志文件过大占用磁盘空间,需使用logrotate工具进行自动轮换。编辑/etc/logrotate.conf或/etc/logrotate.d/auditd(针对auditd日志的专用配置),添加如下规则:
/var/log/audit/audit.log {
weekly # 每周轮换一次
rotate 4 # 保留最近4个日志文件
compress # 压缩旧日志(节省空间)
missingok # 若日志不存在也不报错
notifempty # 若日志为空则不轮换
create 0640 root adm # 创建新日志时的权限和所有者
postrotate # 轮换后执行的命令(重新加载auditd以继续记录)
/usr/bin/systemctl reload auditd > /dev/null 2>&1 || true
endscript
}
配置完成后,logrotate会根据规则自动处理日志。
5. 高级审计工具集成
/etc/selinux/config设置SELINUX=enforcing(强制模式),并结合auditd记录SELinux拒绝事件(如ausearch -m avc);Lynis进行深度安全审计(sudo lynis audit system),或ELK Stack(Elasticsearch+Logstash+Kibana)实现日志的集中化存储与可视化分析。6. 定期维护与响应
sudo使用(ausearch -k perm_mod)时,立即锁定相关账户并调查原因。