Linux报错:audit: backlog limit exceeded(审计:超出积压限制)

linux,报错,audit,backlog,limit,exceeded,审计,超出,积压,限制 · 浏览次数 : 697

小编点评

**问题原因:** * audit服务记录的审计事件超出默认(或设置)数量,达到或超出容量的审计缓冲区队列。 * 由于尝试“ctrl+z”中断报错未果,只能强行关机,重新开机才能正常系统。 **解决方案:** 1. **增加审计缓冲区空间(audit buffer)** * 使用 `auditctl -b 8192` 等命令设置 `audit_buffer` 参数的大小,其中 8192 代表 87 MiB。 * 例如:`sudo auditctl -b 8192` 2. **禁用 aduit审核** * 编辑 `/etc/audit/audit.rules` 文件,并将 `audit` 规则的 `enabled` 属性设置为 `no`。 * 例如: ``` auditd -E -n -f /etc/audit/audit.rules ``` **注意:** * 启用 `audit` 服务后,请确保系统性能可接受。 * 适当设置 `audit_buffer` 参数值,以避免系统资源不足。 * 禁用 `audit` 后,请确保所有安全软件已正确安装和配置。

正文

Linux报错:audit: backlog limit exceeded(审计:超出积压限制)

系统版本:CentOS Linux release 7.6.1810 (Core)

问题现象:一次巡检中发现业务系统打不开,对应的Linux服务器ssh连接不上,但是能ping通,于是在VMware vcenter 远程控制台打开操作系统界面,报错提示 audit: backlog limit exceeded,尝试“ctrl+z”中断报错未果,只能强行关机,重新开机能正常系统。

问题原因:audit服务记录的审计事件超出默认(或设置)数量 ,达到或超出容量的审计缓冲区队列也可能导致实例锁定或持续无响应状态。

解决办法:由于尝试“ctrl+z”中断报错未果,只能强行关机,重新开机才能正常系统,究其原因不采取措施,审计事件再次溢出依旧会出现该问题。

方法一:增加审计缓冲区空间(audit buffer)

注意:增加审计缓冲区会消耗系统的更多内存。设置 backlog_limit 参数的大小取决于系统的总内存。如果系统有足够的内存,则可以尝试将现有的 backlog_limit 参数值加倍。

审计积压所需内存的计算公式。使用此计算公式来确定在不对系统造成内存压力的情况下可以设置多大的积压队列。
一个审计缓冲区 = 8970 字节
审计缓冲区的默认数量(backlog_limit 参数)= 320
320 * 8970 = 2870400 字节(2.7MiB)

在本示例中,我将 backlog_limit 参数值更改为 10000 个缓冲区。根据上述计算公式,10000 个缓冲区等于87MiB 内存。您可以根据内存计算公式使用任何值。

1、查看当前默认配置:auditctl -s

2、在内核中设置最大现有审计缓冲量:auditctl -b 8192

永久设置,修改规则配置文件:vi /etc/audit/audit.rules

参数说明:
-D              删除所有规则
-b              设置audit缓冲大小,若缓冲占满了,则kernel会发出一个失败标记
-f 0|1|2        设置audit获取错误的等级。有0/1/2三个值。0是不输出日志;1为输出printk日志;2为最高级、会输出大量日志信息
-e 0|1          启用/禁用audit审核

3、重新启动 auditd 服务。

service auditd stop
service auditd start
service auditd restart

方法二:禁用aduit审核,不进行审计事件记录(不建议)

参考链接:7.5. 定义审计规则 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

 

知识拓展:Linux系统审核

Linux Audit 系统提供了一种方式来跟踪系统中的安全相关信息。根据预配置的规则,审计会生成日志条目,以记录有关系统上发生事件的尽可能多的信息。对于关键任务环境而言,此信息对于确定安全策略的违反者及其执行的操作至关重要。Audit 不会为您的系统提供额外的安全性,而是可用于发现系统上使用的安全策略违规。通过 SELinux 等其他安全措施可以进一步阻止这些冲突。
以下列表总结了审计可以在其日志文件中记录的一些信息:
  • 事件的日期和时间、类型和结果.
  • 主题和对象的敏感度标签。
  • 事件与触发事件的用户的身份相关联。
  • 对 Audit 配置的所有修改,并尝试访问 Audit 日志文件。
  • 所有身份验证机制的使用,如 SSH 和 Kerberos 等。
  • 对任何受信任数据库的更改,如 /etc/passwd.
  • 尝试从系统导入或导出信息.
  • 根据用户身份、主题和对象标签以及其他属性,包含或排除事件。
使用审计系统也是许多安全相关认证的一项要求。审计旨在满足或超过以下认证或合规指南的要求:
  • 受控访问保护配置文件(CAPP)
  • 标记的安全保护配置文件(LSPP)
  • 规则集基本访问控制(RSBAC)
  • 国家工业安全计划操作手册(NISPOM)
  • 联邦信息安全管理法案(FISMA)
  • 支付卡行业 - 数据安全标准(PCI-DSS)
  • 安全技术实施指南(STIG)
审计还包括:
  • 由国家信息保障合作伙伴(NIAP)和最佳安全行业(BSI)评估。
  • 通过红帽企业 Linux 5 上的 LSPP/CAPP/RSBAC/EAL4+ 认证.
  • 红帽企业 Linux 6 上经过操作系统保护配置文件/评估保证级别 4+(OSPP/EAL4+)认证.

使用案例

监视文件访问
审计可以跟踪文件或目录是否已访问、修改、执行或文件属性是否已更改。例如,这可用于检测对重要文件的访问,并在其中一个文件损坏时提供审计跟踪。
监控系统调用
可将审计配置为在每次使用特定系统调用时生成日志条目。例如,这可用于通过监控 settimeofday、clock_adjtime 和其他时间相关系统调用来跟踪系统时间的更改。
记录用户运行的命令
审计可以跟踪文件是否已执行,因此可以定义规则以记录特定命令的每次执行。例如,可以为 /bin 目录中的每个可执行文件定义规则。然后,可以按用户 ID 搜索生成的日志条目,以生成每个用户所执行命令的审计跟踪。
记录系统路径名称的执行
除了观察在规则调用时转换索引节点路径的文件访问之外,审计现在还可以观察路径的执行,即使路径在规则调用中不存在,或者在规则调用后替换了文件。这允许规则在升级程序可执行文件或甚至安装之前继续运行。
记录安全事件
pam_faillock 身份验证模块能够记录失败的登录尝试。也可以将审计设置为记录失败的登录尝试,并提供试图登录的用户的附加信息。
搜索事件
Audit 提供 ausearch 实用程序,可用于过滤日志条目并根据多个条件提供完整的审计跟踪。
运行摘要报告
aureport 实用程序可用于生成记录的事件的日常报告等。然后,系统管理员可以分析这些报告,并进一步调查可疑活动。
监控网络访问
iptables andebtables 实用程序可以配置为触发审计事件,使系统管理员能够监控网络访问。
注意
系统性能可能会受到影响,具体取决于审计收集的信息数量。

与Linux报错:audit: backlog limit exceeded(审计:超出积压限制)相似的内容:

Linux报错:audit: backlog limit exceeded(审计:超出积压限制)

Linux报错:audit: backlog limit exceeded(审计:超出积压限制) 系统版本:CentOS Linux release 7.6.1810 (Core) 问题现象:一次巡检中发现业务系统打不开,对应的Linux服务器ssh连接不上,但是能ping通,于是在VMware v

[转帖]Linux学习14-ab报错apr_pollset_poll: The timeout specified has expired (70007)

https://www.cnblogs.com/yoyoketang/p/10255100.html 前言 使用ab压力测试时候出现报错apr_pollset_poll: The timeout specified has expired (70007),本篇总结了几个ab常见的报错和对应解决办法当

[转帖]Linux-find命令报错: missing argument to `-exec'

https://www.cnblogs.com/yeyuzhuanjia/p/17427143.html 报错提示:find: missing argument to `-exec' 今天写一个清理脚本,用到了find命令。本来是这么写的: find . -type f -mtime +7 -nam

[转帖]linux 部署jmeter&报错处理

一、linux 安装jdk Java Downloads | Oracle 二、 linux上传jmeter 2.1 上传jmeter jmeter 下载地址: Apache JMeter - Download Apache JMeter 注意: 我先在我本地调试脚本(mac环境),调试完成后,再在

Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such table: Users'.

今天使用asp.net core + sqlite 创建了一个demo项目,本地运行一切正常。可以添加,修改,删除数据。一旦发布到服务器上(Linux系统)就报错,错误信息如下: ![](https://img2023.cnblogs.com/blog/2912666/202308/2912666-

[转帖]yum提示Error: rpmdb open failed 报错处理

Linux 下,在使用yum 安装时,可能会报以下错误: [root@localhost tmp]# yum --di sab1 erepo=* erase 1ibX11 rpmdb: Program version 4.7 doesn't match environment version 720

Linux与Windows系统字符集的简要学习

背景 最近同事反馈公司的产品再更新了mysql-8.0.31的驱动jar包后部分功能报错. 问题核心原因 研发这边石磊老师已经找到了. 结论是Mysql8.0.26之后的数据库驱动好像会识别操作系统的编码格式. 进而会导致尤其是stringbuilder等对象的序列化与反序列化的问题. 这里想简单复

[转帖]linux--Segfault详解

linux--Segfault详解 1 简介1.1 段错误的定义1.2 痛点 2 知识点2.1 报错内容2.2 error number 3 排除步骤(借助汇编)3.1 日志确定错误类型3.2 计算相对地址3.3 反汇编该库文件3.4 查找地址对应的汇编语句3.5 在中间件中查找信息 3 排除步骤(

【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided

问题描述 在App Service For Linux 中,部署NodeJS应用,应用启动失败。 报错信息为: 2023-08-29T11:21:36.329731566Z RangeError: Incorrect locale information provided2023-08-29T11:

[转帖]Linux修改文件句柄数及vm.max_map_count、stack size的大小

文章目录 一、修改文件句柄数`1.1.查看当前大小``1.2.临时修改``1.3.永久修改` 二、修改max user processes进程数`2.1.临时修改``2.1.永久修改` 三、调整vm.max_map_count的大小`报错“max virtual memory areas vm.ma