日志简介
日志对于安全来说非常重要他记录了系统每天发生的各种各样的事情你可以通过他来检查错误发生的原因或者受到攻击时攻击者留下的痕迹日志主要的功能有审计和监测他还可以实时的监测系统状态监测和追蹤侵入者等等
在Linux系统中有三个主要的日志子系统
连接时间日志由多个程序执行把纪录写入到/var/log/wtmp和/var/run/utmplogin等程序更新wtmp和utmp文件使系统管理员能够跟蹤谁在何时登录到系统 进程统计由系统内核执行当一个进程终止时为每个进程往进程统计文件(pacct或acct)中写一个纪录进程统计的目的是为系统中的基本服务提供命令使用统计
错误日志由syslogd()执行各种系统守护进程用户程序和内核通过syslog()向文件/var/log/messages报告值得注意的事件另外有许多UNIX程序创建日志像HTTP和FTP这样提供网络服务的服务器也保持详细的日志 常用的日志文件如下
utmpwtmp和lastlog日志文件是多数重用UNIX日志子系统的关键保持用户登录进入和退出的纪录有关当前登录用户的信息记录在文件utmp中登录进入和退出纪录在文件wtmp中最后一次登录文件可以用lastlog命令察看数据交换关机和重起也记录在wtmp文件中所有的纪录都包含时间戳这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速例如wtmp文件可以无限增长除非定期截取许多系统以一天或者一周为单位把wtmp配置成循环使用它通常由cron运行的脚本来修改这些脚本重新命名并循环使用wtmp文件通常wtmp在第一天结束后命名为wtmp第二天后wtmp变为wtmp等等直到wtmp
每次有一个用户登录时login程序在文件lastlog中察看用户的UID如果找到了则把用户上次登录退出时间和主机名写到标准输出中然后login程序在lastlog中纪录新的登录时间在新的lastlog纪录写入后utmp文件打开并插入用户的utmp纪录该纪录一直用到用户登录退出时删除utmp文件被各种命令文件使用包括whowusers和finger
下一步login程序打开文件wtmp附加用户的utmp纪录当用户登录退出时具有更新时间戳的同一utmp纪录附加到文件中wtmp文件被程序last和ac使用
具体命令
wtmp和utmp文件都是二进制文件他们不能被诸如tail命令剪贴或合并(使用cat命令)用户需要使用whowuserslast和ac来使用这两个文件包含的信息
whowho命令查询utmp文件并报告当前登录的每个用户Who的缺省输出包括用户名终端类型登录日期及远程主机例如who(回车)显示
如果指明了wtmp文件名则who命令查询所有以前的纪录命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录
ww命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息例如w(回车)显示:pm up day : users load average:
usersusers用单独的一行打印出当前登录的用户每个显示的用户名对应一个登录会话如果一个用户有不止一个登录会话那他的用户名将显示相同的次数例如users(回车)显示chyang lewis lewis ylou ynguo ynguo
lastlast命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户例如
chyang pts/ Tue Aug : : (:)
cfan pts/ Tue Aug : : (:)
chyang pts/ Tue Aug : : (:)
lewis pts/ Tue Aug : : (:)
lewis pts/ Tue Aug : : (:)