Linux 在docker容器-kubernetes中启用命令行审核日志记录
希望你能帮忙 我试图在docker容器中启用审计日志记录,因此,如果任何人Linux 在docker容器-kubernetes中启用命令行审核日志记录,linux,docker,ubuntu,logging,kubernetes,Linux,Docker,Ubuntu,Logging,Kubernetes,希望你能帮忙 我试图在docker容器中启用审计日志记录,因此,如果任何人kubectl exec访问docker容器并运行任何命令,那么这些命令将被记录,我们可以在kubectl日志中查看它们并使用fluentd进行捕获 向容器的/etc/profile添加以下行的选项适用于root,但不适用于非root用户,因为/proc/1/fd/1仅由root用户拥有和可写,并且更改所有权或权限不是一个选项 trap 'echo "$USER":"$BASH_COMMAND
kubectl exec
访问docker容器并运行任何命令,那么这些命令将被记录,我们可以在kubectl日志中查看它们
并使用fluentd
进行捕获
向容器的/etc/profile
添加以下行的选项适用于root
,但不适用于非root
用户,因为/proc/1/fd/1
仅由root
用户拥有和可写,并且更改所有权或权限不是一个选项
trap 'echo "$USER":"$BASH_COMMAND" >> /proc/1/fd/1' DEBUG
到目前为止,我们已经尝试了以下方法:
- 一个可行的选项是将容器作为
非root运行,但不幸的是,这不是一个选项
- 仅更改权限/所有权的选项不会更改权限/所有权
- 另外,将
添加到mesg y
以允许对root用户的访问也不起作用,因为执行/etc/profile
时权限被拒绝(su-非root用户
)-无法更改权限mesg:cannot open/dev/pts/2:permission denied
- 添加一个特殊文件并尝试从那里重定向日志的选项也不起作用,但权限仍然被拒绝。例如:
mkfifo-m666/tmp/logpipe#创建特殊文件
trap'echo“$USER”:“$BASH_COMMAND”/tmp/logpipe>/proc/1/fd/1”DEBUG#in/etc/profile
- 更改为
也将不起作用,因为如果是docker,日志需要转到trap'echo“$USER”:“$BASH_COMMAND”'DEBUG
/proc/1/fd/1
root
用户身份运行的非root
的/proc/1/fd/1
权限问题
任何想法都将受到高度赞赏
mkfifo -m 666 /tmp/logpipe #create the special file
trap 'echo "$USER":"$BASH_COMMAND" <> /tmp/logpipe > /proc/1/fd/1' DEBUG # in /etc/profile