现在的位置: 首页 >> 操作系统 >> FreeBSD >> freebsd系统日志与备份
添加时间:2005-8-21 来源:网教中国 作者:
freebsd系统日志与备份

freebsd系统日志与备份
   由于FreeBSD是一个多用户系统,那么就需要管理员进行日常维护,特别是用做网络服务器的系统,一旦因为 缺乏维护而造成停机故障,就会造成很大损失。即使对于单用户的FreeBSD系统,同样也要执行这些不可缺乏的维护任 务,只是由于系统归个人使用,那么对维护的要求就不必那么高,维护任务就轻松一些。


系统日志

   系统的日志记录提供了对系统活动的详细审计,这些日志用于评估、审查系统的运行环境和各种操作。对于一般情况 ,日志记录包括记录用户登录时间、登录地点、进行什么操作等内容,如果使用得当,日志记录能向系统管理员提供有关危害 安全的侵害或入侵试图等非常有用的信息。

   BSD提供了详细的各种日志记录,以及有关日志的大量工具和实用程序。这些审计记录通常由程序自动产生,是缺 省设置的一部分,能够帮助Unix管理员来寻找系统中存在的问题,对系统维护十分有用。还有另一些日志记录,需要管理 员进行设置才能生效。大部分日志记录文件被保存在/var/log目录中,在这个目录中除了保存系统生成日志之外,还 包括一些应用软件的日志文件。当然/var目录下的其他子目录中也会记录下一些其他种类的日志记录文件,这依赖于具体 的应用程序的设置。

$ ls /var/log
adduser maillog.5.gz sendmail.st.1
dmesg.today maillog.6.gz sendmail.st.10
dmesg.yesterday maillog.7.gz sendmail.st.2
httpd-access.log messages sendmail.st.3
httpd-error.log messages.0.gz sendmail.st.4
kerberos.log messages.1.gz sendmail.st.5
lastlog messages.2.gz sendmail.st.6
lpd-errs messages.3.gz sendmail.st.7
maillog messages.4.gz sendmail.st.8
maillog.0.gz messages.5.gz sendmail.st.9
maillog.1.gz news setuid.today
maillog.2.gz ppp.log setuid.yesterday
maillog.3.gz sendmail.st userlog
maillog.4.gz sendmail.st.0 wtmp



系统登录日志

   系统会保存每个用户的登录记录,这些信息包括这个用户的名字、登录起始结束时间以及从何处登录入系统的等等。 它们被保存到/var/log/lastlog、/var/log/wtmp和/var/run/utmp文件中,这 三个文件以二进制格式保存了这些用户的登录数据。

   其中/var/run/utmp文件中保存的是当前系统用户的登录记录,因此这个文件会随着用户进入和离开系 统而不断变化,而它也不会为用户保留很长的记录,只保留当时联机的用户记录。系统中需要查询当前用户状态的程序,如 who、w等就需要访问这个文件。utmp可能不包括所有精确的信息,某些突发错误会终止用户登录会话,当没有及时更新 utmp记录,因此utmp的记录不是百分之百的可以信赖的。

   而/var/log/wtmp保存了所有的登录、退出信息,以及系统的启动、停机记录,因此随着系统正常运行 时间的增加,它的大小也会越来越大,增加的速度依赖于系统用户登录次数。因此可以利用这个日志用来查看用户的登录记录 ,last命令就通过访问这个文件来获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录。ac命令同样也使用wtmp中的数据产生报告,但它的显示方式不同。它可以根据用户(ac -p) ,或按日期(ap -d)显示信息,这样管理员就能获得一些非常有用的反常信息,如一个平时不太活跃的用户 突然登录并连接很长时间,就有理由怀疑这个帐户被窃取了。

   注意: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的记录。本机中进程使用syslog系统调用发送来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 表示一般的错误信息,warning表示警告信息,notice表示提示信息,但还不是错误,info表示一般信息, debug表示调试信息等,因此一个消息的类型可能为:kern.debug、mail.info等,但页可以使用通 配符*进行匹配。

   从上面的syslog.conf的设置可以看出,系统正常运行中的很多重要的信息,如错误信息*.err、内 核调试信息kern.debuf、认证报告auth.notice等被直接输出的console中,另外还有一些比较 重要的信息被输出到/var/log/messages文件中,发送邮件的记录将被保存在/var/log/mail log文件中,打印记录为/var/log/lpd-errs等,使得管理员可以根据这些文件来查询相关记录,进行统 计或寻找系统问题。其中使用syslog记录的messages文件中包括root登录的信息、用户多次登录失败的尝 试等对系统安全相当重要的信息,因此也是系统遭受攻击之后,攻击者会根据syslog.conf中设置试图清除相关文 件中自己的登录记录。因此对于安全性要求更高的系统,可以尝试将syslog发送到另一台计算机上,或者输出到一些设 备文件中,如在打印机上立即打印输出。

   系统会使用newsyslog定期检查syslog输出的messages文件和maillog文件,将旧数 据压缩保存为备份文件,如messages.1.gz等。


其他日志

   除了系统登录记录和syslog记录之外,其他还有一些应用程序使用自己的记录方式。

   系统每天都会自动检查系统的安全设置,包括对SetUID、SetGID的执行文件的检查,其结果将输出到/ var/log/security.today文件中,管理员可以与/var/log/security.yeste rday文件对比,寻找系统安全设置的变化。

   如果系统使用sendmail,那么sendmail.st文件中以二进制形式保存了sendmail的统计 信息。

   在系统启动的时候,就将内核的检测信息输出到屏幕上,这些信息可以帮助用户分析系统中的硬件状态。一般使用d mesg命令来查看最后一次启动时输出的这个检测信息。这个信息也被系统保存在/var/log/dmesg.tod ay文件中,系统中同时也

[1] [2]  下一页


上一篇:FreeBSD内核定制参考 下一篇:关于FreeBSD4.4网络源代码接口层数据结构ifnet分析说
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·FreeBSD handbook中文版 9 配制F
·FreeBSD 升级系统
·Ports & Package
·FreeBSD kernel 编译大法(二)ker
·FreeBSD 上使用Kerberos 5认证
·FreeBSD 5.x 中 gbfs 的修正,及
·FreeBSD 安装Linuxigd
·FreeBSD 使用cvsd创建安全的cvs
·FreeBSD trafcount命令介绍
·FreeBSD入门安装及汉化
相关文章
·FreeBSD内核定制参考
·FreeBSD 核心 (2)
·FreeBSD 核心 (1)
·FreeBSD4.8 IPFW How to!
·FreeBSD下的内存文件系统
·关于FreeBSD4.4网络源代码接口层
·FreeBSD 5.2.1 boot0(启动扇区代
·FreeBSD中的设备命名规则
·FreeBSD 5内核源代码分析之copyi
·FreeBSD 5内核源代码分析之系统
最新文章
·FreeBSD连载(94):基于NAT的负载
·FreeBSD连载(93):反向代理负载
·FreeBSD连载(92):基于DNS的负载
·FreeBSD连载(91):提升静态网页
·FreeBSD连载(90):单服务器性能
·FreeBSD连载(89):CGI和SSI的安
·FreeBSD连载(88):安全连接方式S
·FreeBSD连载(87):基于用户的访
·FreeBSD连载(86):对IP地址和域
·FreeBSD连载(85):配置Apache服(
Google