ユーザーが実行したすべてのコマンドをログに記録するにはどうすればよいですか?


32

サーバー内のすべてのユーザーのアクティビティを監視したい。

ユーザーがvimのようなエディターからシェルコマンドを実行した場合でも、ログファイルでそれらを表示したいと思います。

ツールacctを確認しましたが、完全なコマンドがリストされていません。(すでにいくつかのオプションを見逃している場合は修正してください)。

この問題を解決するには、どのLinuxツールを検討する必要がありますか?


1
。man script(1)
アダプター


素敵なリファレンス8gwifi.org/docs/linux-monitor-commands.jsp
18

回答:


32

ログインを担当するpam configにこの行を追加します(redhatベースのディストリビューションでのsystem-auth)

session    required     pam_tty_audit.so enable=*

何が行われたかを調べるには、次を使用できます。

ausearch -ts <some_timestamp> -m tty -i

これにより、次のような出力が生成されます。

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

これの唯一の欠点は、少し読みにくいことですが、理論的にはセッション全体を記録するために使用できるため、ほとんどの提案されたソリューションよりはるかに優れています。

編集:ああ、aureportを使用して、より役立つリストを生成できます。

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

詳細をありがとう。Ubuntu 10.04 LTSを使用しています。フォルダ/ lib / security /を確認すると、モジュールは存在しませんが、そのモジュールのマニュアルページがあります。私はこのバグに遭遇したと思いますbugs.launchpad.net/ubuntu/+source/pam/+bug/588547そのモジュールをインストールする他の方法はありますか?
Supratik

バグレポートは、修正と更新が配布されたことを示唆しています。
マシューイフェ

@Mlfe PAMソースコードをコンパイルし、.soファイルを/ lib / security /にコピーしました。再度、感謝します。
Supratik

1
@CameronKerr:パスワードの問題は修正されました:redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
上記に注意するには、auditdデーモンを最初に有効にする必要があることに注意してください(CentOS 6.7のインストールではデフォルトではありませんでした)。デーモンを起動するには、を使用service auditd startし、この変更を(再起動後)永続的にするには、chkconfig auditd on ソース:access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…およびaccess.redhat.com/documentation/en-US/を
ジョニー


2

スヌーピーを使用できます。

これは単純なコマンドロギングライブラリであり、適切な監査ソリューションではありません(簡単に回避されます)。開示:私は現在のスヌーピーメンテナーです。


2

あまり知られていないトリックですが、最も簡単なのは、の組み込みの監査機能を使用することですsudo。Sudoには、sudoreplayセッションの再生を簡単にするコマンドが付属しています。さらに、vimセッションを中継します(提案どおり)。

いくつかの簡単な手順で使用する方法を次に示します。

  1. sudoshシステムにインストールします。これは、sudoユーザーsudo自身を(ではなくroot)作成するコマンドのシェルラッパーであり、システムログインシェルとして使用できます。
  2. sudoロギングを有効にします。編集/etc/sudoers.d/sudosh Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. 次のコマンドを追加/etc/shellsして、それを使用したログインを許可します。 /usr/bin/sudosh

    ヒント:ユーザーが他のシェルを使用してログインできないようにするには、これらの他のシェルをから削除します/etc/shells

  4. ユーザーfoobarを更新してsudoshシェルを使用します。 chsh -s /usr/bin/sudosh foobar

詳細については、https//github.com/cloudposse/sudosh/を参照してください。


1

ここに魔法の解決策があります:http : //www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum install psacct(redhat)
  • sudo apt-get install acct

ユーザーコマンド/接続などに関する統計情報を表示できます。

特定のユーザーによって呼び出されたすべてのコマンドをリストします...

コマンド名でアカウンティングログを検索:$ lastcomm rm $ lastcomm passwd

など、詳細については、上記のリンクをご覧ください。


3
質問で言われた:「それは完全なコマンドをリストしていません」。
プートニク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.