在centos docker容器内运行auditd时出错:“无法将初始审核启动状态设置为‘启用’,正在退出”

Ped*_*iro 2 audit systemd docker

我正在尝试创建一个systemd启用并安装auditd在其上的 docker 容器。

我正在使用dockerhubcentos/systemd中提供的标准图像。但是当我尝试开始审核时,它失败了。

以下是我为创建并进入 docker 容器而执行的命令列表:

docker run -d --rm --privileged --name systemd -v /sys/fs/cgroup:/sys/fs/cgroup:ro centos/systemd
docker exec -it systemd bash
Run Code Online (Sandbox Code Playgroud)

现在,在 docker 容器内:

yum install audit
systemctl start auditd
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Job for auditd.service failed because the control process exited with error code. See "systemctl status auditd.service" and "journalctl -xe" for details.
Run Code Online (Sandbox Code Playgroud)

然后我运行:

 systemctl status auditd.service
Run Code Online (Sandbox Code Playgroud)

我得到这个信息:

auditd[182]: Error sending status request (Operation not permitted)
auditd[182]: Error sending enable request (Operation not permitted)
auditd[182]: Unable to set initial audit startup state to 'enable', exiting
auditd[182]: The audit daemon is exiting.
auditd[181]: Cannot daemonize (Success)
auditd[181]: The audit daemon is exiting.
systemd[1]: auditd.service: control process exited, code=exited status=1
systemd[1]: Failed to start Security Auditing Service.
systemd[1]: Unit auditd.service entered failed state.
systemd[1]: auditd.service failed.
Run Code Online (Sandbox Code Playgroud)

你们对为什么会发生这种情况有什么想法吗?

谢谢。

atl*_*ine 5

请参阅此讨论

目前,auditd 只能在容器内使用来聚合来自其他系统的日志。它不能用于获取与容器或主机操作系统相关的事件。如果您只想聚合,请在auditd.conf 中设置local_events=no。

容器支持仍在开发中。

另请参阅

local_events 该 yes/no 关键字指定是否包含本地事件。通常您需要本地事件,因此默认值为 yes。当您只想聚合来自网络的事件时,您可以将此设置为 no。目前,如果审核守护进程在容器中运行,这非常有用。该选项只能在守护程序启动时设置一次。重新加载配置文件没有任何效果。

所以至少目前来说Date: Thu, 19 Jul 2018 14:53:32 -0400,这个功能还不支持,不得不等待。