簡體   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