Linux 日志

0x00 日志简介

  日志的主要用途是系统审计、监测追踪和分析统计。为了保证Linux系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是管理员的一项非常重要的任务。Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为syslog,位于/etc/syslog或/etc/syslogd或/etc/rsyslog.d,/usr/sbin/rsyslogd 默认配置文件为/etc/syslog.conf或rsyslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。

0x01日志系统分类

一、系统接入日志:

  多个程序会记录该日志记录到/var/log/wtmp和/var/run/utmp文件中,telnet、ssh等程序会更新wtmp和utmp文件系统,管理员可以根据该日志跟踪到谁在何时登录到系统。

二、进程统计日志:

  linux内核记录该日志,当一个进程终止时,进程统计文件pacct或acct中会进行记录。进程统计日志可以供系统管理员分析系统使用者对系统进行的配置以及对文件进行的操作。

三、错误日志:

  syslog日志系统已经被许多设备兼容,Linux的syslog可以记录系统事件主要由syslogd程序或其它程序执行Linux系统下各种进程、用户程序和内核都可以通过syslog文件记录重要信息错误日志记录在/var/log/messages中。有许多Linux/Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

0x02 Linux系统日志介绍

一、日志配置

  可以通过编辑/etc/rsyslog.conf来配置日志。配置文件/etc/rsyslog.conf 规定了系统中需要监视的事件和相应的日志的保存位置。syslog能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如由于核心信息更重要且需要有规律地阅读以确定问题出在哪里所以要把核心信息与其他信息分开来单独定向到一个分离的文件中。

二、日志类型

以下是常见的日志类型,但并不是所有的Linux发行版都包含这些类型。
Linux 日志_第1张图片

三、日志优先级

Linux 日志_第2张图片

四、常用日志文件

1./var/log/boot.log

  记录了系统在引导过程中发生的事件,其实就是Linux系统开机自检过程显示的信息。可在终端输入命令“cat /etc/log/boot.log”进行查看。

2./var/log/cron

  该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE替换动作记录用户对它的cron文件的更新该文件列出了要周期性执行的任务调度。 RELOAD动作在REPLACE动作后不久发生这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。

3./var/log/maillog

  该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。

4. /var/log/lastlog

  该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看。根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过就显示为"Never logged in"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似如下的信息。
  注:系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录的,如果发现这些账户已经登录就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间则说明该用户的账户已经泄密了。

5. /var/log/messages

  记录Linux操作系统常见的系统和服务错误信息。该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。

6. /var/log/secure

  Linux系统安全日志,该日志文件记录与安全相关的信息。

7. /var/log/btmp

  记录Linux登陆失败的用户、时间以及远程IP地址。使用last命令可以查看btmp文件。例如:last -f /var/log/btmp | more。

8. /var/log/syslog

  只记录警告信息,常常是系统出问题的信息,使用 lastlog 查看。它和 /etc/log/message s日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。默认CentOS、Fedora不生成该日志文件,但可以配置/etc/syslog.conf或者rsyslog.conf,让系统生成该日志文件,在配置文件中加上*.warning /var/log/syslog,该日志文件能记录当用户登录时login记录下的错误口令、Send mail的问题、su命令执行失败等信息。

9. /var/log/wtmp

  该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看。该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。

10. /var/run/utmp

  该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件。该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。其中,/var/log/syslog或/var/log/messages存储所有的全局系统活动数据,包括开机信息。基于Debian的系统如Ubuntu在/var/log/syslog中存储它们,而基于RedHat的系统如 RHEL或CentOS则在/var/log/messages中存储它们。

11. /var/log/auth.log或/var/log/secure

  存储来自可插拔认证模块(PAM)的日志,包括成功的登录、失败的登录尝试和认证方式。Ubuntu和Debian在/var/log/auth.log中存储认证信息,而RedHat和CentOS则在/var/log/secure中存储该信息。

12.(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)

  这三个文件是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。

你可能感兴趣的:(#,Linux,linux,服务器,运维)