《(财务内部审计)审计并跟踪L系统的异常活动详解》由会员分享,可在线阅读,更多相关《(财务内部审计)审计并跟踪L系统的异常活动详解(6页珍藏版)》请在金锄头文库上搜索。
1、一些异常用户试图移去系统上的所有活动记录(比如/.bash_history),不过我们可以使用专门的工具来监视所有用户执行的命令。推荐你使用进程记帐来记录用户的活动,你可以通过进程记帐查看每一个用户执行的命令,包括CPU时间和内存占用。Psacct程序提供了几个进程活动监视工具: ac, lastcomm, accton和sa。ac命令显示用户连接时间的统计。lastcomm命令显示系统执行的命令。accton命令用于打开或关闭进程记帐功能。sa命令统计系统进程记帐的情况。1). 安装psacct或acct软件包如果你使用RHEL, 使用up2date命令:# up2date psacct如果
2、你使用CentOS/Fedora Core Linux, 使用yum命令:$ sudo apt-get install acct或# apt-get install acct2). 启动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.
3、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.65Nov 2 total 5.70Nov 3 tot
4、al 13.43Nov 4 total 6.24Nov 5 total 10.70Nov 6 total 6.70Nov 7 total 10.30.Nov 12 total 3.42Nov 13 total 4.55Today total 0.52显示每一个用户的总计连线时间和所有用户总计连线时间:$ ac -p输出:vivek 87.49root 7.63total 95.114). 查找用户过去执行的命令你可以使用lastcomm命令打印出用户过去执行的命令。你也可以通过用户名, tty名或命令名来搜索以往执行的命令。比如显示vivek用户过去执行的命令:$ lastcomm vivek
5、输出:userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58userhelper S vivek pts/0 0.00 secs Mon Nov 13 23:45rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45rpmq vivek pts/0 0.00 secs Mon Nov 13 23:45rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45gcc vivek pts/0 0.00 secs Mon Nov 13 23:45which vivek pts/0 0.00
6、 secs Mon Nov 13 23:44bash F vivek pts/0 0.00 secs Mon Nov 13 23:44ls vivek pts/0 0.00 secs Mon Nov 13 23:43rm vivek pts/0 0.00 secs Mon Nov 13 23:43vi vivek pts/0 0.00 secs Mon Nov 13 23:43ping S vivek pts/0 0.00 secs Mon Nov 13 23:42ping S vivek pts/0 0.00 secs Mon Nov 13 23:42ping S vivek pts/0 0
7、.00 secs Mon Nov 13 23:42cat vivek pts/0 0.00 secs Mon Nov 13 23:42netstat vivek pts/0 0.07 secs Mon Nov 13 23:42su 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 - 命令由超级用户
8、执行。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:39rm S root pts/0 0.00 secs Tue Nov 14 00:39rm S root pts/0 0.00 secs Tue Nov 14 00:38rm S
9、 root pts/0 0.00 secs Tue Nov 14 00:38rm S root pts/0 0.00 secs Tue Nov 14 00:36rm S root pts/0 0.00 secs Tue Nov 14 00:36rm S root pts/0 0.00 secs Tue Nov 14 00:35rm S root pts/0 0.00 secs Tue Nov 14 00:35rm vivek pts/0 0.00 secs Tue Nov 14 00:30rm vivek pts/1 0.00 secs Tue Nov 14 00:30rm vivek pts
10、/1 0.00 secs Tue Nov 14 00:29rm vivek pts/1 0.00 secs Tue Nov 14 00:29你可以通过终端名pts/1作为关键字来搜索进程记帐日志:$ lastcomm pts/15). 统计记帐信息你可以使用sa命令打印过去执行命令的统计信息。另外, sa命令保存了一个叫做savacct文件, 文件包含了命令被调用的次数和资源使用的次数。而且sa还提供每一个用户的统计信息, 这些信息保存在一个叫做usracct的文件当中。# sa输出:579 222.81re 0.16cp 7220k 4 0.36re 0.12cp 31156k up2dat
11、e 8 0.02re 0.02cp 16976k rpmq 8 0.01re 0.01cp 2148k netstat 11 0.04re 0.00cp 8463k grep 18 100.71re 0.00cp 11111k *other* 8 0.00re 0.00cp 14500k troff 5 12.32re 0.00cp 10696k smtpd 2 8.46re 0.00cp 13510k bash 8 9.52re 0.00cp 1018k less以结果输出的第一行为例:4 0.36re 0.12cp 31156k up2date分析:0.36re 实际时间 单位为分钟。0.12cp 系统和用户时间总数(CPU时间, 单位为分钟)。31156K 核心使用所占的平均CPU时间, 一个单元的大小为1KB。up2date 命令名。显示每一个用户:# sa -u输出:root 0.00 cpu 595k mem acctonroot 0.00 cpu 12488k mem initlogroot 0.00 cpu 12488k mem initlogroot 0.00 cpu 12482k mem touchroot 0.00 cpu 13226k mem psac