如何查看FreeBSD的系统日志( 二 )



有理由怀疑这个帐户被窃取了 。

注意:X Window由于会同时打开多个终端窗口 , 因此会使得用户登录连接时间迅速

增加 。

lastlog文件保存的是每个用户的最后一次登录信息 , 包括登录时间和地点 , 这个文

件一般只有login程序使用 , 通过用户的UID , 来在lastlog文件中查找相应记录 , 然后报

告其最后一次登录时间和终端tty 。然后 , login程序就使用新的记录更新这个文件 。

这三个文件是使用二进制格式保存的 , 因此不能直接查看其中的内容 , 而需要使用

相关命令 。当然也可以通过程序来访问这三个文件 , 这就需要了解它们使用的数据结构

。其中utmp和wtmp使用同样的数据结构 , 而lastlog使用另外一个数据结构 , 可使用man

来进行查询具体结构 。如果系统的用户数量很多 , 那么wtmp文件的大小会迅速增加 , 在

系统/var文件系统空间紧张的情况下 , 就导致这个文件系统被占满 。系统不会主动控制

这个文件的大小 , 因此这需要管理员的干预 , 需要手工及时清除 , 或编写shell脚本定期

保存和清除 。

系统还可以提供记账统计的功能 , 要打开系统的计账功能 , 需要使用accton命令 ,

注意 , accton必须跟随记账日志文件的名字作参数 , 而不带参数的accton将关闭记账进

程 。

当打开了记账功能后 , 可以使用lastcomm来检查在系统中执行的所有命令的信息 ,

包括执行的命令、执行命令的用户、用户使用的终端tty , 命令完成的时间 , 执行时间等

。从lastcomm的输出也能帮助管理员检查可能的入侵行为 。

此外可以使用ac命令来查询用户的连接时间的报告 , sa命令来查询用户消耗的处理

器时间的报告 。





Syslog日志记录



最初 , syslog只是为了sendmail而设计的消息日志工具 , 由于它提供了一个中心控

制点 , 使得sys log非常好用和易配置 , 因此当今很多程序都使用syslog来发送它们的记

录信息 。syslog是一种强大的日志记录方式 , 不但可以将日志保存在本地文件中 , 还可

以根据设置将syslog记录发送到网络上的另一台主机中 。

支持syslog方式的系统启动了syslogd守护进程 , 这个程序从本地的Unix套接字和监

听在514端口(UDP)上的Internet套接字 , 来获得syslog的记录 。本机中进程使用sysl

og系统调用发送来sy slog记录 , 然后由syslogd将他们保存到正确的文件或发送到网络

上另一台运行syslogd主机中去 。

syslogd的设置文件为/etc/syslog.conf , 定义消息对应的相应目标 , 一条消息可以

达到多个目标 , 也可能被忽略 。



# $Id: syslog.conf,v 1.9 1998/10/14 21:59:55 nate Exp $

#

# Spaces are NOT valid fIEld separators in this file.

# Consult the syslog.conf(5) manpage.

*.err;kern.debug;auth.notice;mail.crit /dev/console

*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

mail.info /var/log/maillog

lpr.info /var/log/lpd-errs

cron.* /var/cron/log

*.err root

*.notice;news.err root

*.alert root

*.emerg *

!ppp

*.* /var/log/ppp.log



syslog.conf的配置可以分为两个部分 , 第一部分用于区分消息的类型 , 另一个用于

设置消息发送的目的地 。通常 , 消息的类型包括消息的产生者 , 例如kern表示内核产生

的消息 , auth表示认证系统产生的消息 , 等等 , 还包括消息的级别 , 例如emerg表示非常

重要的紧急信息 , alert表示系统告警状态 , crit表示关键状态 , err 表示一般的错误信

推荐阅读