CentOS系统日志管理指南
常见日志文件及用途
/var/log目录存储着各类系统和服务的日志文件,这些文件由rsyslog服务维护。以下是主要日志文件及其功能:
| 日志文件 | 功能描述 |
|---|---|
| /var/log/messages | 存储大部分系统日志信息,但不包含认证、邮件处理和定时任务相关内容 |
| /var/log/secure | 记录安全认证相关信息和登录失败记录,主要包括SSH连接日志 |
| /var/log/maillog | 存储邮件系统相关日志信息 |
| /var/log/cron | 记录定时任务执行相关日志 |
| /var/log/boot.log | 保存系统启动过程信息 |
| /var/log/dmesg | 记录内核启动信息 |
| /var/log/wtmp | 二进制文件,记录用户登录次数和时长,可用last命令查看 |
| /var/log/btmp | 类似wtmp但记录错误登录信息,使用lastb命令查看。若文件超过1MB需警惕暴力破解行为 |
案例分析:识别暴力破解攻击源
通过模拟SSH连接失败场景来演示日志分析方法:
[root@server ~]# ssh admin@192.168.1.10 admin@192.168.1.10's password: Permission denied, please try again. admin@192.168.1.10's password: Permission denied, please try again. admin@192.168.1.10's password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
检查安全日志中的失败记录:
[root@server ~]# tail /var/log/secure May 15 14:23:15 server sshd[12345]: Failed password for admin from 192.168.1.10 port 22222 ssh2 May 15 14:23:18 server sshd[12345]: Failed password for admin from 192.168.1.10 port 22222 ssh2 May 15 14:23:21 server sshd[12345]: Failed password for admin from 192.168.1.10 port 22222 ssh2
提取攻击源IP地址:
[root@server ~]# grep "Failed" /var/log/secure | awk '{print $11}' | sort | uniq -c
3 192.168.1.10
用户登录历史查询
使用last命令查看成功登录记录:
[root@server ~]# last john pts/0 192.168.1.5 Mon May 15 14:30 still logged in mary pts/1 192.168.1.8 Mon May 15 14:25 still logged in reboot system boot 3.10.0-1127.el7. Mon May 15 14:00 - 15:00 (01:00)
失败登录记录分析
使用lastb命令检查错误登录尝试:
[root@server ~]# lastb admin ssh:notty 192.168.1.10 Mon May 15 14:23 - 14:23 (00:00) admin ssh:notty 192.168.1.10 Mon May 15 14:23 - 14:23 (00:00) admin ssh:notty 192.168.1.10 Mon May 15 14:23 - 14:23 (00:00)
安全防护措施
针对恶意IP实施网络访问控制:
CentOS 7防火墙配置:
[root@server ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" drop' [root@server ~]# firewall-cmd --reload
日志清理操作
清空失败登录记录:
[root@server ~]# > /var/log/btmp
rsyslog服务详解
日志分类体系
| 分类标识 | 用途说明 |
|---|---|
| daemon | 守护进程相关信息 |
| kern | 内核生成的消息 |
| lpr | 打印系统日志 |
| authpriv | 安全认证信息 |
| cron | 定时任务相关日志 |
| 邮件系统信息 | |
| syslog | 日志服务自身消息 |
| local0~local7 | 8个预留分类供自定义使用 |
日志优先级等级
| 等级编码 | 优先级名称 | 严重程度 |
|---|---|---|
| 7 | debug | 调试信息,主要用于开发环境 |
| 6 | info | 常规操作信息 |
| 5 | notice | 重要但正常的事件通知 |
| 4 | warning | 警告信息,可能引发错误 |
| 3 | err | 错误信息,影响模块功能 |
| 2 | crit | 严重错误,影响系统运行 |
| 1 | alert | 警报信息,需立即处理 |
| 0 | emerg | 紧急情况,如内核崩溃 |
rsyslog配置解析
查看主配置文件内容:
[root@server ~]# grep -vE "^$|^#" /etc/rsyslog.conf $ModLoad imuxsock $ModLoad imjournal $WorkDirectory /var/lib/rsyslog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:* local7.* /var/log/boot.log
自定义日志配置示例
为SSH服务创建专用日志:
修改SSH配置文件:
[root@server ~]# vim /etc/ssh/sshd_config # 修改以下行: SyslogFacility local0
配置rsyslog规则:
[root@server ~]# vim /etc/rsyslog.conf # 添加新规则: local0.* /var/log/ssh-custom.log
重启相关服务使配置生效:
[root@server ~]# systemctl restart sshd [root@server ~]# systemctl restart rsyslog