繁体   English   中英

检测bash中su命令的使用

[英]Detect use of su command in bash

我想知道一旦有人尝试使用su -susu root ,是否仍然可以发送邮件。 我知道mail命令,并且我正在尝试编写脚本,但是我很困惑

  • 在哪里写-无论是root的.bashrc还是/etc/process
  • 如何使用su调用邮件

我已经尝试了通常的Google搜索等,但是获得了有关su用法,禁用它,保护ssh等的链接-没有一个回答了这个问题。

提前致谢

我想您的基本要求是您拥有一群拥有root特权的人,但您并不完全信任他们,因此您要关注他们。 您的解决方案是在成为根用户时让自己发送邮件。

该解决方案的问题在于,root用户具有无限的特权,因此没有什么可以阻止他们抵消这种机制。 例如,他们可以在一个会话中编辑/etc/login.defs文件,做您想让他们做的好事,然后稍后扎根并做您担心的坏事,然后在该会议结束时,将/etc/login.defs文件编辑回其原始状态,您再也不明智了。 另外,他们可以只复制/ usr / bin / bash并将其复制为suid文件,以便在运行它们时赋予他们特权。

您也许可以关闭我刚刚建议的任何漏洞,但还会有很多很多。 因此,您要么信任他们,要么根本不使用su,并授予他们sudo权限,使其仅运行他们需要执行的命令。

根据su的手册页,在/etc/login.defs中,您可以设置SULOG_FILE fileSYSLOG_SU_ENABLE yes来记录所有su活动。 然后,您只需要诸如inotifywait之类的功能即可监视日志文件中的su事件。

有一个名为/var/log/secure的日志文件,该文件在执行su会收到一个条目。 它也会在其他条件下获得条目。 Linux管理员的安全性指南》中对此进行了描述。

如果用户“ fred”执行su - ,则会出现一个类似于以下内容的条目:

Jul 27 08:57:41 MyPC su: pam_unix(su-l:session): session opened for user root by fred(uid=500)

susu 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条目,它都应将电子邮件发送至you@email.com

现在在哪里运行脚本。 一种方法是将其放入可执行脚本文件(例如watchsu ),然后从rc.local文件中调用它:

nohup /path/to/watchsu 2>&1 &

我敢肯定还有其他想法从哪里开始。 我不熟悉CentOS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM