linux登录日志  /var/log/secure    (root用户可以删除该文件)


日志对于安全非常重要,记录了系统每天发生的各种事情,通过日志检查错误发生的原因,或者***后留下的痕迹。所有日志记录的信息都包含时间戳。

日志功能主要有:审计和检测。可以实时检测系统状态,检测和追踪***者。


linux系统中,三个主要的日志子系统:

连接时间日志---由多个程序执行,把把记录写到/var/log/wtmp和/var/log/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够追踪到谁在何时登录系统

进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct和acct)中写入一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志,像HTTP和FTP这样提供网路服务的服务的服务器也保持详细的日志。


常用的日志文件如下:

    access-log    记录HTTP/web的传输

    xferlog       几路FTP会话

    acct/pacct    记录用户命令

    messages      从syslog中记录信息(有的链接到syslog文件)

    aculog        记录MODEM的活动

    sudolog       记录sudo发出的命令

    sulog         记录su命令的使用,记录在/var/log/secure中

    syslog        从syslog中记录信息(通常链接到messages文件)

    lastlog       记录最近几次成功登录的事件和最后一次不成功的登录

    utmp          记录当前登录的每个用户

    wtmp          一个用户每次登录进入和退出时间的永久记录,包括数据交换、关机重启信息

    btmp          记录失败的记录

utmp、wtmp和lastlog入职文件是多数重用UNIX日志子系统的关键--保持用户登录和退出的记录。

wtmp文件可以无限增长,除非定期截取,通常在大量用户的系统中增长十分迅速。许多系统以一天或者一周为单位对wtmp配置成循环使用。通常由cron运行的脚本来修改,重新命名wtmp文件(加时间后缀名),从而可以循环使用wtmp文件。


每次有一个用户登录时,login程序在lastlog文件中查看用户的UID。如果找到,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间。在新的lastlog记录写入后,utmp文件打开并插入用户utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who/w/users/finger。

另外login程序打开wtmp文件,将utmp记录追加到wtmp文件中,当用户退出时,具有跟新时间戳的同一utmp记录追加到wtmp文件中。wtmp文件被last/ac使用。


具体命令:

wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴合并甚至打开。用户需要使用who/w/users/last/ac命令来调用信息。

    who:    查询utmp文件并报告当前登录的每个用户信息。who的标准输出格式包括:用户名、终端类型、登录日期和远程主机ip。who /var/log/wtmp 则会把自从wtmp文件创建或删改以来的每次登录(和last作用类似,很少使用)。

[root@python02 log]# who

transfor pts/0        2015-09-24 06:45 (122.10.70.66)

transfor pts/1        2015-09-25 01:01 (122.10.70.66)

transfor pts/2        2015-09-25 02:24 (122.10.70.66)

    w:      查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:

[root@python02 log]# w

 06:15:32 up 13 days,  7:10,  4 users,  load average: 0.57, 0.47, 0.43

USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT

transfor pts/0     Thu06   23:45m  0.54s  0.11s sshd: transfor [priv]

    users:   用单独的一行打印出当前登录用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个的登录会话,那显示那个用户名相同的次数。

[root@python02 log]# users

transfor transfor transfor transfor

    last:    往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。

[root@python02 log]# last

transfor pts/3        122.10.70.66     Fri Sep 25 09:41   still logged in   

transfor pts/3        122.10.70.66     Fri Sep 25 09:19 - 09:28  (00:08)    

transfor pts/3        122.10.70.66     Fri Sep 25 02:56 - 03:34  (00:38)    

transfor pts/2        122.10.70.66     Fri Sep 25 02:24   still logged in   

transfor pts/1        122.10.70.66     Fri Sep 25 01:01   still logged in   

transfor pts/1        122.10.70.66     Thu Sep 24 06:56 - 23:06  (16:09)    

transfor pts/0        122.10.70.66     Thu Sep 24 06:45   still logged in   

transfor pts/0        122.10.70.66     Wed Sep 23 03:52 - 21:35  (17:42)    

transfor pts/0        122.10.70.66     Sat Sep 19 02:32 - 06:20  (03:47)    

transfor pts/2        122.10.70.66     Thu Sep 17 05:48 - 22:55 (1+17:06)   

transfor pts/1        122.10.70.66     Thu Sep 17 05:25 - 22:55 (1+17:29)  

      

linux查看相应日志:

    #less /var/log/secure

    #less /var/log/messages