SSHセッションで発生したすべてをどのように記録しますか?

SSHセッションで発生したすべてをどのように記録しますか?

質問: Linux または AIX システムで SSH で発生した状況をどのように記録しますか?たとえば、ユーザーがログインしたり、いくつかのコマンドを実行したり、自動化されたツールがsshを介して操作を実行したり、誰かが「ssh root@server commandhere」コマンドを実行したりします。

答え1

このsudoコマンドには、セッションを監査して再生する機能があります。ほとんどの人はsudoコマンドを実行することに慣れていますが、ユーザーだけがrootコマンドを実行できるようにする単純なルールを定義できますsudo(つまり、ユーザーができないことはありません!)。

使用してsudoshユーザーのログインシェルを使用すると、すべてのコンテンツ(など)を強制的に記録stdinできstdoutますstderr。対話型と非対話型の両方のシェルで動作しますvim

sudoreplayその後、このコマンドを使用してセッション履歴を表示できます。でも対話型プログラム(例:vim

セッション監査ロギングを有効にするのはsudo簡単です。

に追加/etc/sudoers.d/sudosh

Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults!/sbin/reboot !log_output

ユーザーが自分で実行できるようにするには、次sudoの行をファイルに追加します/etc/sudoers.d/sudosh.osterman

osterman ALL=(osterman) ALL

osterman次に、ユーザーセッションを強制的に記録するには(たとえば)、次を実行します。

chsh -s /usr/bin/sudosh osterman

ダウンロードsudosh ここ。すでにインストールされているとしますsudo

答え2

kshAIXは、各ユーザーのhomedirに作成されたデフォルトのシェルに対してこの機能を提供します。.sh_history

私はいつもシェル変数を追加するのが好きです(例:EXTENDED_HISTORY=ONエクスポート)。/etc/profile

history -tこれで履歴を使用または表示できますfc -t

履歴ファイルは対話型シェルの起動時にのみ生成されるため、スクリプト内のコマンドがそこに書き込まれるかどうかは完全にはわかりません。

このロギングが本当に必要な場合は、さらに確認してください。IBM監査と会計レッドブックまたは同様のツールを使用してください引き継ぎ鉄線

答え3

PaSSHportはこの質問に答えます。オープンソースであり、OpenSSH経由でSSHアクセスを管理します。

ユーザーが接続したり、「ssh root@server commandhere」などのコマンドを直接起動すると、スクリプトコマンド/ロギングコマンドが開始されます。したがって、後で「最高管理者」はログを確認し、各コマンドとその結果(スクリプトを介して実行された場合)を確認できます。

このソフトウェアは非常に新しいものですが、すでに大規模な環境で使用されています。

関連情報