日志的种类和记录的方式
在centos7中,系统日志消息由两个服务负责处理:systemd-journald和rsyslog
常见日志文件
系统日志文件概述:/var/log目录保管由rsyslog维护的,里面存放的一些特定于系统和服务的日志文件
日志文件 |
用途 |
/var/log/message |
大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等 |
/var/log/secure |
安全和身份验证相关的消息和登录失败的日志文件。 ssh远程连接产生的日志 |
/var/log/maillog |
与邮件服务器相关的消息日志文件 |
/var/log/cron |
与定期执行任务相关的日志文件 |
/var/log/boot.log |
与系统启动相关的消息记录 |
/var/log/dmesg |
与系统启动相关的消息记录 |
例1:查看哪个IP地址经常暴力破解系统用户密码
# ssh [email protected] #故意输错3次密码
# grep Failed /var/log/secure
Aug 19 21:55:42 panda sshd[84029]: Failed password for root from 10.10.30.130 port 50916 ssh2
Aug 19 21:55:44 panda sshd[84029]: Failed password for root from 10.10.30.130 port 50916 ssh2
Aug 19 21:55:47 panda sshd[84029]: Failed password for root from 10.10.30.130 port 50916 ssh2
Aug 19 21:55:52 panda sshd[84034]: Failed password for root from 10.10.30.130 port 50917 ssh2
[root@xuegod63 log]# grep Failed /var/log/secure | awk '{print $11}' | uniq -c
3 192.168.1.63
注:awk '{print $11}' #以空格做为分隔符,打印第11列的数据
uniq命令用于报告或忽略文件中的重复行,-c或——count:在每列旁边显示该行重复出现的次数;
例2:/var/log/wtmp文件的作用
/var/log/wtmp也是一个二进制文件,记录每个用户的登录次数和持续时间等信息。
可以用last命令输出wtmp中内容: last 显示到目前为止,成功登录系统的记录
# last
root pts/2 192.168.1.8 Tue May 22 00:35 still logged in
root pts/2 192.168.1.8 Mon May 21 20:42 - 00:35 (03:53)
或:
# last -f /var/log/wtmp
例3:使用 /var/log/btmp 文件查看暴力破解系统的用户
/var/log/btmp文件是记录错误登录系统的日志。如果发现/var/log/btmp日志文件比较大,大于1M,就算大了,就说明很多人在暴力破解ssh服务,此日志需要使用lastb程序查看
# lastb
root ssh:notty xuegod63.cn Mon May 21 21:49 - 21:49 (00:00)
root ssh:notty xuegod63.cn Mon May 21 21:49 - 21:49 (00:00)
发现后,使用防火墙,拒绝掉:命令如下:
iptables -A INPUT -i eth0 -s. 192.168.1.63 -j DROP
查看恶意ip试图登录次数:
lastb | awk '{ print $3}' | sort | uniq -c | sort -n
清空日志:
方法1:# > /var/log/btmp
方法2:rm -rf /var/log/btmp && touch /var/log/btmp
两者的区别?
使用方法2,因为创建了新的文件,而正在运行的服务,还用着原来文件的inode号和文件描述码,所需要重启一下rsyslog服务。建议使用方法1 > /var/log/btmp
日志的记录方式 分类→级别→
日志的分类:(类别)
daemon 后台进程相关
kern 内核产生的信息
lpr 打印系统产生的
authpriv 安全认证
cron 定时相关
mail 邮件相关
syslog 日志服务本身的
news 新闻系统
local0~7 自定义的日志设备
local0-local7 8个系统保留的类, 供其它的程序使用或者是用户自定义
日志的级别: 轻→重
编码 |
优先级 |
严重性 |
7 |
debug |
信息对开发人员调试应用程序有用,在操作过程中无用 |
6 |
info |
正常的操作信息,可以收集报告,测量吞吐量等 |
5 |
notice |
注意,正常但重要的事件, |
4 |
warning |
警告,提示如果不采取行动。将会发生错误。比如文件系统使用90% |
3 |
err |
错误,阻止某个模块或程序的功能不能正常使用 |
2 |
crit |
关键的错误,已经影响了整个系统或软件不能正常工作的信息 |
1 |
alert |
警报,需要立刻修改的信息 |
0 |
emerg |
紧急,内核崩溃等严重信息 |