rootにsu / sudoした元のユーザー名ですべてのrootアクティビティを記録します


11

rootログインが無効(SSH)であるが、ユーザーが実行sudo -iまたはsu -rootになることができるときに、誰がログとしてrootとして機能しているかを追跡するための推奨される方法は何ですか?すべてのコマンドを元のユーザー名でフォローしたいと思います。RHEL 6またはLinux rsyslogなど

回答:


7

最も堅牢な方法は監査されているようです:

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

Auditdは基本的にすべてのシステムコールをインターセプトし、ルールのセットと照合します。したがって、/etc/audit/audit.rulesファイルには次のようなものが含まれます。

# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION

最後のルールは、デフォルト以外の唯一のルールです。

このアプローチの主な欠点(および代替案を探しているときにこの質問を見つけた理由)は、生のログファイルがかなり暗号化されており、生のログファイルでクエリプログラムを実行した後でのみ役立つことです。 ausearch

そのルールのクエリ例は次のようになります。

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

常識的な解決策は、生のauditdログにクエリを実行し、ログソリューションに送信するcronを作成することでしょう。


auditdに代わるものを探して生のイベントの相関を行う場合は、以下をチェックしてください。github.com
slackhq

3

Red Hatディストリビューションでは、通常、/var/log/secureログを使用しsudoて、Fedora / CentOS / RHELシステムで誰がログインしているか、または誰を利用しているかを識別します。

sudoの例
$ sudo -Es

ログ結果:

9月1日19:32:51 greeneggs sudo:saml:TTY = pts / 2; PWD = / home / saml; USER = root; コマンド= / bin / bash

suの例
$ su -

ログ結果:

9月1日19:34:49 greeneggs su:pam_unix(su-l:session):saml(uid = 1000)によってユーザーrootのために開かれたセッション


3

協力しているユーザーがいる場合は、rootshを設定して、rootユーザーが入力したすべてのログをsyslogに記録できます。

http://linux.die.net/man/1/rootsh

rootsh rpmはEPELで利用できます。

RHEL6のsudoのバージョンは、すべてのsudoセッションのstdoutをファイルに記録することもできます。sudo_pluginsのmanページをご覧ください。

これらのアプローチはどちらも完全に防弾ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.