我想知道是否有人在尝试su -
,su
或su root
后立即发送邮件。我知道mail命令,我正在尝试编写脚本,但我对此非常困惑
.bashrc
的根目录还是/etc/process
su
我已经尝试了常用的谷歌搜索等,但获得了su
的使用,禁用它,保护ssh等的链接 - 没有一个回答了这个问题。
提前致谢
答案 0 :(得分:4)
我想您的基本要求是,您拥有一群拥有root权限的人,但您并不完全信任它们,因此您需要密切关注它们。您的解决方案是在他们成为root用户时自己发送邮件。
此解决方案的问题在于root用户具有无限权限,因此无法阻止他们抵制此机制。例如,他们可以在一个会话中编辑/etc/login.defs文件,做你希望他们做的好事,然后su到root并做你害怕的坏事,在那个会话结束时他们编辑/etc/login.defs文件回到它的原始状态,你就不是更聪明了。或者他们可以只复制/ usr / bin / bash并使副本成为suid文件,只要他们运行它就会赋予它们特权。
您可能能够关闭我刚才建议的任何漏洞,但会有很多甚至更多漏洞。因此,您要么信任它们,要么根本不使用su并给予它们sudo权限,以便只运行那些他们需要做的命令。
答案 1 :(得分:2)
根据su的手册页,在/etc/login.defs中,您可以设置SULOG_FILE file
或SYSLOG_SU_ENABLE yes
来记录所有su活动。然后你只需要像inotifywait这样的东西来观察su事件的日志文件。
答案 2 :(得分:2)
有一个名为/var/log/secure
的日志文件,它会在su
执行时随时收到一个条目。它也可以在其他条件下获得条目。它在Linux Administrator's Security Guide中描述。
如果用户“fred”执行su -
,则会出现一个如下所示的条目:
Jul 27 08:57:41 MyPC su: pam_unix(su-l:session): session opened for user root by fred(uid=500)
su
或su root
会显示类似的条目。
因此,您可以设置一个监视/var/log/secure
的脚本,如下所示:
#!/bin/sh
while inotifywait -e modify /var/log/secure; do
if tail -n1 /var/log/secure | grep " su: "; then
tail -n1 /var/log/secure | grep " su: " | mail -s "su occurred" you@email.com
fi
done
请注意,您需要安装inotify-tool
软件包才能使用inotifywait
。
如果此脚本在后台运行,则应在you@email.com
条目发生时向su
发送电子邮件。
现在运行脚本的位置。一种方法是将其放入可执行脚本文件(例如watchsu
)并从rc.local
文件中调用它:
nohup /path/to/watchsu 2>&1 &
我确信还有其他想法可以从哪里开始。我不熟悉CentOS。