草庐IT

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

it-log 2023-03-28 原文

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(审计:超出积压限制)的更多相关文章

  1. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  2. Ruby 日期参数超出范围 - 2

    我正在尝试使用在我的代码中是动态的Time.local来安排时间。在每个月的第一天,我传递的值是Time.local(2009,9,-1,0)。在PHP中,这会将时间设置为上个月的最后一天。在ruby​​中,我只是得到“ArgumentError:参数超出范围”。是我用错了方法还是什么?谢谢。 最佳答案 您应该使用DateTime类而不是Time。(您可能需要先require'date'并安装activesupportgem。)它比Time更通用,并且可以用DateTime.civil(2009,9-1,-1,0)做你想做的事。为天

  3. ruby-on-rails - 限制 will_paginate 中的页数 - 2

    因此,在使用Sphinx时,搜索限制为1000个结果。但是,如果will_paginate生成的结果分页链接超过1000个,请不要考虑这一点,并提供指向超过1000/per_page的页面的链接。设置最大页数或类似内容的明显方法是什么?干杯。 最佳答案 我认为最好将参数:total_entries提交给方法paginate:@posts=Post.paginate(:page=>params[:page],:per_page=>30,:total_entries=>1000)will_paginate将仅为显示1000个结果所需的页

  4. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  5. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  6. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  7. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  8. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

  9. ruby - 评论限制 - 2

    在ruby​​1.9中,放宽了行结束位置的条件,因此我们现在可以用句号开始一行来显示方法调用。当我们混淆了链式和非链式方法,并希望显示下一个非链式方法的开始位置时,这很方便。如果没有这个新功能,我们能做的最好的可能就是使用缩进:method1(args1).method2(args2).method3(args3)method4(args4).method5(args5).method6(args6)或插入一个空行。但这很不方便,因为我们必须注意缩进,同时,不要忘记在每个方法调用之后加上链中最后一个方法调用之后的句点。正因为如此,我制造了很多错误,要么有一个额外的周期,要么有一个缺失的

  10. ruby-on-rails - 报错 - 在 Snow Leopard 上安装 RVM - 2

    我正在尝试在我的SnowLeopard10.6.8上安装RVM,方法是:\curl-Lhttps://get.rvm.io|bash-sstable--ruby我得到这个错误:InstallingRubyfromsourceto:/Users/Villa/.rvm/rubies/ruby-2.0.0-p0,thismaytakeawhiledependingonyourcpu(s)...ruby-2.0.0-p0-#downloadingruby-2.0.0-p0,thismaytakeawhiledependingonyourconnection...ruby-2.0.0-p0-#e

随机推荐