基础Linux安全:系统日志与入侵检测
立即解锁
发布时间: 2025-08-25 00:10:31 阅读量: 1 订阅数: 9 

# 基础 Linux 安全:系统日志与入侵检测
## 1. 系统日志简介
系统日志工具在 Linux 系统中扮演着至关重要的角色,它能够记录 Linux 内核的消息。这些日志所包含的信息来源广泛,不仅包括 Linux 内核本身,还涵盖了系统使用的其他应用程序,例如邮件日志以及由 `cron` 命令生成的自动化日志。
系统日志由 `syslogd` 守护进程运行,在系统启动时就会启动。`syslogd` 运行后,会把内核或相关应用程序输出的信息记录到主日志文件 `messages` 中。该文件位于 `/var/log` 目录下,与其他应用程序使用的日志文件存放在一起。
### 1.1 日志条目格式
`messages` 文件是一个文本文件,当内核有需要记录的重要事件时,`syslogd` 会持续更新它。每次生成新的日志条目时,`syslogd` 守护进程会将其追加到 `messages` 文件中,日志条目采用以下语法:
```plaintext
date time hostname message
```
其中,`date` 和 `time` 记录事件发生的日期和时间戳,精确到秒;`hostname` 是机器的主机名;`message` 则是关于事件的信息。
以下是一个日志条目的示例:
```plaintext
May 16 11:11:33 localhost avahi - daemon[4355]: Registering new address record for 192.168.1.11 on eth0.
```
从这个示例可以看出,该日志于 5 月 16 日上午 11:11:33 生成,由本地计算机 `localhost` 使用 `avahi - daemon` 服务生成,进程号为 4355。日志的目的是通知管理员,`avahi - daemon` 已将该机器的 IP 地址分配为 192.168.1.11,使用的是第一个硬件网卡 `eth0`。对于 `avahi - daemon` 的开发者来说,方括号内的数字(4355)是服务的进程 ID,可用于排查问题。
### 1.2 查看日志内容
- **查看完整内容**:可以使用文本编辑器打开 `/var/log/messages` 文件来查看其完整内容。
- **查看最新活动**:如果只对内核的最新活动感兴趣,可以使用 `tail /var/log/messages` 命令查看 `messages` 文件的最后十行,这些行包含了系统最近的活动信息。
### 1.3 其他日志文件
除了 `messages` 文件,`syslog` 还有其他用于特定功能的日志文件,这些文件也位于 `/var/log` 目录下,且遵循与 `messages` 文件相同的日志条目格式:
- **`maillog` 文件**:保存由邮件服务器(如 `sendmail`)生成的电子邮件日志消息。
- **`secure` 日志文件**:记录用户使用 `login` 程序进行本地登录的尝试消息,以及远程用户通过 SSH 登录系统的消息。
## 2. 使用 `syslog.conf` 配置日志
`syslog.conf` 文件是 `syslogd` 守护进程的主要配置文件,位于 `/etc` 目录下。该文件包含了关于哪些条目需要记录以及记录位置的规则,每条规则的形式如下:
```plaintext
selector action
```
其中,`selector` 是要记录的设施和该设施的优先级,`action` 是当 `selector` 的条件满足时需要执行的操作。
以下是一个规则示例:
```plaintext
# Log cron stuff
cron.* var/log/cron
```
在这个示例中,`selector` 是 `cron.*`,`action` 是 `/var/log/cron`。该规则会记录 `crond` 守护进程生成的所有自动化任务信息,并将其保存到 `/var/log` 目录下的 `cron` 文件中。以 `#` 开头的行是注释,会被 `syslogd` 忽略。
### 2.1 选择器(Selectors)
选择器由两部分组成:设施(`facility`)和优先级(`priority`),采用 `facility.priority` 的格式。
#### 2.1.1 设施(Facility)
设施是 `syslogd` 可以记录的系统信息的固定来源集合,包括以下守护进程:`lpr`、`mail`、`cron`、`mark`、`news`、`syslog`、`user`、`uucp` 和本地设施(`local0` 到 `local7`)。各设施的功能如下表所示:
| 设施 | 描述 |
| --- | --- |
| `daemon` | 该设施会接收系统守护进程以及没有自己设施值的系统守护进程的消息。 |
| `lpr` | 打印服务器使用此设施发送与打印机相关的消息。 |
| `mail` | 邮件服务器使用此设施发送邮件信息,如电子邮件时间戳和失败状态消息。 |
| `mark` | 以固定间隔发送系统消息,仅用于内部使用。 |
| `news` | 如果系统上有新闻服务器,该服务器生成的消息将来自此设施。 |
| `syslog` | 保存 `syslogd` 守护进程的消息。 |
| `user` | 保存由用户启动的进程(如服务器程序)生成的消息。 |
| `uucp` | `UUCP` 使用此设施发送消息。 |
| `local0 - local7` | 这些是为系统本地使用保留的设施,可以分配特定的可记录来源。在 `syslog.conf` 文件中,`local7` 用于记录系统启动消息。 |
| `cron` | `crond` 守护进程使用此设施发送消息。 |
| `authpriv` | 这些是安全信息消息。 |
| `kern` | 保存 Linux 内核生成的消息,对 Linux 内核开发很有用。 |
#### 2.1.2 优先级(Priority)
优先级用于调整设施可以生成并记录到指定操作的信息量,优先级按升序排列如下表所示:
| 优先级 | 描述 |
| --- | --- |
| `debug` | 程序生成的调试信息。 |
| `info` | 一般信息消息。 |
| `notice` | 通知某些进程的特定行为需要被观察。 |
| `warning` | 对可能影响系统的进程发出的警告消息。 |
| `crit` | 对某些事件(如软件或硬件问题)发出的关键警告。 |
| `alert` | 对系统发出的警告消息,告知用户可能影响系统的程序故障。如果看到此类消息,应立即检查系统。 |
| `emerg` | 紧急消息,如可能导致系统不稳定的内核问题通知。 |
### 2.2 选择器的使用示例
- **获取邮件服务器的一般信息**:如果想获取新安装的邮件服务器的一般信息,可以使用 `mail.info` 选择器。
- **生成额外消息**:可以通过分号追加消息,例如 `m
0
0
复制全文
相关推荐









