希望您能提供帮助。
我正在尝试在docker容器中启用审计日志记录,因此,如果有人kubectl exec
到docker容器并运行任何命令,那么这些命令就会被记录下来,我们可以在kubectl logs
中查看它们,并使用fluentd
进行捕获。
在容器的/etc/profile
中添加以下行的选项对root
有效,但对non-root
用户无效,因为/proc/1/fd/1
仅由root
用户拥有和可写,并且更改所有权或权限不是一个选项。
trap 'echo "$USER":"$BASH_COMMAND" >> /proc/1/fd/1' DEBUG
到目前为止已经尝试了以下几种:
- 一个可行的选项是将容器作为
non-root
运行,但不幸的是,这不是一个选项 - 只更改权限/所有权的选项不会更改权限/所有者
- 此外,将
mesg y
添加到/etc/profile
以允许访问root用户也不起作用,因为在执行su - non-root
时,权限被拒绝(mesg: cannot open /dev/pts/2: Permission denied
(-无法更改权限 - 添加一个特殊文件并尝试从那里重定向日志的选项也不起作用,但权限仍然被拒绝。例如:
mkfifo -m 666 /tmp/logpipe #create the special file
trap 'echo "$USER":"$BASH_COMMAND" <> /tmp/logpipe > /proc/1/fd/1' DEBUG # in /etc/profile
- 更改为
trap 'echo "$USER":"$BASH_COMMAND"' DEBUG
也不起作用,因为在docker的情况下,日志需要转到/proc/1/fd/1
如何在docker容器中启用命令行审核日志记录,或者在以root
用户身份运行的容器中解决non-root
的/proc/1/fd/1
权限问题?
非常感谢任何想法。
啊,遇到了我自己的问题:D因此,Falco可以用作HIDS(基于主机的入侵检测系统(,它将根据Flaco配置中定义的规则对任何异常活动发出警报。这可以作为Deamonset(特权(部署,也可以直接部署在节点上。