web-dev-qa-db-ja.com

Linuxマシンにログインしたすべての人を記録して記録する方法

Linuxマシンにログインする各ユーザーの記録を表示するために、Linux red-hat6.xマシンにパッケージ監査をインストールしました

yum install audit

キットのインストール元: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sec-installing_the_audit_packages.html

インストール後、監査サービスを次のように再起動します

service auditd start

ユーザーの記録を確認するために、audir.logファイルをフォローします

tail -f /var/log/audit/audit.log 

しかし、このログからは、ユーザーIPと、彼が私のLinuxマシンにログインしたときだけが表示されます。

audit.logでユーザーが実行したLinuxコマンドのレコード

audit.logにLinuxコマンドの履歴が表示されない理由を1つアドバイスできますか?

audit.logの例

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
maihabunash

いくつかの外部ツールを使用するよりも手間がかかるかもしれませんが、lastまたはutmpdumpは、これらのファイルを使用して必要なすべてのリモートログイン情報を提供します( http://xmodulo.com/monitorを参照) -user-login-history-centos-utmpdump.html これらのファイルの詳細については):

/var/log/wtmp  
/var/log/btmp
/var/run/utmp

上で述べたように、ユーザーシェルコマンド履歴の記録は自分で処理できます。

1
csny

プロセスアカウンティングも使用できます。 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

0
vpathak

ログインデータは、追加のパッケージなしでauth.logですでに利用できませんか?

command-historyはシェルの問題です。記録するには、入力のすべての行を記録する機能をシェル(システム上のすべてのシェル)にパッチする必要があります(ただし、ユーザーが本当にログをエスケープしたい場合は、常に方法を見つける)。これは、(シェルだけでなく)すべてのアプリケーションが必要なコマンドをフォークして実行できるためです。したがって、確実な唯一の方法は、システムで開始されたすべてのプロセスを記録することです(以下の2番目のリンクを参照)。ただし、それでも、新しいプロセスを生成する必要のないシェルによって実行されるすべての処理(すべてのシェルビルトイン)は除外されます。原則として、誰かがecho "malicious command" | bashを呼び出すことができ、bashのみが表示されます。コマンドラインとして。したがって、シェルロギングとexecロギングの両方がおそらく進むべき道です。

関連リンク:

https://stackoverflow.com/questions/15698590/how-to-capture-all-the-commands-typed-in-unix-linux-by-any-userユーザーが実行しましたコマンドログファイル

0
orion