<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[FreeBSD日志系统]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Tue, 26 Jan 2010 14:21:28 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	系统日志 <br/><br/>　　 系统的日志记录提供了对系统活动的详细审计，这些日志用于评估、审查系统的运行环境和各种操作。对于一般情况 ，日志记录包括记录用户登录时间、登录地点、进行什么操作等内容，如果使用得当，日志记录能向系统管理员提供有关危害 安全的侵害或入侵试图等非常有用的信息。 <br/><br/>　　 BSD提供了详细的各种日志记录，以及有关日志的大量工具和实用程序。这些审计记录通常由程序自动产生，是缺 省设置的一部分，能够帮助Unix管理员来寻找系统中存在的问题，对系统维护十分有用。还有另一些日志记录，需要管理 员进行设置才能生效。大部分日志记录文件被保存在/var/log目录中，在这个目录中除了保存系统生成日志之外，还 包括一些应用软件的日志文件。当然/var目录下的其他子目录中也会记录下一些其他种类的日志记录文件，这依赖于具体 的应用程序的设置。 <br/><br/><br/>[code]$ ls /var/log <br/>adduser maillog.5.gz sendmail.st.1 <br/>dmesg.today maillog.6.gz sendmail.st.10 <br/>dmesg.yesterday maillog.7.gz sendmail.st.2 <br/>httpd-access.log messages sendmail.st.3 <br/>httpd-error.log messages.0.gz sendmail.st.4 <br/>kerberos.log messages.1.gz sendmail.st.5 <br/>lastlog messages.2.gz sendmail.st.6 <br/>lpd-errs messages.3.gz sendmail.st.7 <br/>maillog messages.4.gz sendmail.st.8 <br/>maillog.0.gz messages.5.gz sendmail.st.9 <br/>maillog.1.gz news setuid.today <br/>maillog.2.gz ppp.log setuid.yesterday <br/>maillog.3.gz sendmail.st userlog <br/>maillog.4.gz sendmail.st.0 wtmp [/code]<br/><br/><br/><br/>系统登录日志 <br/><br/>　　 系统会保存每个用户的登录记录，这些信息包括这个用户的名字、登录起始结束时间以及从何处登录入系统的等等。 它们被保存到/var/log/lastlog、/var/log/wtmp和/var/run/utmp文件中，这 三个文件以二进制格式保存了这些用户的登录数据。 <br/><br/>　　 其中/var/run/utmp文件中保存的是当前系统用户的登录记录，因此这个文件会随着用户进入和离开系 统而不断变化，而它也不会为用户保留很长的记录，只保留当时联机的用户记录。系统中需要查询当前用户状态的程序，如 who、w等就需要访问这个文件。utmp可能不包括所有精确的信息，某些突发错误会终止用户登录会话，当没有及时更新 utmp记录，因此utmp的记录不是百分之百的可以信赖的。 <br/><br/>　　 而/var/log/wtmp保存了所有的登录、退出信息，以及系统的启动、停机记录，因此随着系统正常运行 时间的增加，它的大小也会越来越大，增加的速度依赖于系统用户登录次数。因此可以利用这个日志用来查看用户的登录记录 ，last命令就通过访问这个文件来获得这些信息，并以反序从后向前显示用户的登录记录，last也能根据用户、终端 tty或时间显示相应的记录。ac命令同样也使用wtmp中的数据产生报告，但它的显示方式不同。它可以根据用户（ac -p） ，或按日期（ap -d）显示信息，这样管理员就能获得一些非常有用的反常信息，如一个平时不太活跃的用户 突然登录并连接很长时间，就有理由怀疑这个帐户被窃取了。 <br/><br/>　　 注意：X Window由于会同时打开多个终端窗口，因此会使得用户登录连接时间迅速增加。 <br/><br/>　　 lastlog文件保存的是每个用户的最后一次登录信息，包括登录时间和地点，这个文件一般只有login程 序使用，通过用户的UID，来在lastlog文件中查找相应记录，然后报告其最后一次登录时间和终端tty。然后， login程序就使用新的记录更新这个文件。 <br/><br/>　　 这三个文件是使用二进制格式保存的，因此不能直接查看其中的内容，而需要使用相关命令。当然也可以通过程序来 访问这三个文件，这就需要了解它们使用的数据结构。其中utmp和wtmp使用同样的数据结构，而lastlog使用 另外一个数据结构，可使用man来进行查询具体结构。如果系统的用户数量很多，那么wtmp文件的大小会迅速增加，在 系统/var文件系统空间紧张的情况下，就导致这个文件系统被占满。系统不会主动控制这个文件的大小，因此这需要管理 员的干预，需要手工及时清除，或编写shell脚本定期保存和清除。 <br/><br/>　　 系统还可以提供记账统计的功能，要打开系统的计账功能，需要使用accton命令，注意，accton必须跟 随记账日志文件的名字作参数，而不带参数的accton将关闭记账进程。 <br/><br/>　　 当打开了记账功能后，可以使用lastcomm来检查在系统中执行的所有命令的信息，包括执行的命令、执行命 令的用户、用户使用的终端tty，命令完成的时间，执行时间等。从lastcomm的输出也能帮助管理员检查可能的入 侵行为。 <br/><br/>　　 此外可以使用ac命令来查询用户的连接时间的报告，sa命令来查询用户消耗的处理器时间的报告。 <br/><br/><br/>Syslog日志记录 <br/><br/>　　 最初，syslog只是为了sendmail而设计的消息日志工具，由于它提供了一个中心控制点，使得sys log非常好用和易配置，因此当今很多程序都使用syslog来发送它们的记录信息。syslog是一种强大的日志记 录方式，不但可以将日志保存在本地文件中，还可以根据设置将syslog记录发送到网络上的另一台主机中。 <br/><br/>　　 支持syslog方式的系统启动了syslogd守护进程，这个程序从本地的Unix套接字和监听在514端 口（UDP）上的Internet套接字，来获得syslog的记录。本机中进程使用syslog系统调用发送来sy slog记录，然后由syslogd将他们保存到正确的文件或发送到网络上另一台运行syslogd主机中去。 <br/><br/>　　 syslogd的设置文件为/etc/syslog.conf，定义消息对应的相应目标，一条消息可以达到多 个目标，也可能被忽略。 <br/><br/><br/>[code]# $Id: syslog.conf,v 1.9 1998/10/14 21:59:55 nate Exp $ <br/><br/># <br/><br/># Spaces are NOT valid fIEld separators in this file. <br/><br/># Consult the syslog.conf(5) manpage. <br/><br/>*.err;kern.debug;auth.notice;mail.crit /dev/console <br/><br/>*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages <br/><br/>mail.info /var/log/maillog <br/><br/>lpr.info /var/log/lpd-errs <br/><br/>cron.* /var/cron/log <br/><br/>*.err root <br/><br/>*.notice;news.err root <br/><br/>*.alert root <br/><br/>*.emerg * <br/><br/>!ppp <br/><br/>*.* /var/log/ppp.log [/code]<br/>　　 syslog.conf的配置可以分为两个部分，第一部分用于区分消息的类型，另一个用于设置消息发送的目的 地。通常，消息的类型包括消息的产生者，例如kern表示内核产生的消息，auth表示认证系统产生的消息，等等，还 包括消息的级别，例如emerg表示非常重要的紧急信息，alert表示系统告警状态，crit表示关键状态，err 表示一般的错误信息，warning表示警告信息，notice表示提示信息，但还不是错误，info表示一般信息， debug表示调试信息等，因此一个消息的类型可能为：kern.debug、mail.info等，但页可以使用通 配符*进行匹配。 <br/><br/>　　 从上面的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发送到另一台计算机上，或者输出到一些设 备文件中，如在打印机上立即打印输出。 <br/><br/>　　 系统会使用newsyslog定期检查syslog输出的messages文件和maillog文件，将旧数 据压缩保存为备份文件，如messages.1.gz等。 <br/><br/><br/>其他日志 <br/><br/>　　 除了系统登录记录和syslog记录之外，其他还有一些应用程序使用自己的记录方式。 <br/><br/>　　 系统每天都会自动检查系统的安全设置，包括对SetUID、SetGID的执行文件的检查，其结果将输出到/ var/log/security.today文件中，管理员可以与/var/log/security.yeste rday文件对比，寻找系统安全设置的变化。 <br/><br/>　　 如果系统使用sendmail，那么sendmail.st文件中以二进制形式保存了sendmail的统计 信息。 <br/><br/>　　 在系统启动的时候，就将内核的检测信息输出到屏幕上，这些信息可以帮助用户分析系统中的硬件状态。一般使用d mesg命令来查看最后一次启动时输出的这个检测信息。这个信息也被系统保存在/var/log/dmesg.tod ay文件中，系统中同时也存在另一个文件dmesg.yesterday，是上次的启动检测信息，对比这两个文件，就 可以了解到系统硬件和内核配置的变化。 <br/><br/>　　 lpd-errs记录了系统中lpd产生的错误信息。 <br/><br/>　　 此外，各种shell还会记录用户使用的命令历史，它使用用户主目录下的文件来记录这些命令历史，通常这个文 件的名字为.history（csh），或.bash-history等。 
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] FreeBSD日志系统]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>