短い言葉で
両方のマシンでsshのログを使用します。生成されたシェルのPIDを提供します。これにより、シェルのPIDをプログラムの実行に接続し、ttyと特定の一致を得ることができます。より詳細な監査を行うには、監査ツールを使用できます。
より多くの言葉で
last
シンプルlast
では、使用されているttyに関連する接続のリストを持つことができます。プロキシマシン(ゲートウェイ、GWと呼び
ます)からの2つのリストと、サーバーからのもう1つのリストを作成できます。このコマンドはデフォルトでユーザー名、pts / tty、IP / hostnameを提供します。ログイン日時、ログアウト日時。フォーマットなどを変更できます。last
次に、期間のオーバーレイを作成し、誰が推測したかを確認する必要があります。
私が見ている問題は、この方法では、可能なすべての一致を提供するツール(スクリプト)を作成し、良い一致を見つけるまでそれらを削除する必要があるということです。それにもかかわらず、奇妙な状況に陥ることがあります。
ケーススタディをしましょう。最初のユーザー、Nicolasと言うと、GWにログオンできます。それから彼はコーヒーを取るか、電話に出ます。一方、2番目のユーザーは、我々はハスターは、GWに-ログインして1その後、より速くましょう番目のサーバーにログインします。この瞬間、二重ログは複雑です。ハスターはコーヒーの必要性を感じ、ニコラスはサーバーにログインします。コーヒーを終了し、プログラムに最初に接続する最初の人は誰ですか?
/var/log/auth
(またはsshの他のログファイル)[ 1 ] ..
各システムのログインとログアウトを監視するために使用されるログファイルがあります。caシステムに依存する正しいパスと名前を検索します。と
sudo grep TheUsername /var/log/auth.log
次のような行を取得します
May 1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May 1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
適切なログイン時間、さらにはPID([9024]
)、およびIPがあります。今回は、このファイルのデータをlast
ttyを知るためのコマンドの1つと一致させるか、プログラム自体を呼び出したシェルのPIDを何らかの方法でプログラム内に記録することができます(システムコールで行うことができます)シェル)。
これらのファイルを操作すると、セッションごとに一意の一致を取得できます。ゲートウェイ上の類似のログファイルには、元のIPとユーザー名があります。
audit tools
[ 2 ]、[ 3 ]
実行する権限があり、それが合法である場合、監査ツールを使用して、ホストマシンでシェルの完全なログを実行できます。
参照資料
- [ 1 ] SSHアクセス試行のロギング
- [ 2 ]シェル/ ssh / ttyセッションロガー
- [ 3 ]リモートホストでのBASHシェルセッションロギング