如何在dmesg中禁用无用的“审核成功”日志条目


11

简短版本:如何在Fedora系统上禁用审核消息(dmesg)?


Fedora系统一直在dmesg中记录“审核:成功”消息-这种极端的方式使得dmesg变得不可用,因为它已被这些消息填满(dmesg | grep -v audit为空)。这些消息是完全无用的,因为它们显然想通知用户某些日常内部过程已成功(调试某些内容时可能会感兴趣,但在这种情况下只是噪音)。

甚至命令行界面(使用Ctrl+ Alt+ 切换到非X tty时F2)也变得不可用,因为它总是被这些审计消息所困扰,无法读取用户实际运行的命令的输出。例如,输入用户名(登录)后,会弹出一条审核消息(显然告诉用户已成功格式化/打印了某些内容):

审核:类型= 1131审核(1446913801.945:10129):pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg ='unit = fprintd comm =“ systemd” exe =“ / usr / lib / systemd / systemd”主机名=?addr =?终端=?res =成功”

看来这些消息中的大多数都指示“成功”,但是也有许多审计消息不包含此关键字。运行Chromium会触发数百种此类事件:

审核:类型= 1326审核(1446932349.568:10307):auid = 500 uid = 500 gid = 500 ses = 2 pid = 1593 comm =“ chrome” exe =“ / usr / lib64 / chromium / chrome” sig = 0 arch = c000003e syscall = 273 compat = 0 ip = 0x7f9a1d0a34f4代码= 0x50000

其他消息包括:

审核:类型= 1131审核(1446934361.948:10327):pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg ='unit = NetworkManager-dispatcher comm =“ systemd” exe =“ / usr / lib / systemd / systemd”主机名=?addr =?终端=?res =成功”

审核:类型= 1103审核(1446926401.821:10253):pid = 28148 uid = 0 auid = 4294967295 ses = 4294967295 msg ='op = PAM:setcred Grantors = p am_env,pam_unix acct =“ user” exe =“ / usr / sbin / crond”主机名=?addr =?terminal = cron res = success'

通常,大多数近期审核消息(在撰写本文时)都包含关键字“ NetworkManager ”或“ chrome ”。

如何完全禁用这些消息?


其他要点:

  • 万一有人在想“您应该阅读和分析这些审核消息,而不是禁用它们,它们可能很重要”,不,它们并不重要,它们几乎完全是“成功”消息。无需告诉任何人本应工作的东西实际上就可以工作。但是,如果记录了一条实际上重要的消息,那么在成千上万条无关紧要的消息中将永远不会注意到它。无论如何,在此特定系统上都不需要审核日志记录(它始终在受控环境中运行)。
  • 显然,此系统上的某些配置必须非常错误。但是,它曾经是Fedora的默认安装,每当有新版本发布时便已升级。也许这只是一个简单的设置,需要更改,但是由于它不是手动(故意)更改系统配置而发生的,所以这个stackexchange.com问题有望帮助其他碰巧将其系统设置为相同状态的其他人。
  • 现在它是运行Linux 4.0.6(systemd 219)的Fedora 22系统。
  • 这是标准的Fedora桌面安装,当前正在运行KDE。
  • SELinux被禁用(/ etc / selinux / config设置为“ disabled”)。

更新:升级到Fedora 23(内核4.2.5,systemd 222)后,审核消息比以前少了。


audit2allow您是否考虑过简单地修改与将内核消息打印到控制台有关的kernel.printk值,而不是禁用允许将审核消息写入可以查看的日志的审计功能?在Fedora上默认为“ 7 4 1 7”,更明智的值为“ 3 4 1 7”。
鲍勃·鲍勃(Bob)

Answers:


12

首先,在fedora上,auditd和auditctl都来自同一程序包(以易混淆的方式命名为audit)。因此,如果您没有auditctl,则其他地方有问题。尝试这个:

rpm -ql audit |grep ctl

如果这没有任何帮助,则说明您根本没有安装审核程序包。

其次,您提到的grub.cfg文件中的第一条“人类”语言行在我的系统上说“请勿编辑”。这是对文件的任何手动更改都可能丢失的线索。

在fedora / redhat系统上编辑grub配置的正确位置是您特别建议您不必更改的一个文件(/ etc / default / grub)。实际上,这是进行建议的更改并在内核升级中生存的唯一“安全”方法。这是因为在内核升级期间,它被用作源配置的一部分,以重新生成有效的grub.cfg。查找grub2-mkconfig命令(和它是朋友)。详细信息在这里:https : //fedoraproject.org/wiki/GRUB_2

您的回答没有错,但我发现它有点混乱。我讨厌grub命令行,恕我直言,任何可能会错过在内核命令行上添加空格char的人都可能不会感谢任何人在这条路上走的路。不过,有些人还是喜欢学习我所知道的艰辛方式。

下面的所有命令都需要以root用户身份运行(建议这样做本身是很危险的事情)。

对于正在运行的系统:

auditctl -e 0

如果找不到auditctl,请检查您的PATH并考虑:

dnf install audit

至少应该减少(如果不禁用)消息,直到可以重新启动为止。

要在重启后仍然存在,请编辑/ etc / default / grub并更改GRUB_CMDLINE_LINUX行以在末尾添加“ audit = 0”,然后使用grub2-mkconfig重新生成grub.cfg。最后一步还对更改和正在运行的系统进行了一层验证。


感谢您指出的是,/etc/default/grubgrub2-mkconfig应该被使用。我在回答中添加了更正。
basic6 2015年

6

您可以使用以下方法快速暂时禁用审核

sudo auditctl -e 0

并暂时删除所有规则

sudo auditctl -D

对于将来的靴子,您可以尝试禁用它的开头

 sudo systemctl disable auditd

3

在系统运行时,没有可以禁用的审计服务,但是事实证明,添加引导选项audit=0似乎会禁用所有这些消息。即使在没有运行X的命令行上,系统也可以再次使用。

可以临时设置此选项(更改将不会在重新启动后保留):

  1. 当Grub启动菜单出现(在接通电源后右),击eË DIT引导参数。这将显示一个巨大的文本框。
  2. 向下滚动到以“ linux”开头的行。击中End键将光标移动到该行的末尾。
  3. 输入一个空格字符,以便不中断最后一个选项,然后追加audit=0。例如... LANG=en_US.UTF-8 audit=0...UTF-8audit=0显然不是)。
  4. 注意不要更改任何其他内容。如果您不小心修改了其他选项,请修复它或重新启动并重新开始。
  5. 点击F10以启动系统。

当然,此更改仅在系统运行时才有效。重新启动后,审核洪水将重新出现。要使此更改永久生效,必须永久更改启动配置。在Fedora上,只需进行修改就足够了,/boot/grub2/grub.cfg因为在安装新内核(系统更新)时,grubby应该将最新内核的选项复制到新安装的内核。这意味着,audit=0必须将其附加到此文件的第一linux行(第一menuentry部分)。不必进行更改/etc/default/grub
纠正:实际上,正确和最可靠的方法是使用来编辑/etc/default/grub和重新生成Grub配置grub2-mkconfig -o /boot/grub2/grub.cfg,感谢KnightLordAndMaster指出这一点


有关日志文件中审核日志的其他说明:

作为附带说明,以下行应防止审核日志最终出现在日志文件中,但它们仍会使dmesg和控制台混乱,因此,这本身并不是解决方案。这行将作为第一规则放在/etc/rsyslog.conf

...
#### RULES ####

# no audit
:programname, isequal, "audit" ~

...

现在这将导致以下警告:

 rsyslogd[xxxx]: warning: ~ action is deprecated, consider using the 'stop' statement instead [v8.35.0 try http://www.rsyslog.com/e/2307]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.