我是新来的,但我尝试寻找,但不知道该怎么做......
我有一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 地址,此值将要里面有冒号。