科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道审计跟踪Linux的异常活动

审计跟踪Linux的异常活动

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

一些异常用户试图移去系统上的所有活动记录(比如 ~/.bash_history), 不过我们可以使用专门的工具来监视所有用户执行的命令. 推荐你使用进程记帐来记录用户的活动, 你可以通过进程记帐查看每一个用户执行的命令, 包括CPU时间和内存占用.

作者:51cto 2007年10月11日

关键字: Linux 异常 审计跟踪

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  一些异常用户试图移去系统上的所有活动记录(比如 ~/.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

  输出:

  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

  

  每一行信息都在屏幕上打印出来, 我们以第一行输出项为例:

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

  

  分析:

  . userhelper 是进程的命令名

  . S和X是标志信息, 由系统记帐程序管理. 每一个标志的含义是:

  .. S -- 命令由超级用户执行

  .. F -- 命令由fork产生, 但是没有exec(执行)

  .. D -- 命令终止并创建一个core文件.

  .. X -- 命令被SIGTERM信号终止.

  . vivek是执行命令的用户名

  . prts/0 终端名

  . 0.00 secs -- 进程退出时间

  你可以通过执行下面的命令来搜索进程记帐日志:

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章