歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 審計跟蹤Linux的用戶活動

審計跟蹤Linux的用戶活動

日期:2017/2/28 16:38:45   编辑:Linux教程

  一些異常用戶試圖移去系統上的所有活動記錄(比如 ~/.bash_history), 不過我們可以使用專門的工具來監視所有用戶執行的命令. 推薦你使用進程記帳來記錄用戶的活動, 你可以通過進程記帳查看每一個用戶執行的命令, 包括CPU時間和內存占用.

  psacct程序提供了幾個進程活動監視工具: ac, lastcomm, accton和sa.

  .ac命令顯示用戶連接時間的統計.

  .lastcomm命令顯示系統執行的命令.

  .accton命令用於打開或關閉進程記帳功能.

  .sa命令統計系統進程記帳的情況.

  1). 安裝psacct或acct軟件包

  如果你使用RHEL, 使用up2date命令:

  # up2date psacct

  如果你使用CentOS/Fedora Core Linux, 使用yum命令:

  $ sudo apt-get install acct

  或

  # apt-get install acct

  2). 啟動psacct/acct服務

  在Ubuntu/Debian Linux系統上, pacct可以自動啟動.(安裝包會在系統上創建一個/var/account/pacct文件). 但是在Red Hat/Fedora Core/Cent OS, 你需要手動啟動psacct服務. 敲入下面兩個命令創建/var/account/pacct文件和啟動pacct服務:

  # chkconfig psacct on

  # /etc/init.d/psacct start

  如果你使用SUSE Linux, 服務的名稱為acct, 敲入下面的命令:

  # chkconfig acct on

  # /etc/init.d/acct start

  現在我們可以了解如何利用這些工具來監視用戶的命令和時間.

  3). 顯示用戶連線時間的統計信息

  命令可以根據登陸數/退出數在屏幕上打印出用戶的連線時間(單位為小時). 總計時間也可以打印出來. 如果你執行沒有任何參數的ac命令, 屏幕將會顯示總計的連線時間:

  $ ac

  輸出:

  total 95.08

  顯示每一天的連線統計時間:

  $ ac -d

  輸出:

  Nov 1 total 8.65

  Nov 2 total 5.70

  Nov 3 total 13.43

  Nov 4 total 6.24

  Nov 5 total 10.70

  Nov 6 total 6.70

  Nov 7 total 10.30

  …..

  ..

  …

  Nov 12 total 3.42

  Nov 13 total 4.55

  Today total 0.52

  顯示每一個用戶的總計連線時間和所有用戶總計連線時間:

  $ ac -p

  輸出:

  vivek 87.49

  root 7.63

  total 95.11

  4). 查找用戶過去執行的命令

  你可以使用lastcomm命令打印出用戶過去執行的命令. 你也可以通過用戶名, tty名或命令名來搜索以往執行的命令.

  比如顯示vivek用戶過去執行的命令:

  $ lastcomm vivek

  輸出:

  [code]

  userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58

  userhelper S vivek pts/0 0.00 secs Mon Nov 13 23:45

  rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45

  rpmq vivek pts/0 0.00 secs Mon Nov 13 23:45

  rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45

  gcc vivek pts/0 0.00 secs Mon Nov 13 23:45

  which vivek pts/0 0.00 secs Mon Nov 13 23:44

  bash F vivek pts/0 0.00 secs Mon Nov 13 23:44

  ls vivek pts/0 0.00 secs Mon Nov 13 23:43

  rm vivek pts/0 0.00 secs Mon Nov 13 23:43

  vi vivek pts/0 0.00 secs Mon Nov 13 23:43

  ping S vivek pts/0 0.00 secs Mon Nov 13 23:42

  ping S vivek pts/0 0.00 secs Mon Nov 13 23:42

  ping S vivek pts/0 0.00 secs Mon Nov 13 23:42

  cat vivek pts/0 0.00 secs Mon Nov 13 23:42

  netstat vivek pts/0 0.07 secs Mon Nov 13 23:42

  su S vivek pts/0 0.00 secs Mon Nov 13 23:38

  [/code]

  每一行信息都在屏幕上打印出來, 我們以第一行輸出項為例:

  userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58

Copyright © Linux教程網 All Rights Reserved