私のLinuxシステムにログインしているすべてのユーザーの履歴を見るために、Linux red-hat 6.xシステムにパッケージ監査をインストールしました。
yum install audit
インストール後に監査サービスを再起動します。
service auditd start
ユーザー履歴を表示するためにaudir.logファイルを追跡します。
tail -f /var/log/audit/audit.log
ただし、このログでは、ユーザーIPと彼が私のLinuxシステムにログインしたときにのみ表示されます。
ユーザーが実行したLinuxコマンドの履歴は表示されません。監査ログ
なぜ私たちがLinuxコマンドの履歴を見ることができないのかを提案できる人はいますか?監査ログ?
の例監査ログ
type=USER_START msg=audit(1422876162.936:152): user pid=28114 uid=0 auid=0 ses=74236 msg='op=PAM:session_open acct="root" exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=ssh res=s'
type=USER_LOGIN msg=audit(1422876162.940:153): user pid=28116 uid=0 auid=0 ses=74236 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=/dev/pts/1 res=success'
type=USER_START msg=audit(1422876162.940:154): user pid=28116 uid=0 auid=0 ses=74236 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=/dev/pts/1 res=success'
type=CRYPTO_KEY_USER msg=audit(1422876162.940:155): user pid=28116 uid=0 auid=0 ses=74236 msg='op=destroy kind=server fp=99:c8:56:79:64:17:0b:67:b5:6c:e9:36:22:8a:b1:88 direction=? spid=28116 suid=0 '
type=CRYPTO_KEY_USER msg=audit(1422876162.940:156): user pid=28116 uid=0 auid=0 ses=74236 msg='op=destroy kind=server fp=6f:b9:bf:4f:84:1f:58:e5:d2:1c:94:1f:11:8e:26:61 direction=? spid=28116 suid=0 '
type=CRED_REFR msg=audit(1422876162.940:157): user pid=28116 uid=0 auid=0 ses=74236 msg='op=PAM:setcred acct="root" exe="/usr/sbin/sshd" hostname=10.1.113.35 addr=10.1.113.35 terminal=ssh res=success'
- 注:このツールで各ユーザーの記録の監査を完了できない場合は、そのタスクを実行できる他のツールを見つけるのに役立ちます。
答え1
一部の外部ツールを使用するよりも少し労力が必要な場合がありますが、last
代わりにutmpdump
これらのファイルを使用して必要なすべてのリモートログイン情報を提供してください(読むhttp://xmodulo.com/monitor-user-login-history-centos-utmpdump.htmlこれらのファイルの詳細については、次を参照してください。
/var/log/wtmp
/var/log/btmp
/var/run/utmp
上記のように、ユーザーシェルのコマンド履歴を直接処理できます。
答え2
auth.log
追加パッケージなしですでにログインデータを使用できるわけではありませんか?
command-history
これはシェルの問題です。これを記録するには、シェル(システム上のすべてのシェル)に各入力行を記録する機能を提供する必要があります(ただし、ユーザーが実際に記録を避けたい場合はいつでも方法を見つけることができます)。これは、シェルだけでなく、すべてのアプリケーションが目的のコマンドを分岐して実行できるためです。したがって、唯一の確実な方法は、システムで開始されたすべてのプロセスを記録することです(下記の2番目のリンクを参照)。ただし、これは原則として、誰かが呼び出すことができ、コマンドラインでしか見えないecho "malicious command" | bash
新しいプロセスの作成を必要としないシェルで実行されるすべての操作(すべてのシェル組み込み機能)を除外します。bash
したがって、シェルロギングと実行ロギングの両方が実行可能なアプローチになる可能性があります。
関連リンク:
https://stackoverflow.com/questions/15698590/how-to-capture-all-the-commands-typed-in-unix-linux-by-any-user ユーザーが実行したコマンドのログファイル
答え3
プロセスアカウントを使用することもできます。 Fedoraでpsacctサービスを見つけてアクティブにします。
その後、次を実行して、ユーザーが実行したタスク/現在実行されているタスクを確認できます。
sa (list of all commands)
lastcomm bash (who ran bash)
lastcomm vpathak (what was run by vpathak)
これはいくつかのシェルレコードと一緒に良い概要を提供します。
ログインソースと使用されたキーをよりよく理解するために、侵入試行の詳細なステップバイステップの調査を見ることもできます。http://vpathak.tumblr.com/post/121343814158/fedora-audit-log-with-love-from-Russia