扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
日志系统承担着整个信息基础设施中感觉器官的作用,一个完善的、工作良好的体系需要在正确的地点部署日志采集工具,这些日志信息被汇总之后体现了整个设施的全貌。在一个信息体系当中,一个必要的组成部分就是对整个信息设施进行监控,以获得必要的信息素材,用以指导管理工作的开展。这些信息或者用于记录系统设置的改变,发现潜在的安全威胁,又或者用于证明某些事件的发生。
一、日志文件的作用
在专业用户层次上,日志文件可以提供一份有用的系统基础活动报告。只有熟悉自己的系统在正常运转时的正常表现,才能更加容易和迅速地把不正常的活动识别出来。从信息安防工作的角度讲,能不能把攻击服务器或网络的活动与服务器或网络的正常活动区别开来是极其关键的。光知道收集日志是不够的,还需要知道如何保护和利用它们。只有掌握了良好的日志管理和使用技巧,才有可能在入侵者刺穿信息安全防线之前识别出他们,才有可能在发生最坏情况之后制止它们再次发生。没有良好的日志工作,就不可能有让人放心的安全。
在普通用户层次上,日志文件可以帮助你了解系统的组成部分、具体用途以及正在发生的事情。查看日志是了解软件运行情况的最佳办法,使用Solaris 系统的时间越长,交给Solaris 系统的工作越多,对这一点就越有体会。日志文件可以让你知道哪些事情正进展顺利、哪些事情出现了问题。当看到出错报告的时候,不管它是硬件故障、是被拒绝的访问请求,还是其他更糟糕的问题,你都必须及时采取补救措施防止事态进一步扩大。
把日志信息总量控制在一个适当的水平,往往需要修改某些配置。许多应用程序都可以按照不同的级别进行日志活动;在某些场合,可能只需要把最关键的信息记录到日志文件里,在另外一些场合,却可能需要把日志信息的详细程度提高到调试级别。在经过几个星期的日志收集工作之后,你就能为系统和网络建立起一份对今后工作非常有帮助的基础活动档案。这类档案在你第一次注意到某种特定类型的活动时将非常有用,因为你可以立刻参照过去的日志对它是否属于正常活动做出判断。你或许会发现那只是一种正常但极少发生(比如一个月才发生一次)的活动,但要是手里没有时间跨度长达几个月的系统/网络基础活动档案,肯定很难发现这类事件的规律性。系统/网络基础活动档案还对设备采购计划工作有着非常重要的价值。为了确定自己需要在新设备方面做出多大的投资,必须知道有关的系统/网络活动在过去发生的频率和强度。对于一个网络,普通人最关心的往往是某个主页的“点击率”。我们并不否认“点击率”是一个很重要的指标,但在预测需要增加多少资源才能满足自己未来需求的时候,还应该参照其他一些重要的指标,比如系统上同时登录的人数、总登录人数、电子邮件总量、交易总量等。不仅如此,由日志提供的统计数字还可以让你向管理层提出的其他建议或计划更加具有说服力。
二、syslog 简介
从目前的情况来看,Syslog(系统日志)这一历史悠久的日志系统仍旧占据着最主流的地位。由于与类 UNIX平台之间的渊源,Syslog是在实际应用环境中最容易获得的日志系统。同时,还有很多的基于Syslog的扩展产品存在,这其中也包括大量基于UNIX平台构建内核的网络硬件设备,这些设备往往都内置了Syslog功能支持,例如Cisco路由器就是如此。 Syslog的应用具有一些显著的优势,除了能够像所有日志系统一样完成记录审计的工作之外,Syslog作为一种事实上的标准可以将不同架构的软硬件设施整合起来,让用户形成对一个应用系统的全面了解。
三、制定一个日志策略
身为系统管理员,向公司提出好的建议也是你的职责之一,你应该建议公司专门建立一套与日志工作有关的规章制度。日志文件不仅可以保护你本人和公司,还可以为做出的
决定提供证据和支持。日志策略至少应该解决以下几方面问题:
日志集中管理机制的建立集中管理日志的主要好处一是更便于它们的收集、整理和分析使用,二是可以防止敏感信息发生意外丢失或被人们蓄意篡改或删除。
为日志提供备份日志文件同样是重要的公司数据,同样需要备份和归档。如果公司需要备份的东西多到需要分批分组地进行,应该定义一个专门的分组来备份应用程序和操作系统的日志文件。
日志文件的保护一定要严格限制无关人员访问操作系统的日志文件,这些文件往往包含着各种口令字或其他敏感信息。
日志文件的保存期把日志文件压缩成档案永久地保存并非不现实。压缩后的日志文件要比它们原来占用的空间小很多;没有理由不压缩准备长期保留的日志文件。
四、配置syslog守护进程
syslog是Solaris 10系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点。现在,我们先看看syslog.conf文件的配置行格式(这个文件里的每一个配置行都是同样的格式),然后再看一个完整的syslog配置文件。syslog配置行的格式如下所示:
mail.*/var/log/mail
这一行由两个部分组成。第一个部分是一个或多个“选择条件”;上例中的选择条件是“mail”。选择条件后面跟一些空格字符,然后是一个“操作动作”;上例中的操作动作是:
/var/log/mail
1、选择条件
选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。上面给出的例子里只有一个选择条件“mail”。大家可以在我们后面给出的那个完整的syslog配置文件示例里看到同时有多个选择条件的配置行。表1列出了绝大多数Solaris 10操作系统变体都可以识别的选择条件。
syslog 序列号服务类型功能,描述符号
0kern内核信息LOG_KERN
1user用户进程LOG_USER
2mail邮件LOG_MAIL
3daemon后台进程LOG_DAEMON
4authpriv授权信息LOG_AUTH
5syslog系统日志LOG_SYSLOG
6lpr打印信息LOG_LPR
7news新闻组信息LOG_NEWS
8uucpUUCP程序LOG_UUCP
9cron计划和任务信息LOG_CRON
16–23local0-local7本地用户LOG_LOCALn
2、优先级
优先级是选择条件的第二个字段,它代表消息的紧急程度。对一个应用程序来说,它发出的哪些消息属于哪一种优先级是由当初编写它的程序员决定的,应用程序的使用者只能接受这样的安排——除非打算重新编译系统应用程序。表2按严重程度由低到高的顺序列出了所有可能的优先级。
syslog 序列号优先级含义符号
7debug调试级——信息量最多LOG_DEBUG
6info通知性消息LOG_INFO
none不记录任何日志消息Not Defined
5notice普通但重要的消息LOG_NOTICE
4warning警告消息LOG_WARNING
3err出错消息LOG_ERR
2crit重要消息LOG_CRIT
1alert 紧急消息LOG_ALERT
0emerg最紧急消息LOG_EMERG
不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是“warning”,它实际上将把“warning”、“err”、“crit”、“alert”和“emerg”都包括在内。
3、优先级限定符
syslog允许人们使用三种限定符对优先级进行修饰:星号(*)、等号(=)和叹号(!)。熟悉规则表达式的读者应该对这三种限定符不会感到陌生。星号(*)的含义是“把本项服务生成的所有日志消息都发送到操作动作指定的地点”。就像它在规则表达式里的作用一样,星号代表“任何东西”。在前面给出的例子里,“mail.*”
将把所有优先级的消息都发送到操作动作指定的/var/log/mail文件里。使用“*”限定符与使用“debug”优先级的效果完全一样,后者也将把所有类型的消息发送到指定地点。
等号(=)的含义是“只把本项服务生成的本优先级的日志消息都发送到操作动作指定的地点”。比如说,可以用“=”限定符只发送调试消息而不发送其他更紧急的消息(这将为应用程序减轻很多负担)。当你只需要发送特定优先级别的消息时,就要使用等号限定符。就像它在编程时的用法一样,等号意味着等于且仅等于。叹号(!)的含义是“把本项服务生成的所有日志消息都发送到操作动作指定的地点,但本优先级的消息不包括在内”。
4、操作动作
日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。syslog配置文件并不复杂,既容易阅读又容易操作使用。这个文件里的注释都非常有用,应该好好读读它们。
五、建立一个中央日志服务器
为系统日志创建一个中央服务器有两大好处。首先,直接暴露在因特网面前的系统就好比战场的最前线,万一它们当中的某一台被攻陷了,你必须知道那里到底发生过什么事情,可攻击者可能会不择手段地毁灭证据,如果你已经把日志保存到另一个系统上,攻击者就不容易销毁他们的罪证了。第二,为某个网络里的所有联网机器统一建立的中央日志服务器可以让系统管理员守在一个地点就能对所有的系统进行监控,而不必整天忙着依次登录到所有的服务器上查看日志。
1、建立中央日志服务器
只须稍加配置,就可以用syslog实现一个中央日志服务器。任何一台运行syslog守护进程的服务器都可以被配置成接受来自另一台机器的消息,但这个选项在默认情况下是禁用的。在后面的讨论里,如无特别说明,有关步骤将适用于包括Solaris 10发行版本。我们先来看看如何激活一个syslog服务器接受外来的日志消息:
将相应的工具添加到 syslog 配置文件中。
例如,要使用 USER 工具存储所有警报,请将以下行添加到 /etc/syslog.conf 中:
user.info /var/adm/info此处的 /var/adm/info 是要存储消息的本地目录示例。在继续操作之前,请确保存在 /var/adm/info。
重新启动 syslogd 守护进程。
在 Solaris 8 和 Solaris 9 等老版本上,通过键入以下命令重新启动 syslogd:
$ /etc/init.d/syslog start
在 Solaris 10 上,通过键入以下命令重新启动 syslogd:
$ svcadm restart system/system-log
验证是否已将消息记录到 syslog 中。
$ logger -p user.info "Test message"
$ cat /var/adm/info
Jun 19 17:18:38 host user: [ID 12345 user.info] Test message
如果这台机器上运行着ipf防火墙或TCP Wrappers,请确保它们允许514号端口上的连接通过。syslog守护进程要用到514号端口。
2、为中央日志服务器配置各客户机器
让客户机把日志消息发往一个中央日志服务器并不困难。编辑客户机上的/etc/syslog.conf文件,在有关配置行的操作动作部分用一个“@”字符指向中央日志服务器,如下所示:
authpriv.*@192.168.1.40
另一种办法是在DNS里定义一个名为“loghost”的机器,然后对客户机的syslog配置文件做如下修改(这个办法的好处是:当你把中央日志服务器换成另一台机器时,不用再修改每一个客户机上的syslog配置文件):
authpriv.*@loghost
接下来,重新启动客户机上的syslog守护进程让修改生效。让客户机在往中央日志服务器发送日志消息的同时继续在本地进行日志工作仍有必要,起码在调试客户机的时候不必到中央日志服务器查日志,在中央日志服务器出问题的时候还可以帮助调试。
总结:日志系统承担着整个信息基础设施中感觉器官的作用,一个完善的、工作良好的体系需要在正确的地点部署日志采集工具。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者