安全审计日志清理问题:清理不当,占用大量磁盘空间

1. 检查日志文件大小与磁盘使用情况

首先确认日志文件的大小以及磁盘使用情况。

# 查看日志文件大小 
ls -lh /var/log/audit/
 
# 检查磁盘使用情况
df -h

如果日志文件过大或磁盘空间不足,需要清理日志。


2. 启用日志轮换机制

通过 logrotate 管理日志文件,定期压缩和删除旧日志。

# 编辑 logrotate 配置文件 
sudo nano /etc/logrotate.d/audit

添加以下内容:

/var/log/audit/audit.log  {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root root 
    sharedscripts 
    postrotate 
        /bin/killall -USR1 auditd 2>/dev/null || true
    endscript
}
  • daily:每天轮换一次日志。
  • rotate 7:保留最近 7 天的日志。
  • compress:压缩旧日志以节省空间。

保存后测试配置:

sudo logrotate -d /etc/logrotate.d/audit

3. 手动清理旧日志

如果磁盘空间紧急,可以手动清理旧日志文件。

# 示例:删除超过 30 天的日志
sudo find /var/log/audit/ -type f -mtime +30 -exec rm {} \;
 
# 示例:清空当前日志文件
sudo truncate -s 0 /var/log/audit/audit.log 

注意:手动清理前需确认日志已备份或不再需要。


4. 调整日志存储策略

根据需求调整日志存储策略,避免日志文件过大。

  • 限制单个日志文件大小
    修改 auditd 配置文件 /etc/audit/auditd.conf :

    max_log_file = 10   # 单个日志文件最大大小(单位:MB)
    num_logs = 5        # 保留的日志文件数量
    max_log_file_action = ROTATE  # 达到最大大小时轮换日志 
    

    保存后重启服务:

    sudo systemctl restart auditd
    
  • 集中式日志管理
    将日志发送到远程服务器或云存储,减少本地存储压力:

    # 示例:配置 rsyslog 发送日志到远程服务器
    sudo nano /etc/rsyslog.conf  
    

    添加以下内容:

    *.* @log-server:514 
    

    保存后重启服务:

    sudo systemctl restart rsyslog
    

5. 监控磁盘空间

设置磁盘空间监控机制,及时发现并处理空间不足问题。

# 示例:使用 df 命令监控磁盘空间 
df -h | awk '$5 > 80 {print "磁盘空间不足"}'
 
# 示例:设置定时任务发送告警
crontab -e 

添加以下内容:

0 * * * * df -h | awk '$5 > 80 {print "磁盘空间不足"}' | mail -s "磁盘告警" admin@example.com 

6. 防止误删重要日志

在清理日志时,确保不会误删重要数据。

  • 备份后再清理
    在删除日志前,先将日志备份到其他位置:

    sudo tar -czf /backup/audit_logs_$(date +%F).tar.gz  /var/log/audit/
    
  • 设置文件保护属性
    对重要日志文件设置不可更改属性:

    sudo chattr +i /var/log/audit/audit.log  
    

7. 查看日志排查问题

如果清理后仍存在问题,可以通过日志排查原因。

# 查看系统日志 
journalctl -xe | grep audit 
 
# 查看 logrotate 日志 
cat /var/log/syslog | grep logrotate

根据日志中的错误信息,采取相应措施。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容