`
purpen
  • 浏览: 796649 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何使用Linux下的系统日志

阅读更多

Linux系统中的日志子系统对于系统安全来说非常重要,它记录了系统每天发生的各种各样的事情,包括哪些用户曾经或者正在使用系统,可以通过日志来检查错误发生的原因,更重要的是在系统受到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统 管理员可以发现黑客攻击的某些手段以及特点,从而能够进行处理工作,为抵御下一次攻击做好准备。

 

在Linux系统中,有三类主要的日志子系统:

● 连接时间日志: 由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

● 进程统计: 由系统内核执行,当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。

● 错误日志: 由syslogd(8)守护程序执行,各种系统守护进程、用户程序和内核通过syslogd(3)守护程序向文件/var/log/messages报告 值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

 

Linux下日志的使用

1.基本日志命令的使用

utmp、wtmp日志文件是多数Linux日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中; 登录进入和退出记录在文件wtmp中; 数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循 环使用。它通常由cron运行的脚本来修改,这些脚本重新命名并循环使用wtmp文件。

 

utmp文件被各种命令文件使用,包括who、w、users和finger 。而wtmp文件被程序last和ac 使用。但它们都是二进制文件,不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。

 

具体用法如下:

who命令: who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如: 运行who命令显示如下:

[root@working]# who

root pts/0 May 9 21:11 (10.0.2.128)

root pts/1 May 9 21:16 (10.0.2.129)

lhwen pts/7 May 9 22:03 (10.0.2.27)

如果指明了wtmp文件名,则who命令查询所有以前的记录。例如命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。

 

日志使用注意事项

系统管理人员应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:

■ 用户在非常规的时间登录;

■ 不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;

■ 用户登录系统的IP地址和以往的不一样;

■ 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;

■ 非法使用或不正当使用超级用户权限su的指令;

■ 无故或者非法重新启动各项网络服务的记录。

另外, 尤其提醒管理人员注意的是: 日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合地进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。

 

users命令: users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:

[root@working]# users

root root //只登录了一个Root权限的用户

 

last命令: last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现其中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:

[root@working]# last

devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8+17:46)

devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)

changyi pts/2 10.0.2.141 Mon Jul 21 14:12 - 14:12 (00:00)

devin pts/1 10.0.2.221 Mon Jul 21 12:51 - 14:40 (01:49)

reboot system boot 2.4.18 Fri Jul 18 15:42 (11+17:13)

reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04)

reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36)

读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如: 使用last devin来显示devin的历史登录信息,则如下所示:

[root@working]# last devin

devin pts/1 10.0.2.221 Mon Jul 21 15:08 - down (8+17:46)

devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)

 

ac命令:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。另外,可以加一些参数,例如,last -t 7表示显示上一周的报告。

lastlog命令 lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log /lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示“**Never logged**”。注意需要以root身份运行该命令。运行该命令如下所示:

[root@working]# lastlog

Username Port From Latest

root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

 

2.使用Syslog设备

Syslog已被许多日志函数采纳,被用在许多保护措施中,任何程序都可以通过syslog 记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。

Syslog设备核心包括一个守护进程(/etc/syslogd守护进程)和一个配置文件(/etc/syslog.conf配置文件)。通常情 况下,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成 程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。

系统管理员通过使用syslog.conf文件,可以对生成的日志的位置及其相关信息进行灵活配置,满足应用的需要。例如,如果想把所有邮件消息记录到一个文件中,则做如下操作:

#Log all the mail messages in one place

mail.* /var/log/maillog

其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为\"err\"或更高。例如:

# Save news errors of level crit and higher in a special file.

uucp,news.crit /var/log/spooler

当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的日志接收并保存。

#Everybody gets emergency messages, plus log them on anther machine

*.emerg *

*.emerg @linuxaid.com.cn

用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages,除了mail以外。级别\"none\"禁止一个设备:

#Log anything(except mail)of level info or higher

#Don\’t log private authentication messages!

*.info:mail.none;autHPriv.none /var/log/messages

在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志都不能清除入侵的痕迹。因此,syslog设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。

 

3.程序日志的使用

许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的文件为sulog,同样的还有 sudolog。另外,诸如Apache等Http的服务器都有两个日志: access_log(客户端访问日志)以及error_log(服务出错日志)。 FTP服务的日志记录在xferlog文件当中,Linux下邮件传送服务(sendmail)的日志一般存放在maillog文件当中。

程序日志的创建和使用在很大程度上依赖于用户的良好编程习惯。对于一个优秀的程序员来说,任何与系统安全或者网络安全相关的程序的编写,都应该包含日志功能,这样不但便于程序的调试和纠错,而且更重要的是能够给程序的使用方提供日志的分析功能,从而使系统管理员能够较好地掌握程序乃至系统的运行状况和用户的行为,及时采取行动,排除和阻断意外以及恶意的入侵行为。

 

分享到:
评论

相关推荐

    Linux 操作系统日志管理全攻略

    Linux 操作系统日志管理全攻略 Linux 操作系统日志管理是指对操作系统中各种日志的管理和维护。日志对于安全来说非常重要,它记录了系统每天发生的各种各样的事情,可以通过它来检查错误发生的原因,或者受到攻击时...

    linux系统日志解析

    ### Linux系统日志解析 在Linux系统中,日志文件是非常重要的组成部分,它们记录了系统的运行状态、应用程序的行为以及各种事件的发生情况。通过对这些日志的分析,可以帮助系统管理员及时发现并解决问题,确保系统...

    基于VMware下的Linux环境构建日志服务器.pdf

    日志服务器是记录和存储系统日志的重要组件,对于系统维护和故障排除至关重要。 标题解释 基于VMware下的Linux环境构建日志服务器.pdf 描述解释 本文档将指导读者在VMware下的Linux环境中构建日志服务器。 标签...

    Linux系统日志文件的打印与存储

    本文将深入探讨Linux系统日志文件的打印与存储。 一、日志文件的位置与类型 在Linux系统中,日志文件通常存储在/var/log目录下,这里包含了多种类型的日志文件: 1. /var/log/messages:主要记录系统级信息和警告...

    Linux系统日志全面分析

    "Linux系统日志全面分析" Linux系统日志是指Linux系统中记录操作记录和事件的日志文件,它们可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。Linux系统拥有非常灵活和强大的日志功能,可以根据日志的...

    linux系统中c++写日志文件功能分享

    在Linux系统中,C++编写日志文件是常见的任务,特别是在开发系统软件或者服务时,为了追踪程序运行状态和错误信息,日志记录是必不可少的。本文将介绍一种简化自glog的日志功能,它专注于写入日志文件,不再包含glog...

    linux收集日志工具

    在Linux操作系统中,日志管理是一项至关重要的任务,它能够帮助系统管理员监控系统状态、诊断问题和优化性能。...在使用过程中,配合良好的日志管理策略和对日志内容的理解,可以大大提高维护和管理Linux系统的效能。

    Linux系统日志收集工具.rar

    "Linux系统日志收集工具"是一个专门为Linux系统设计的实用程序,用于集中收集、管理和分析系统日志。这个压缩包文件包含了一个这样的工具,可能包括脚本、配置文件或专门的日志收集软件,它需要在`/root`目录下解压...

    LINUX系统日志的清除.docx

    "LINUX系统日志的清除" Linux系统日志是指存储在Linux操作系统中的日志文件,用于记录系统的活动、事件和错误信息。这些日志文件通常存储在/var/log和/var/adm目录下。了解Linux系统日志的重要性在于,它们可以帮助...

    Linux系统日志文件的远程存储实现.pdf

    Linux系统日志文件的远程存储实现 Linux系统日志文件的远程存储实现是指在Linux系统中对日志文件的存储和管理的一种方法。日志文件是Linux系统中非常重要的一部分,它记录了系统每天发生的各种事件,可以通过日志来...

    操作系统安全:linux系统日志介绍.ppt

    操作系统安全在Linux环境中至关重要,而Linux系统日志是监控系统状态和排查问题的重要工具。Linux系统日志由syslog服务管理,它是一个分布式日志记录系统,能够收集和处理来自不同程序的日志信息。syslog服务通常...

    linux下的日志处理

    综上所述,Linux下的日志处理涉及到标准输出/错误、syslog、journalctl、日志轮换和权限管理等多个方面,而C/C++程序员可以通过系统调用或第三方库来实现这些功能。理解并熟练运用这些知识点,对于开发健壮、可维护...

    linux系统日志详解

    Linux系统日志详解 在Linux操作系统中,日志系统扮演着至关重要的角色,它记录了系统运行中的事件、错误和警告信息,为管理员提供了一种监控和诊断系统状况的手段。Linux日志主要分为几个部分,包括日志的分类、...

    linux下nohup日志输出过大问题的解决方法

    Linux 下 nohup 日志输出过大问题的解决方法 Linux 是一个功能强大且广泛使用的操作系统,nohup 命令是 Linux 中的一个常用命令,用于在后台运行程序并将输出重定向到文件中。但是在使用 nohup 命令时,经常会遇到...

    集中化Linux日志管理系统

    Linux系统中的日志通常遵循syslog协议,该协议定义了日志消息的结构和级别,如警告、错误、信息等。还有一些应用程序有自己的日志格式,例如Apache HTTP服务器的日志文件。 **3. 集中化日志管理系统组件** - **...

    Linux C 实现日志打印功能

    本篇文章将深入探讨如何在Linux环境下用C语言实现日志打印功能。 首先,理解日志的基本结构和分类至关重要。常见的日志级别有DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT和EMERGENCY,这些级别按照严重...

    Linux环境下的日志分析系统LASL.pdf

    - **日志文件**: 计算机系统在运行过程中产生的各种记录文件,包括系统日志、应用程序日志等。 - **入侵检测**: 日志文件作为入侵检测的重要数据来源,能够帮助安全管理员及时发现潜在的安全威胁。 - **应急响应**: ...

    linux下的异步日志记录类

    总结起来,Linux下的异步日志记录类`debugger`和`debug_msg`涉及到多线程编程、日志级别管理、日志消息封装、同步机制、性能优化等多个方面,是实现高效、稳定、易用的日志系统的基石。理解和掌握这些知识点对于开发...

    一种查看Linux系统审计日志的图形工具.pdf

    10. 系统日志管理:该工具可以帮助管理员管理系统日志,避免了日志文件的膨胀和占用系统资源。 该工具可以帮助管理员快速浏览和统计分析Linux系统中的审计日志,提高了系统审计日志的实用性和安全性。

Global site tag (gtag.js) - Google Analytics