由于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的记录 。本机中进程使用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 表示一般的错误信
息 , 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记录的me
ssages文件中包括root登录的信息、用户多次登录失败的尝试等对系统安全相当重要的
信息 , 因此也是系统遭受攻击之后 , 攻击者会根据syslog.conf中设置试图清除相关文件
中自己的登录记录 。因此对于安全性要求更高的系统 , 可以尝试将syslog发送到另一台
计算机上 , 或者输出到一些设备文件中 , 如在打印机上立即打印输出 。
系统会使用newsyslog定期检查syslog输出的messages文件和maillog文件 , 将旧数
据压缩保存为备份文件 , 如messages.1.gz等 。
其他日志
除了系统登录记录和syslog记录之外 , 其他还有一些应用程序使用自己的记录方式
。
系统每天都会自动检查系统的安全设置 , 包括对SetUID、SetGID的执行文件的检查
, 其结果将输出到/ var/log/security.today文件中 , 管理员可以与/var/log/securit
y.yeste rday文件对比 , 寻找系统安全设置的变化 。
如果系统使用sendmail , 那么sendmail.st文件中以二进制形式保存了sendmail的统
计信息 。
在系统启动的时候 , 就将内核的检测信息输出到屏幕上 , 这些信息可以帮助用户分
析系统中的硬件状态 。一般使用d mesg命令来查看最后一次启动时输出的这个检测信息
。这个信息也被系统保存在/var/log/dmesg.tod ay文件中 , 系统中同时也存在另一个文
件dmesg.yesterday , 是上次的启动检测信息 , 对比这两个文件 , 就可以了解到系统硬件
和内核配置的变化 。
lpd-errs记录了系统中lpd产生的错误信息 。
此外 , 各种shell还会记录用户使用的命令历史 , 它使用用户主目录下的文件来记录
这些命令历史 , 通常这个文件的名字为.history(csh) , 或.bash-history等 。
- QQ坦白说如何改匿名身份 改匿名身份方法分享
- QQ坦白说如何发消息 给好友匿名发消息方法推荐
- 如何补数学 数学不好怎么提高
- QQ坦白说如何申请内测 内测资格获得方法说明
- 红豆赤小豆区别 如何区分赤小豆和红豆
- 暴风影音慢放如何调节 播放速度调节方法介绍
- 如何用wps合并文档
- 戒指测量方法 如何测量戒指尺寸
- Uplay点数如何获取 快速获取方法介绍
- 白色衣服上的污渍怎么去除 如何去除衣服上的污渍
