Enable process accounting [ACCT-9622]
https://cisofy.com/lynis/controls/ACCT-9622/
プロセス・アカウンティングを行うことで
ユーザー自身が自由に編集・削除可能な history とは別で、詳細なコマンド履歴を残すことができるようになる。
ユーザがコマンドを実行しますと、通常は、 シェルのヒストリ機能が履歴を記録してくれると思います。
システムをおかしくしてしまった可能性のあるときや、 だれかが侵入した可能性のあるときなどに、シェルのコマンド履歴をたどることで、 なにを実行して今の状態になったのかを、ある程度推測することができます。
しかし、ヒストリ機能を無効にしたりされたりしますと、 履歴が残らなくなってしまい、途方に暮れてしまうことになります。
また、シェルが記録してくれる履歴は、コマンドの内容だけで、 いつ実行したのかという、時間の情報までは記録してくれません。また、シェルのヒストリ機能とは別に、ユーザが、 いつどんなコマンドを実行したのか、まるっとログに残しておくことができますと、 不安の種が尽きないシステム管理者にとっては、 非常にありがたい情報となるのではないでしょうか。
by プロセスアカウンティングでコマンド履歴を残す - いますぐ実践! Linuxシステム管理 / Vol.139
またacctを入れることでコマンド履歴以外の履歴も参照できる。詳細は以下で説明。
※Ubuntu上での設定が前提
インストール
$ sudo apt-get install acct
自動起動設定
$ /etc/init.d/acct start $ /etc/init.d/acct status
コマンド履歴を表示
※コマンド履歴の中身は「/var/log/account/pacct」
コマンド履歴を出力
$ lastcomm
指定したユーザのコマンド履歴を出力
$ lastcomm --user developer
指定したコマンドのコマンド履歴を出力
$ lastcomm --command su
接続時間履歴を表示
総接続時間の表示(時単位)
$ ac
total 1814.03
現在のwtmp(/var/log/wtmp)ファイルから計算している。
wtmpファイル(バイナリ)内には、ログイン及びログアウトの履歴が保存されており、whoやlastコマンドから参照される。
日毎の接続時間
$ ac -d Sep 17 total 5.23 Sep 18 total 15.20 Sep 24 total 3.21 Sep 25 total 2.27 Sep 26 total 2.64 Sep 27 total 6.19 Oct 1 total 6.41 Oct 3 total 2.42 Oct 4 total 2.52 Oct 5 total 6.11 Oct 8 total 12.98 Oct 9 total 22.65 Oct 11 total 16.18
ユーザ日毎の総接続時間
$ ac -p root 1645.18 tecmint 168.96 total 1814.14
要約情報の表示
$ sa 2 9.86re 0.00cp 2466k sshd* 8 1.05re 0.00cp 1064k man 2 10.08re 0.00cp 2562k sshd 12 0.00re 0.00cp 1298k psacct 2 0.00re 0.00cp 1575k troff 14 0.00re 0.00cp 503k ac 10 0.00re 0.00cp 1264k psacct* 10 0.00re 0.00cp 466k consoletype 9 0.00re 0.00cp 509k sa 8 0.02re 0.00cp 769k udisks-helper-a 6 0.00re 0.00cp 1057k touch 6 0.00re 0.00cp 592k gzip 6 0.00re 0.00cp 465k accton 4 1.05re 0.00cp 1264k sh* 4 0.00re 0.00cp 1264k nroff* 2 1.05re 0.00cp 1264k sh 2 1.05re 0.00cp 1120k less 2 0.00re 0.00cp 1346k groff 2 0.00re 0.00cp 1383k grotty 2 0.00re 0.00cp 1053k mktemp 2 0.00re 0.00cp 1030k iconv 2 0.00re 0.00cp 1023k rm 2 0.00re 0.00cp 1020k cat 2 0.00re 0.00cp 1018k locale 2 0.00re 0.00cp 802k gtbl
- 2 is a number of times the command was executed.
- 9.86re is a “real time” as per wall clock minutes
- 0.01cp is a sum of system/user time in cpu minutes
- 2466k is a cpu-time averaged core usage, i.e. 1k units
- sshd command name
個別ユーザ毎の要約情報の表示
$ sa -u root 0.00 cpu 465k mem accton root 0.00 cpu 1057k mem touch root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 465k mem accton root 0.00 cpu 1057k mem touch
コマンドの使用率が入った要約情報
$ sa -c 132 100.00% 24.16re 100.00% 0.01cp 100.00% 923k 2 1.52% 9.86re 40.83% 0.00cp 53.33% 2466k sshd* 8 6.06% 1.05re 4.34% 0.00cp 20.00% 1064k man 2 1.52% 10.08re 41.73% 0.00cp 13.33% 2562k sshd 12 9.09% 0.00re 0.01% 0.00cp 6.67% 1298k psacct 2 1.52% 0.00re 0.00% 0.00cp 6.67% 1575k troff 18 13.64% 0.00re 0.00% 0.00cp 0.00% 509k sa 14 10.61% 0.00re 0.00% 0.00cp 0.00% 503k ac 10 7.58% 0.00re 0.00% 0.00cp 0.00% 1264k psacct* 10 7.58% 0.00re 0.00% 0.00cp 0.00% 466k consoletype 8 6.06% 0.02re 0.07% 0.00cp 0.00% 769k udisks-helper-a 6 4.55% 0.00re 0.00% 0.00cp 0.00% 1057k touch 6 4.55% 0.00re 0.00% 0.00cp 0.00% 592k gzip 6 4.55% 0.00re 0.00% 0.00cp 0.00% 465k accton 4 3.03% 1.05re 4.34% 0.00cp 0.00% 1264k sh* 4 3.03% 0.00re 0.00% 0.00cp 0.00% 1264k nroff* 2 1.52% 1.05re 4.34% 0.00cp 0.00% 1264k sh 2 1.52% 1.05re 4.34% 0.00cp 0.00% 1120k less 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1346k groff 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1383k grotty 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1053k mktemp
プロセス・アカウンティングのON/OFF
ON
$ accton on
OFF
$ accton off
ログイン成功履歴
$ last
ログイン失敗履歴
$ lastb
lastbのbは「bad」を意味している。
何年か運用していると、このコマンドと叩くと、大量にどこかららログイン(侵入)しようとした履歴が出てくる。
[参考]
How to Monitoring All Executed Commands in Linux, accton and monitor changes in file
CentOS 7 : psacct : プロセスアカウンティング : Server World
プロセスアカウンティングでコマンド履歴を残す - いますぐ実践! Linuxシステム管理 / Vol.139
scriptとpsacctでオペレーションログを記録する | DevelopersIO
How To Monitor User Activity with ACCT or PSACCT – TheLinuxCode
Linux last and lastb command help and examples