日志审计是监控系统活动、检测安全威胁的关键手段,Ubuntu中主要通过auditd服务实现细粒度的日志审计。以下是具体设置步骤:
首先确保系统安装了auditd(Linux内核审计框架的核心工具)及插件:
sudo apt update
sudo apt install auditd audispd-plugins linux-audit
sudo systemctl start auditd
sudo systemctl enable auditd
sudo systemctl status auditd # 确认状态为“active (running)”
/etc/audit/auditd.conf,修改以下参数以控制日志大小和保留数量:audit_log_file = /var/log/audit/audit.log # 日志文件路径
audit_log_format = RAW # 日志格式(RAW/rawtext)
max_log_file_action = ROTATE # 日志满时轮换
max_log_file = 100M # 单个日志文件最大大小
num_logs = 5 # 保留的旧日志数量
修改后重启服务生效:sudo systemctl restart auditd
审计规则决定了需要监控的系统活动,需编辑/etc/audit/rules.d/audit.rules(Ubuntu默认规则目录):
-a exit,always -F arch=b32 -S execve,execveat -k executed_process # 32位系统
-a exit,always -F arch=b64 -S execve,execveat -k executed_process # 64位系统
-a exit,always -F arch=b32 -S open,read,write,close -F path=/etc/passwd -F perm=rw -k passwd_access
-a exit,always -F arch=b64 -S open,read,write,close -F path=/etc/shadow -F perm=rw -k shadow_access
-a always,exit -F arch=b32 -S login,ssh -k user_login
-a always,exit -F arch=b64 -S login,ssh -k user_login
sudo auditctl -R /etc/audit/rules.d/audit.rules
ausearch按关键字(如规则key)筛选日志:sudo ausearch -k executed_process # 查看进程执行日志
sudo ausearch -k passwd_access # 查看passwd文件访问日志
aureport生成各类事件的汇总报告(如用户登录、文件访问):sudo aureport -k # 查看所有规则触发的事件
sudo aureport -l # 查看登录事件
sudo aureport -f # 查看文件访问事件
ausearch导出:sudo ausearch -k executed_process > /tmp/executed_process.log
logrotate工具会自动处理auditd日志的轮换(基于/etc/audit/auditd.conf中的配置)。/var/log/audit/audit.log复制到安全存储(如外部磁盘、云存储),避免日志被覆盖或删除。num_logs参数保留的日志数量,手动删除旧日志(如/var/log/audit/audit.log.1)。/var/log/audit目录权限,仅允许root用户访问:sudo chmod 750 /var/log/audit
sudo chown root:adm /var/log/audit
Tripwire或AIDE等工具监控/var/log/audit目录,防止日志被篡改。通过以上步骤,可在Ubuntu中建立完善的日志审计策略,实现对系统活动的全程监控与可追溯性。定期检查日志内容(如异常进程执行、未授权文件访问),能及时发现潜在安全威胁并采取应对措施。