Linux 检测bash中su命令的使用
我想知道,如果有人尝试Linux 检测bash中su命令的使用,linux,bash,security,Linux,Bash,Security,我想知道,如果有人尝试su-、su或su root,是否有任何方法可以发送邮件。我知道mail命令,我正在尝试编写一个脚本,但我对它的使用感到非常困惑 在何处写入-无论是在root的.bashrc中还是在/etc/process 如何使用su 我尝试过谷歌搜索等,但得到了有关su使用、禁用它、保护ssh等的链接,这些都没有回答这个问题 提前感谢根据su手册页,在/etc/login.defs中,您可以设置SULOG\u FILE FILE或SYSLOG\u su\u ENABLE yes来记
su-
、su
或su root
,是否有任何方法可以发送邮件。我知道mail命令,我正在尝试编写一个脚本,但我对它的使用感到非常困惑
- 在何处写入-无论是在root的
中还是在.bashrc
/etc/process
- 如何使用
su
su
使用、禁用它、保护ssh等的链接,这些都没有回答这个问题
提前感谢根据su手册页,在/etc/login.defs中,您可以设置
SULOG\u FILE FILE
或SYSLOG\u su\u ENABLE yes
来记录所有su活动。然后,您只需要像inotifywait这样的东西来查看su事件的日志文件。根据su的手册页,在/etc/login.defs中,您可以设置SULOG\u file file
或SYSLOG\u su\u ENABLE yes
来记录所有su活动。然后您只需要像inotifywait这样的东西来查看日志文件中的su事件。有一个名为/var/log/secure
的日志文件,它在执行su
时随时接收条目。它还可以在其他条件下获取条目。这一点在本手册中有描述
如果用户“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工具
软件包才能使用inotifywait
如果此脚本在后台运行,则应向you@email.com
每当出现su
条目时
现在到哪里运行脚本。一种方法是将其放入可执行脚本文件(例如,watchsu
),并从rc.local
文件调用它:
nohup /path/to/watchsu 2>&1 &
我相信还有其他的想法可以从哪里开始。我不熟悉CentOS。有一个名为
/var/log/secure
的日志文件,它在执行su
时随时接收条目。它还可以在其他条件下获取条目。这一点在本手册中有描述
如果用户“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工具
软件包才能使用inotifywait
如果此脚本在后台运行,则应向you@email.com
每当出现su
条目时
现在到哪里运行脚本。一种方法是将其放入可执行脚本文件(例如,watchsu
),并从rc.local
文件调用它:
nohup /path/to/watchsu 2>&1 &
我相信还有其他的想法可以从哪里开始。我对CentOS不太熟悉。我想你的基本要求是,你有一群人被授予了root权限,但你并不完全信任他们,所以你想关注他们。您的解决方案是在邮件成为root时让自己发送邮件 这个解决方案的问题是根用户拥有无限的权限,因此没有什么可以阻止他们抵制这种机制。例如,他们可以在一次会话中编辑/etc/login.defs文件,做您希望他们做的好事,然后再执行root操作,做您担心的坏事。在会话结束时,他们将/etc/login.defs文件编辑回原始状态,您一点也不知道。或者,他们可以只复制/usr/bin/bash,并将该副本制作成suid文件,以便在运行时获得特权
您可能可以关闭我刚才建议的任何漏洞,但将会有更多的漏洞。所以你要么信任他们,要么根本不使用su,给他们sudo权限,让他们只运行那些他们需要的命令,来完成你想让他们做的事情。我想你的基本要求是,你有一群人被你授予了root特权,但你并不完全信任他们,所以你想关注他们。您的解决方案是在邮件成为root时让自己发送邮件 这个解决方案的问题是根用户拥有无限的权限,因此没有什么可以阻止他们抵制这种机制。例如,他们可以在一次会话中编辑/etc/login.defs文件,做您希望他们做的好事,然后再执行root操作,做您担心的坏事。在会话结束时,他们将/etc/login.defs文件编辑回原始状态,您一点也不知道。或者,他们可以只复制/usr/bin/bash,并将该副本制作成suid文件,以便在运行时获得特权
您可能可以关闭我刚才建议的任何漏洞,但将会有更多的漏洞。所以你要么信任他们,要么根本不使用su,给他们sudo权限,让他们只运行那些他们需要的命令,来完成你想让他们做的事情。你在运行哪个Linux发行版?对不起,我要提到的是,我在使用CentOS 6.4,你在运行哪个Linux发行版?对不起,我要提到的是,我使用的是CentOS 6.4,设置一个cron来运行这个脚本(可能每分钟一次)和使用inotify有什么区别?我问这个问题,因为我以前没有使用过inotify。@I.h4d35您可以执行
cron
作业,但您还需要创建一个脚本来检查自上次检查以来添加到文件中的行。所以这里有一点逻辑,你必须重新创建inotify为你所做的