日志管理
在centos7中,系统日志消息由两个服务负责处理:systemd-journald和rsyslog
常见的日志文件 | 作用 |
---|---|
/var/log/message | 大多数系统日志消息 |
/var/log/secure | 安全和身份认证的日志消息 |
/var/log/maillog | 邮件服务器的消息 |
/var/log/cron | 系统执行定期任务 |
/var/log/boot.log | 系统启动 |
/var/log/dmesg | 系统启动 |
日志例子
查看哪个IP地址经常暴力破解系统用户密码
1首先,我用另外一个机器来模拟客户端来登录192.168.1.63,这台机器,专门3次输入错误密码
2在192.168.1.63这台机器上,我来进行查看
这个查看了总共登录这台机器IP地址失败的个数,
查看本台机器上面登录成功的信息
/var/log/wtmp也是一个二进制文件,记录每个用户的登录次数和持续时间等信息。
可以用last命令输出wtmp中内容: last 显示到目前为止,成功登录系统的记录
通过以下命令,我们可以知道,last命令默认读取的是/var/log/wtmp文件中的信息
使用 /var/log/btmp文件查看暴力破解系统的用户
/var/log/btmp文件是记录错误登录系统的日志。如果发现/var/log/btmp日志文件比较大,大于1M,就算大了,就说明很多人在暴力破解ssh服务,此日志需要使用lastb程序查看
我们可以发现lastb默认取得的文件是/var/log/btmp
日志的记录方式:分类+级别
分类 | 说明 |
---|---|
daemon | 后台进程相关 |
kern | 内核 |
lpr | 打印系统 |
authpriv | 安全认证 |
cron | 定时相关 |
邮件 | |
syslog | 日志服务 |
local0——local7 | 自定义的日志设备 |
news | 新闻 |
日志输入的规则
. info 大于等于info级别的信息全部记录到某个文件
.=级别 仅记录等于某个级别的日志
例:.=info 只记录info级别的日志
.! 级别 除了某个级别意外,记录所有的级别信息
例.!err 除了err外记录所有
.none 指的是排除某个类别 例: mail.none 所有mail类别的日志都不记录
rsyslog服务介绍
主要配置文件:/etc/rsyslog.conf
配置文件内容介绍
#$UDPServerRun 514 #允许514端口接收使用UDP协议转发过来的日志
#$InputTCPServerRun 514 ##允许514端口接收使用TCP协议转发过来的日志
含义:就是将关于不同级别的日志消息存储到对应的位置上
authpriv.* 认证的信息存放 /var/log/secure
mail.* 邮件相关的信息 存放 -/var/log/maillog
cron.* 计划任务相关的信息 存放 /var/log/cron
local7.* 开机时显示的信息存放–> /var/log/boot.log
“- ”号: 邮件的信息比较多,现将数据存储到内存,达到一定大小,全部写到硬盘.有利于减少I/O进程的开销,数据存储在内存,如果关机不当数据消失
自定义ssh服务的日志类型和存储位置
1首先,修改rsyslog.conf配置文件,将local0类别的日志保存到/var/log/sshd.log文件中
修改如下:
往74行增加一行内容:
local0. /var/log/sshd.log*
2修改sshd服务对应的配置文件,将sshd服务的日志类别定义为local0。
将32行:SyslogFacility AUTHPRIV
改为: SyslogFacility local0
重启2个服务,分别为sshd和rsyslog服务,然后查看/var/log/sshd.log