我在尝试启动auditd服务时收到以下错误:
auditctl[2144]:Error - audit support not in kernel
auditctl[2144]:Cannot open netlink audit socket
auditctl[2144]:Started Security Auditing Service.
systemd[1]:auditd.service: main process exited, code=exited, status=1/FAILURE
systemd[1]:Unit auditd.service entered failed state.
工具的内核配置文件/模块是什么auditctl
?我不被允许升级内核。
答案1
这意味着它CONFIG_AUDIT
没有在您的内核上设置,并且如果不更改内核或至少编辑一些启动参数,您将无法完成这项任务。
您将需要:
- 从您的发行版提供商处下载启用了审核的内核,或者
CONFIG_AUDIT
如果您的发行版未提供此类内核,则使用启用编译您的内核 - 如果您的内核是
CONFIG_AUDIT
使用启用(见下文)编译的,请添加内核参数audit=1
- 请参阅GRUB 安静启动。这是您需要编辑的文件。- 请注意,这只是一个示例。如果您使用的是不是 GRUB 的其他引导加载程序,您将需要研究它的文档,了解如何将内核选项添加到默认内核条目或所有内核条目中。举个例子,
systemd-boot
有options=
执行此任务的参数并将其启用到条目。
- 请注意,这只是一个示例。如果您使用的是不是 GRUB 的其他引导加载程序,您将需要研究它的文档,了解如何将内核选项添加到默认内核条目或所有内核条目中。举个例子,
如何检查当前内核是否启用了此功能:
在基于 Red Hat 和 Debian 的发行版上,通常内部/boot
有一个名为 的配置文件config
,并uname -r
附加(内核版本)。例子:
[root@host ~]# grep CONFIG_AUDIT /boot/config-`uname -r`
CONFIG_AUDIT_ARCH=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y
在使用该选项编译的发行版上,您可以通过加载内核模块在虚拟目录结构CONFIG_IKCONFIG
中获取当前配置文件的压缩版本。例子:/proc
configs
[root@host ~]# modprobe configs ; gunzip -dc /proc/config.gz | grep AUDIT
# CONFIG_AUDIT is not set
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set