Linux 日志管理

什么是 Linux 日志

进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除。

日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。

日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者。

日志在一般哪里

一般常见的日志文件存放在:/var/log 中

常见的日志有哪些

  • btmp:记录登录失败的信息

    # 如果发现 /var/log/btmp 文件很大,说明有人在对你进行暴力破解
    [root@fp-21 log]# lastb
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    12       ssh:notty    10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    
    btmp begins Mon Mar  2 09:29:22 2020
    
  • lastlog:记录最近几次登录事件和最后一次不成功的登录

    # 查看最后登录信息,记录所有用户什么登录过系统,查看该文件,可以判断是否有后门登录用户
    [root@fp-21 log]# lastlog
    Username         Port     From             Latest
    # 用户		     端口	  来自			   最后登录
    root             pts/1    10.0.0.1         Mon Mar  2 09:29:04 +0800 2020
    bin                                        **Never logged in**
    daemon                                     **Never logged in**
    adm                                        **Never logged in**
    lp                                         **Never logged in**
    ……
    
  • messages:从 syslog 记录信息

    # 可查看哪个用户通过哪种方式登录,登录时长
    [root@fp-21 log]#  last
    root     pts/1        10.0.0.1         Mon Mar  2 09:29 - 09:29  (00:00)    
    root     pts/0        10.0.0.1         Mon Mar  2 09:17   still logged in   
    reboot   system boot  3.10.0-957.el7.x Mon Mar  2 00:20 - 09:35  (09:14)    
    root     pts/0        10.0.0.1         Fri Jan 17 22:41 - down   (00:05)    
    reboot   system boot  3.10.0-957.el7.x Fri Jan 17 22:38 - 22:46  (00:07)    
    root     pts/0        10.0.0.1         Fri Dec  6 20:40 - down   (00:05)    
    reboot   system boot  3.10.0-957.el7.x Fri Dec  6 20:39 - 20:46  (00:06)
    ……
    wtmp begins Thu Nov 21 23:40:24 2019
    

日志各个种类

  • auth:pam 产生的日志
  • authpriv:ssh,ftp 等登录信息的验证信息
  • cron:时间任务相关
  • kern:内核
  • lpr:打印
  • mail:邮件
  • mark(syslog)-rsyslog:服务内部的信息,时间标识
  • news:新闻组
  • user:用户程序产生的相关信息
  • uucp:unix to unix copy,unix 主机之间相关的通讯
  • local 1~7:自定义的日志设备

日志的级别

  1. none:完蛋,什么都不记录
  2. emerg:紧急,内核崩溃等严重信息
  3. alert:警报,需要立刻修改的信息
  4. crit:严重,阻止整个系统或者整个软件不能工作的信息
  5. err:错误,阻止某个功能或者模块不能正常工作的信息
  6. warning:警告
  7. notice:注意,最具有重要性的普通条件的信息
  8. info:正常,一般信息的日志,最常用
  9. debug:调试信息,日志信息最多

日志服务信息

操作系统服务名称配置文件
RHEL 5syslog/etc/syslog
RHEL 6rsyslog/etc/rsyslog
RHEL 7rsyslog/etc/rsyslog

日志模块信息

模块名称模块作用
$ModLoad imuxsock支持本地系统日志的模块
$ModLoad imklog支持内核日志的模块
$ModLoad immark支持日志标记
$ModLoad imudp支持 UDP 协议
$ModLoad imtcp支持 TCP 协议
$UDPServerRun 514允许514端口接受使用转发来的日志

日志输入的规则

-info:高于 info 级别的信息全部都记录到某个文件里去

.= 级别:仅记录等于某个级别的日志

.! 级别:除了某个级别之外,记录所有级别信息

. none:排除某个级别

自定义 ssh 服务日志

首先在日志服务配置文件中添加规则

# 添加本地 ssh 日志保存路径
[root@fp-21 ~]# vim /etc/rsyslog.conf
 72 # Save boot messages also to boot.log
 73 local7.*                                                /var/log/boot.log
 74 local0.*                                                /var/log/sshd.log
 75

修改 ssh 服务配置文件

# 注释掉默认路径
[root@fp-21 ~]# cat /var/log/sshd.log
 30 # Logging
 31 #SyslogFacility AUTH
 32 #SyslogFacility AUTHPRIV
 33 #LogLevel INFO
 
# 添加新路径
 34 SyslogFacility /var/log/sshd.log

重新启动服务

[root@fp-21 ~]# systemctl restart rsyslog.service 
[root@fp-21 ~]# systemctl restart sshd.service

查看文件

[root@fp-21 log]# cat /var/log/sshd.log
#    时间 	     主机        服务(进程ID、监听的相关信息)
Mar  2 10:18:01 fp-21 sshd[9780]: Server listening on 0.0.0.0 port 22.
Mar  2 10:18:01 fp-21 sshd[9780]: Server listening on :: port 22.

日志切割

在 Linux 下的日志会定期进行滚动增加,我们可以在线对正在进行回滚的日志进行指定大小的切割 (动态),如果这个日志是静态的。比如没有应用向里面写内容。那么我们也可以用 split 工具进行切割:其中 Logrotate 支持按时间和大小来自动切分以防止日志内容将包含 wafliog 的文件系统填满。

日志切割原理:

当日志达到某个特定的大小,我们将日志分类,之前的日志保留一个备份,再产生的日志创建一个同名的文件保存新的日志。

修改配置文件添加规则

[root@fp-21 ~]# vim /etc/logrotate.conf
 35 /var/log/btmp {	# 指定的要切割的文件
 36     missingok	# 文件丢失不报错
 37     monthly	# 每月切割一次
 38     create 0600 root utmp	# 权限、属主、属组
 39     rotate 2	# 切割保留份数
 40 }

重新加载文件,强制切割

[root@fp-21 ~]# cd /etc/cron.daily/
[root@fp-21 cron.daily]# logrotate -vf /etc/logrotate.conf 
……
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
fscreate context set to system_u:object_r:var_log_t:s0
renaming /var/log/sshd.log to /var/log/sshd.log-20200302
creating new /var/log/sshd.log mode = 0600 uid = 0 gid = 22
set default create context

查看是否切割成功

[root@fp-21 ~]# ll /var/log/ssh*
-rw-------. 1 root utmp   0 Mar  2 11:19 /var/log/sshd.log
-rw-------. 1 root root 341 Mar  2 10:34 /var/log/sshd.log-20200302

切割成功,源文件大小为0

总结

只有注入思想的博客才是好的博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值