Ubuntu 10.04を実行しています。ボックスに誰がログオンしたか、何時にログオンしたか、毎日のレポートを取得する方法はありますか?さらに、質問が多すぎる可能性があります-使用したコマンドのレポートを取得できますか?これは使用量の少ないボックスなので、これでどのようなアクティビティが発生しているかを確認するのに最適な方法だと思います。
これらと同じように、rsyncやsshを介してリモートで単一のコマンドを実行するなど、非インタラクティブシェルを介してボックス上で何が行われたかを追跡することは不可能だと聞きました。それは本当ですか、それともこれをログに記録して追跡する方法はありますか?
ログインしたユーザーの情報は、/var/log/auth.log
(または他のディストリビューションの他のログファイル)にあります。必要に応じて構成した情報を抽出できる複数のログ監視プログラムがあります。正常なシステムでは、すべてのユーザー認証がログに記録されます。
すべてのコマンドの呼び出しを記録するには(引数は除く)、 process accounting を使用します( acct
パッケージ Ubuntuで。アカウンティングサブシステムが稼働中の場合、 lastcomm
は終了したプロセスに関する情報を表示します。
who
またはw
を使用して、SSHユーザーを含め、現在システムにログインしているユーザーを確認することもできます。
いくつかのrsylogを実行するようにbashシェルを変更することもできます。
事実上、特定の接続を受け入れるようにリモートホストでrsyslogを設定します。次に、監視するホストシェルを変更します。次の機能が有効になっているバージョンを使用してバージョンをコンパイルします。
vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
# define SYSLOG_FACILITY LOG_USER
# define SYSLOG_LEVEL LOG_INFO
#endif
これを有効にしてコンパイルしたら、bashをこのバージョンに置き換えることができますORログインをリダイレクトすることで、ユーザーにログインさせることができます。
詳細:
通常、誰かがユーザーシステムにログインすると、/ var/log/messagesに次のように出力されます。
sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2
したがって、メッセージを次のようにgrepします。
grep -E "Accepted keyboard-interactive/pam for" /var/log/messages