web-dev-qa-db-ja.com

ユーザーがsshセッションで何をしているかを確認する方法

Rootとしてサーバーにログインし、wを実行しました。これにより、ユーザーがファイルを編集していることがわかりました。

someuser  pts/5    10.117.0.53      14:03    3:25   1.20s  1.14s vi somefile.py

その後、切断し、後でルートとして再接続しました。もう一度wを実行しましたが、今回は別のことを示しました。

someuser  pts/5    10.117.0.53      14:03    5:20   0.20s  0.02s sshd: someuser [priv]

他のフィールドから、これは同じユーザーであることがわかりますが、今回は彼らが行っていることは隠されています。

なぜ隠されたのですか?彼らが何をしているのかをどうやって見ることができますか?

3
LINUX G33NYUS

ユーザーがbashを使用している場合は、ユーザーの/etc/bash.bashrcに次のように追加できます。

readonly Prompt_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'

これにより、すべてのユーザーコマンドがsyslogに記録されます。

ログをロックダウンされた中央のsyslogサーバーに転送するようにsyslogを構成するので、ハッキングや不正なsysadminの場合、証拠を改ざんすることはできません。

5
Rui F Ribeiro

システムでauditdが有効になっている場合は、監査ログを表示して、ユーザーのコマンドアクティビティを確認できます。これは、システムに関する他のユーザーのアクションによって引き起こされた可能性のある問題を法的にトラブルシューティングしようとするときに、システム管理者が定期的に使用する優れたリソースです。

ユーザー履歴ファイルをのぞくような簡単なことを試すことができます。これは、ユーザーのシェルがbashであることを前提としています。

cat /home/someuser/.bash_history
1
Stephen Fox