在linux系统上面,系统可以记录从开机到当前系统上面何时发生了那些事情,并将其分类,分级别写到特定的日志文件当中,如系统自身产生的问题,用户登录信息,网络数据信息等等。我们可以根据这些日志信息来解决系统方面的错误,网络服务问题等等。日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。 日志主要的功能有:审计和监测。它还可以实时的监测系统状态,监测和追踪侵入者等等。
日志存在的位置/var/log即ls /var/log
常用的日志文件如下:
btmp 记录denglu失败的信息
lastlog 记录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
utmp 记录当前登录的每个用户
wtmp 系统登录的情况:登入登出
登录信息的查看
我们也可以通过last 命令查看登录日志内容
哪个用户在哪个时间通过哪种方式登录系统的情况
1./var/log/lastlog #最后登录信息
2.lastlog #记录所有的用户什么时候登录过系统
3./var/log/btmp # 用户登录系统的错误信息
lastb 查看
4./var/log/wtmp # 用户登录系统的成功信息
5.# 如果说你发现你的btmp文件变得很大,说明有很大的可能是有人在暴力破解你的主机
日志的记录方式:
消息类型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7.
错误级别:(8级)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic
动作域:file,user,console,@remote_ip
举如上的/etc/syslog.conf文件三个例子:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
表示info级别的任何消息都发送到/var/log/messages日志文件,但邮件系统、验证系统
和计划任务的错误级别信息就除外,不发送(none表示禁止)
cron.* /var/log/cron 表示所有级别的cron信息发到/var/log/cron文件
*.emerg * 表示emerg错误级别(危险状态)的所有消息类型发给所有用户
日志输入的规则
.info 高于info级别的信息全部记录到某个文件
=级别 仅记录等于某个级别的日志
例:.=info 只记录info级别的日志
! 级别 除了某个级别意外,记录所有的级别信息
例.!err 除了err外记录所有
none 指的是排除某个类别
自定义ssh服务的日志:
#编辑vim /etc/rsyslog.conf
定义sshd日志的级别 vim /etc/ssh/sshd_config,重启服务,测试结果
systemctl restart rsyslog
systemctl restart sshd
linux日志的切割存储(回滚原理)
随着日志文件内容的日益增加,对于后期的处理带来非常的不便,因此就需要一种机制能够对日志进行处理,rsyslog就提供了一个这杨一个功能组件logrotate
vim /etc/logrotate.conf
# rotate log files weekly
weekly # 每周执行回滚
# keep 4 weeks worth of backlogs
rotate 4 #保留4个副本
# create new (empty) log files after rotating old ones
create #创建新的文件存储数据
# use date as a suffix of the rotated file
dateext #使用日期为后缀的回滚文件 #可以去/var/log目录下看看
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp — we’ll rotate them here
/var/log/wtmp { #指定的日志文件
monthly #每月轮转一次
create 0664 root utmp
minsize 1M #日志文件必须大于1M才会去轮换(回滚)
rotate 1 #保存一个轮换日志
}
/var/log/btmp {
missingok # 如果日志文件不存在,继续处理下一个文件而不产生报错信息。
monthly
create 0600 root utmp #设置utmp 这个日志文件的权限,属主,属组
rotate 1
}
我们跟着上面个例子继续据ssh日志来完成日志的切割存储
准备两台装置server client
首先服务端
重启及查看端口
m在客户端client
重启服务及测试
tail -f /var/log/message 动态查看增加内容:
原创文章,作者:gd1479,如若转载,请注明出处:http://www.178linux.com/84718