温馨提示×

如何在Ubuntu中设置日志审计

小樊
45
2025-10-03 04:53:15
栏目: 智能运维

如何在Ubuntu中设置日志审计

日志审计是监控系统活动、检测安全威胁的关键手段,Ubuntu中主要通过auditd(Linux内核审计框架)实现。以下是详细设置步骤:

1. 安装auditd服务

首先确保系统安装了auditd(核心审计守护进程)及插件:

sudo apt update
sudo apt install auditd audispd-plugins linux-audit

2. 启动并配置auditd服务

  • 启动服务:立即激活auditd守护进程。
    sudo systemctl start auditd
    
  • 设置开机自启:确保系统重启后自动启动auditd。
    sudo systemctl enable auditd
    
  • 验证服务状态:确认服务运行正常(显示“active (running)”即为成功)。
    sudo systemctl status auditd
    

3. 配置auditd基础参数

编辑/etc/audit/auditd.conf文件,调整日志存储与轮换规则(避免日志过大占用磁盘空间):

sudo nano /etc/audit/auditd.conf

关键配置项说明(取消注释并修改):

  • audit_log_file = /var/log/audit/audit.log:指定审计日志路径(默认路径)。
  • audit_log_format = RAW:日志格式(RAW为原始格式,便于后续分析)。
  • max_log_file_action = ROTATE:日志达到最大大小时轮换(而非覆盖)。
  • max_log_file = 10:单个日志文件最大大小(单位:MB,示例为10MB)。
  • num_logs = 7:保留的旧日志文件数量(示例保留7个)。

4. 添加自定义审计规则

审计规则决定了需要监控的系统活动,需编辑/etc/audit/rules.d/audit.rules文件(Ubuntu 18.04及以上版本推荐):

sudo nano /etc/audit/rules.d/audit.rules

常用规则示例

  • 监控进程执行:记录所有用户执行的程序(区分32/64位架构)。
    -a exit,always -F arch=b32 -S execve,execveat -k executed_process
    -a exit,always -F arch=b64 -S execve,execveat -k executed_process
    
  • 监控文件访问:记录对/etc目录(系统配置文件)的所有读写操作。
    -w /etc -p rwxa -k etc_access
    
  • 监控用户登录:记录所有登录/注销事件(包括SSH、本地登录)。
    -w /var/log/auth.log -p wa -k user_login
    
  • 监控sudo使用:记录所有sudo命令的执行(需结合sudo日志配置,见下文)。
    -a exit,always -F path=/usr/bin/sudo -F perm=x -k sudo_usage
    

加载规则:保存文件后,用以下命令使规则生效:

sudo auditctl -R /etc/audit/rules.d/audit.rules

5. 配置sudo命令日志(可选但推荐)

为单独记录sudo命令的使用情况,需修改/etc/sudoers文件:

sudo visudo

在文件末尾添加(避免语法错误):

Defaults logfile="/var/log/sudo.log"
Defaults log_input,log_output

这会将sudo命令的输入/输出记录到/var/log/sudo.log,便于后续关联审计。

6. 查看与管理审计日志

  • 实时查看日志:监控最新的审计事件(按Ctrl+C退出)。
    sudo ausearch -m all -ts recent
    
  • 搜索特定事件:通过“key”(规则中定义的标签)筛选事件(如查找“executed_process”相关事件)。
    sudo ausearch -k executed_process
    
  • 生成统计报告:汇总审计事件(如统计执行过的进程数量)。
    sudo aureport -k -i
    

7. 日志轮换与清理

使用logrotate工具自动管理审计日志(避免日志无限增长):

  • 编辑logrotate配置:创建或修改/etc/logrotate.d/audit文件。
    sudo nano /etc/logrotate.d/audit
    
  • 添加以下内容(示例为每周轮换,保留4周):
    /var/log/audit/*.log {
        weekly
        rotate 4
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
            systemctl kill -s HUP auditd.service
        endscript
    }
    
  • 手动测试轮换:验证配置是否生效。
    sudo logrotate -vf /etc/logrotate.d/audit
    

注意事项

  • 权限控制:审计日志文件(如/var/log/audit/audit.log)需设置为仅root可读(默认权限已满足)。
  • 性能影响:过度监控(如监控所有文件访问)可能增加系统负载,建议仅监控关键路径。
  • 合规性:根据行业规范(如GDPR、等保)调整审计规则,确保日志保留期限符合要求。

通过以上步骤,可在Ubuntu中建立完善的日志审计体系,有效监控系统活动并及时响应安全事件。

0