中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Linux > LinuxUnix安全
审计跟踪Linux的异常活动(1)
作者:赵珂 时间:2007-08-25 21:45 出处:chinaunix  责编:月夜寒箫
              摘要:审计跟踪Linux的异常活动(1)
一些异常用户试图移去系统上的所有活动记录(比如 ~/.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 -- 进程退出时间

你可以通过执行下面的命令来搜索进程记帐日志:
$ lastcomm rm
            $ lastcomm passwd
            输出:
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:39
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:39
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:38
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:38
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:36
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:36
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:35
            rm                S     root     pts/0      0.00 secs Tue Nov 14 00:35
            rm                      vivek    pts/0      0.00 secs Tue Nov 14 00:30
            rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:30
            rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:29
            rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:29
            
你可以通过终端名pts/1作为关键字来搜索进程记帐日志:
$ lastcomm pts/1
            
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有