Linux-入侵检测基础之审计命令

在linux中有5个用于审计的命令 :

* last : 这个命令可用于查看我么你系统的成功登录、关机、重启等情况;这个命令就是将

/var/log/wtmp文件格式化输出;

* lastb : 这个命令用于查看登录失败的情况;这个命令将/var/log/btmp文件格式化输出;

* lastlog : 这个命令用于查看用户上一次登录情况;这个命令将/var/log/lastlog文件格式化输

出;

* who : 这个命令用户查看当前登录系统的情况;这个命令就是将/var/log/utmp文件格式化

输出;

* w : 与who命令一致;

 

 

<1>last 命令

语    法 :  last [-adRx][-f <记录文件>][-n <显示列数>][账号名称…][终端机编号…]

功能说明 :  列出目前与过去登入系统的用户相关信息;

补充说明 :  单独执行last指令,它会读取位于/var/log/wtmp文件,并把该文件记录的登入系统的用户名单全部显示出来;

参    数 :

-a   把从何处登入系统的主机名称或IP地址,显示在最后一行;

-d   将IP地址转换成主机名称;

-f <记录文件>  指定记录文件;

-n <显示列数>或-<显示列数>  设置列出名单的显示列数;

-R   不显示登入系统的主机名或IP地址;

-x   显示系统关机、重新开机、以及执行等级的改变等信息;

 

案例 :

(1)last默认显示wtmp的记录,若想通过last命令显示btmp文件内容呢?

命令 : last -f /var/log/btmp

 

(2)可能wtmp保存的数据过多,对于查询比较费力,我们可以尝试只列出最新的5列名单?

这里我们可能想到的是:

命令 : last -n 5(n与5之间有无空格一样) 或者last -5

但是wtmp是从上往下写入数据的,这样显示的就并非最新数据了.

利用tail命令呢?

命令 : last | tail -7

注:观察过wtmp文件的会发现wtmp结尾有一行文件描述和一行空格.”tail -7” 这样反而实现列出我们需要的最新5列名单.

 

(3)显示特定用户的登录情况或针对不同的情况(reboot/shutdown)进行查看

命令 : last -n 5 root    //显示root用户的登录情况的前五列

命令 : last -x reboot/shutdown   //只列出重启/关机的情况

 

<2>lastb 命令

语    法 :  last [-adRx][-f <记录文件>][-n <显示列数>][账号名称…][终端机编号…]

功能说明 :  列出目前与过去登入系统失败的用户相关信息;

补充说明 :  单独执行last指令,它会读取位于/var/log/btmp文件,并把该文件记录的登入系统失败的用户名单全部显示出来;

参    数 :

-a   把从何处登入系统的主机名称或IP地址,显示在最后一行;

-d   将IP地址转换成主机名称;

-f <记录文件>  指定记录文件;

-n <显示列数>或-<显示列数>  设置列出名单的显示列数;

-R   不显示登入系统的主机名或IP地址;

-x   显示系统关机、重新开机、以及执行等级的改变等信息;

 

注 : lastb 功能基本跟last是一样的,只是两个命令默认读取的文件不同,一个为btmp,一个为wtmp.

 

<3>lastlog 命令

语    法 :  lastlog

功能说明 :  检查某特定用户上次登录的时间

参    数 :

-b <天数>  显示指定天数前的登陆信息;

-h   显示帮助信息;

-t <天数>  显示指定天数以来的登录信息;

-u <用户名>  显示指定用户的最近登录信息;

 

<4>who、w 命令

查看当前登录系统的情况

[root@sqj ~]# who

root     pts/0   2016-08-06 23:38 (XX.XX.XX.XX)

[root@sqj ~]# w

06:29:11 up 3 days, 16:26,  1 user,  load average: 0.00, 0.00, 0.00

USER  TTY    FROM        LOGIN@   IDLE   JCPU   PCPU WHAT

root   pts/0  XX.XX.XX.XX   23:38    0.00s  0.29s  0.00s w