su / sudoedを使用して、ルートの元のユーザー名に対するすべてのルートアクティビティを記録します。

su / sudoedを使用して、ルートの元のユーザー名に対するすべてのルートアクティビティを記録します。

sudo -irootログイン(SSH)が無効になっているが、ユーザーがrootを実行したりrootになったりできるsu -場合は、ログで誰がrootとして機能しているかを追跡するのにどのような方法が必要ですか?また、元のユーザー名を使用して各コマンドを実行したいと思います。 RHEL 6またはLinux rsyslogなど

答え1

最も強力なアプローチが感謝されるようです。

要件10:ネットワークリソースとカード保有者データへのすべてのアクセスを追跡して監視します。

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

最後のルールはデフォルトではなく唯一のルールです。

このアプローチの最大の欠点(そして代替を探している間にこの質問を見つけた理由)は、rawログファイルが非常に秘密であり、rawログファイルでクエリプログラムを実行した後にのみ便利です。ausearch

このルールのクエリ例は次のとおりです。

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

常識的な解決策は、生の監査ログを照会し、それをロギングソリューションに送信するcronを作成することです。

答え2

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

はい

sudo はい
$ sudo -Es

結果記録:

9月1日 19:32:51 greeneggs sudo: TTY=pts/2; PWD=/home/saml; command=/bin/bash

数の例
$ su -

結果記録:

9月1日 19:34:49 greeneggs su: pam_unix(su-l:session): saml(uid=1000) root ユーザーのセッションが開かれました。

答え3

協力しているユーザーがいる場合は、rootshがrootユーザーが入力したすべての内容をシステムログに記録するように設定できます。

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

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

RHEL6のsudoバージョンには、各sudoセッションのstdoutをファイルに書き込む機能もあります。 sudo_pluginsのマニュアルページをご覧ください。

これらの方法のいずれも完全に無敵ではありません。

関連情報