包括在日志中提升的 sudo 用户

包括在日志中提升的 sudo 用户

我是新来的,但我尝试寻找,但不知道该怎么做......

我有一ec2台 Linux 机器。当用户直接连接到机器时,我可以查看其 ssh ip。现在,当用户这样做时,sudo -s它会被提升为 root,但执行此 sudo 的源 IP 丢失因为它似乎不再是 ssh

所以我的问题是——如何将真实提升权限用户的源 IP 添加到日志中?

这是我使用的脚本:

#!/bin/bash -
# command line audit logging
function log2syslog
{
   declare COMMAND
   COMMAND=$(fc -ln -0)
   logger -p local1.notice -t bash -i -- "${USER}:${SUDO_USER}:${SSH_CLIENT}:${COMMAND}"
}
trap log2syslog DEBUG

这是用户提升权限时生成的日志输出示例

<141>Jan 31 13:13:30 ip-10-10-0-0 bash[5568]: root:ec2-user::::#011 cat /etc/xyz

这是用户未提升权限时生成的日志输出示例(对于直接连接到机器的用户也是如此)

<141>Jan 31 13:29:54 ip-10-10-0-0 bash[5768]: ec2-user::/dev/pts/1:172.16.204.4 22005 22:172.26.4.4 22005 10.10.0.0 22:#011 cat /etc/xyz

如能得到帮助将非常感激!

答案1

告诉sudo保存该环境变量...

Defaults env_keep += "SSH_CLIENT"

...但请注意,用户可以在运行之前简单地更改它sudo。事实上,他们甚至可以将其更改为包含冒号的值,这会弄乱您的日志解析器。(事实上,对于 IPv6 地址,此值将要里面有冒号。

相关内容