CentOS日志的简单介绍
在CentOS7中,系统的日志消息由两个服务负责处理:system-journald和rsyslog。
(1).常见的日志及作用
/var/log目录里存放了一些特定于系统和服务的日志文件,由rsyslog维护。下面介绍一些改目录下的常用日志文件及其总用
日志文件 | 作用 |
/var/log/message | 大多数系统日志消息记录都在此处。但不包括与身份验证,电子邮件处理相关的定期作业任务等 |
/var/log/secure | 安全和身份验证相关的信息以及登录失败的日志文件。主要ssh远程连接产生的日志。 |
/var/log/maillog | 与邮件相关的信息日志文件 |
/var/log/cron | 与定期执行任务相关的日志文件 |
/var/log/boot.log | 与系统启动相关的信息记录 |
/var/log/dmesg | 与系统启动相关的信息记录 |
/var/log/wtmp | 是一个二进制文件,记录每个用户的登录次数和持续时间等信息,可以用last命令查看其中内容 |
/var/log/btmp | 与/var/log/wtmp类似,但记录的是错误登录系统的日志,使用lastb命令查看其中内容。如果此文件大于1M,就需要注意是否有人在暴力破解 |
1)实例1:查看哪个IP地址经常暴力破解系统用户密码
首先,我们先用远程连接软件SCRT连接并输错密码,再使用ssh命令尝试连接并输错三次密码,模拟暴力破解。
[root@xuexi ~]# ssh root@192.168.1.6
The authenticity of host '192.168.1.6 (192.168.1.6)' can't be established.
ECDSA key fingerprint is SHA256:r8TKDXZGzdWkjGnXtfb/YGwCTYViIh9PvJxjrkA4hXU.
ECDSA key fingerprint is MD5:99:ea:1a:2c:c3:81:de:6c:95:b2:86:c1:d0:7e:60:96.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.6' (ECDSA) to the list of known hosts.
root@192.168.1.6's password:
Permission denied, please try again.
root@192.168.1.6's password:
Permission denied, please try again.
root@192.168.1.6's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
之后,我们就可以使用vim查看/var/log/secure文件了,此处演示就直接使用tail查看最后几行。
[root@xuexi ~]# tail /var/log/secure
Apr 14 21:43:32 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Apr 14 21:43:35 xuexi sshd[65782]: Failed password for root from 192.168.1.6 port 42396 ssh2
Apr 14 21:43:38 xuexi unix_chkpwd[65785]: password check failed for user (root)
Apr 14 21:43:38 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Apr 14 21:43:39 xuexi sshd[65782]: Failed password for root from 192.168.1.6 port 42396 ssh2
Apr 14 21:43:43 xuexi unix_chkpwd[65786]: password check failed for user (root)
Apr 14 21:43:43 xuexi sshd[65782]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Apr 14 21:43:45 xuexi sshd[65782]: Failed password for root from 192.168.1.6 port 42396 ssh2
Apr 14 21:43:45 xuexi sshd[65782]: Connection closed by 192.168.1.6 port 42396 [preauth]
Apr 14 21:43:45 xuexi sshd[65782]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=xuexi user=root
这里可以注意下第二行、第五行、第八行。这三行都是时间+主机名+服务+错误信息的格式。通过这个格式(或者说是规律)可以过滤出我们想要的信息。
[root@xuexi ~]# grep Failed /var/log/secure | awk '{print $11}' | uniq
192.168.1.4
192.168.1.6
[root@xuexi ~]# grep Failed /var/log/secure | awk '{print $11}' | uniq -c
2 192.168.1.4
3 192.168.1.6
说明:awk '{print $11}',以空格作为分隔符,打印第11列的数据。uniq命令用于报告或忽略文件中的重复行,-c选项表示显示该行重复出现的次数。
2)使用last命令查看/var/log/wtmp的文件内容
可以直接使用last命令查看
[root@xuexi ~]# last
xf pts/0 :0 Sun Apr 14 21:33 still logged in
xf :0 :0 Sun Apr 14 13:56 still logged in
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:55 - 23:11 (09:15)
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:53 - 23:11 (09:17)
xf :0 :0 Sun Apr 14 13:49 - crash (00:03)
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:47 - 23:11 (09:23)
xf pts/0 :0 Tue Apr 9 21:47 - 22:33 (00:46)
xf pts/0 :0 Tue Apr 9 21:21 - 21:45 (00:23)
xf :0 :0 Tue Apr 9 21:21 - 22:33 (01:12)
reboot system boot 3.10.0-957.10.1. Tue Apr 9 21:19 - 22:33 (01:14)
xf :0 :0 Fri Apr 5 22:27 - 22:29 (00:01)
reboot system boot 3.10.0-957.10.1. Fri Apr 5 22:26 - 22:29 (00:02)
root pts/0 :0 Fri Apr 5 22:03 - 22:25 (00:22)
root :0 :0 Fri Apr 5 22:02 - down (00:23)
reboot system boot 3.10.0-862.el7.x Fri Apr 5 22:01 - 22:26 (00:24)
reboot system boot 3.10.0-862.el7.x Fri Apr 5 22:00 - 22:26 (00:25)
root :0 :0 Fri Apr 5 21:56 - 22:00 (00:03)
root tty2 Tue Dec 11 21:48 - 21:48 (00:00)
xf pts/0 :0 Tue Dec 11 21:42 - 21:55 (115+00:13)
xf :0 :0 Tue Dec 11 21:41 - 21:56 (115+00:14)
reboot system boot 3.10.0-862.el7.x Tue Dec 11 21:18 - 22:00 (115+00:41)
xf pts/0 :0 Tue Dec 11 21:04 - 21:18 (00:14)
xf :0 :0 Tue Dec 11 21:00 - down (00:18)
reboot system boot 3.10.0-862.el7.x Tue Dec 11 20:50 - 21:18 (00:27)
xf :0 :0 Mon Dec 10 22:06 - 22:07 (00:00)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 22:05 - 21:18 (23:13)
xf pts/0 :0 Mon Dec 10 21:34 - 22:04 (00:29)
xf :0 :0 Mon Dec 10 21:34 - crash (00:30)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 21:33 - 21:18 (23:44)
xf pts/0 :0 Mon Dec 10 20:59 - 21:33 (00:34)
xf pts/0 :0 Mon Dec 10 20:55 - 20:59 (00:03)
xf :0 :0 Mon Dec 10 20:54 - 21:33 (00:38)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 20:52 - 21:33 (00:40)
xf :0 :0 Sun Dec 9 15:54 - 16:09 (00:15)
reboot system boot 3.10.0-862.el7.x Sun Dec 9 15:49 - 16:09 (00:20) wtmp begins Sun Dec 9 15:49:03 2018
也可使用last -f /var/log/wtmp命令查看
[root@xuexi ~]# last -f /var/log/wtmp
xf pts/0 :0 Sun Apr 14 21:33 still logged in
xf :0 :0 Sun Apr 14 13:56 still logged in
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:55 - 23:11 (09:16)
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:53 - 23:11 (09:18)
xf :0 :0 Sun Apr 14 13:49 - crash (00:03)
reboot system boot 3.10.0-957.10.1. Sun Apr 14 13:47 - 23:11 (09:24)
xf pts/0 :0 Tue Apr 9 21:47 - 22:33 (00:46)
xf pts/0 :0 Tue Apr 9 21:21 - 21:45 (00:23)
xf :0 :0 Tue Apr 9 21:21 - 22:33 (01:12)
reboot system boot 3.10.0-957.10.1. Tue Apr 9 21:19 - 22:33 (01:14)
xf :0 :0 Fri Apr 5 22:27 - 22:29 (00:01)
reboot system boot 3.10.0-957.10.1. Fri Apr 5 22:26 - 22:29 (00:02)
root pts/0 :0 Fri Apr 5 22:03 - 22:25 (00:22)
root :0 :0 Fri Apr 5 22:02 - down (00:23)
reboot system boot 3.10.0-862.el7.x Fri Apr 5 22:01 - 22:26 (00:24)
reboot system boot 3.10.0-862.el7.x Fri Apr 5 22:00 - 22:26 (00:25)
root :0 :0 Fri Apr 5 21:56 - 22:00 (00:03)
root tty2 Tue Dec 11 21:48 - 21:48 (00:00)
xf pts/0 :0 Tue Dec 11 21:42 - 21:55 (115+00:13)
xf :0 :0 Tue Dec 11 21:41 - 21:56 (115+00:14)
reboot system boot 3.10.0-862.el7.x Tue Dec 11 21:18 - 22:00 (115+00:41)
xf pts/0 :0 Tue Dec 11 21:04 - 21:18 (00:14)
xf :0 :0 Tue Dec 11 21:00 - down (00:18)
reboot system boot 3.10.0-862.el7.x Tue Dec 11 20:50 - 21:18 (00:27)
xf :0 :0 Mon Dec 10 22:06 - 22:07 (00:00)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 22:05 - 21:18 (23:13)
xf pts/0 :0 Mon Dec 10 21:34 - 22:04 (00:29)
xf :0 :0 Mon Dec 10 21:34 - crash (00:30)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 21:33 - 21:18 (23:44)
xf pts/0 :0 Mon Dec 10 20:59 - 21:33 (00:34)
xf pts/0 :0 Mon Dec 10 20:55 - 20:59 (00:03)
xf :0 :0 Mon Dec 10 20:54 - 21:33 (00:38)
reboot system boot 3.10.0-862.el7.x Mon Dec 10 20:52 - 21:33 (00:40)
xf :0 :0 Sun Dec 9 15:54 - 16:09 (00:15)
reboot system boot 3.10.0-862.el7.x Sun Dec 9 15:49 - 16:09 (00:20) wtmp begins Sun Dec 9 15:49:03 2018
3)使用lastb查看/var/log/btmp文件
[root@xuexi ~]# lastb
root ssh:notty xuexi Sun Apr 14 21:43 - 21:43 (00:00)
root ssh:notty xuexi Sun Apr 14 21:43 - 21:43 (00:00)
root ssh:notty xuexi Sun Apr 14 21:43 - 21:43 (00:00)
root ssh:notty pc Sun Apr 14 21:41 - 21:41 (00:00)
root ssh:notty pc Sun Apr 14 21:41 - 21:41 (00:00) btmp begins Sun Apr 14 21:41:08 2019
[root@xuexi ~]# lastb | uniq -c
3 root ssh:notty xuexi Sun Apr 14 21:43 - 21:43 (00:00)
2 root ssh:notty pc Sun Apr 14 21:41 - 21:41 (00:00)
1
1 btmp begins Sun Apr 14 21:41:08 2019
发现问题后,使用命令将其IP地址加入规则,阻止其继续暴力破解。
CentOS6使用如下命令,临时添加到防火墙规则中。如果想永久添加,需要在之后追加一条命令service iptables save
iptables -A INPUT -i eth0 -s 192.168.128.137 -j DROP //-A INPUT是追加到INPUT链中,-j DROP是抛弃所有包
而CentOS7使用如下命令:
[root@xuexi ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.128.137" drop'
success
[root@xuexi ~]# firewall-cmd --reload
success
4)清空/var/log/btmp文件
方法一
[root@xuexi ~]# > /var/log/btmp
方法二
[root@xuexi ~]# rm -rf /var/log/btmp
[root@xuexi ~]# touch /var/log/btmp
[root@xuexi ~]# systemctl restart rsyslog.service //必须重启
(2).rsyslog日志服务
1)日志的分类和级别
分类:
分类 | 说明 |
daemon | 后台进程相关的信息 |
kern | 内核产生的信息 |
lpr | 打印系统产生的信息 |
authpriv | 安全认证信息 |
cron | 定时计划任务相关的信息 |
邮件相关的信息 | |
syslog | 日志服务本身的信息 |
news | 新闻系统(过时) |
local0~local7 | 8个系统保留的类,供其他程序使用或用户自定义 |
级别:(编码越小,级别越高)
编码 | 优先级 | 严重性 |
7 | debug | 信息对开发人员调试应用程序有用,在操作过程中没用 |
6 | info | 正常的操作信息,可以收集报告,测量吞吐量等 |
5 | notice | 注意,正常但重要的事件 |
4 | warning | 警告,如果不采取措施,将会发生错误,例如文件系统已使用90% |
3 | err | 错误,阻止某个模块或程序的功能不能正常使用 |
2 | crit | 关键错误,已经影响到整个系统或软件不能正常工作 |
1 | alert | 警报,需要立即修改 |
0 | emerg | 紧急,内核崩溃等严重信息 |
2)rsyslog日志服务
在rhel5服务名叫syslog,配置文件为/etc/syslog.conf。到了rhel6/rhel7时,服务名叫rsyslog,配置文件是/etc/rsyslog.conf。
我们查看一下/etc/syslog.conf配置文件
[root@xuexi ~]# grep -vE "^$|^#" /etc/rsyslog.conf
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
这里涉及一个最重要的日志输入规则:分类.级别 存放的绝对路径。其中级别还有单独规则,如果.级别则是指记录高于等于某个级别的日志(严重性高于等于,编码低于等于);如果.=级别则是指记录等于某个级别的日志;如果.!级别则是指除某个级别外全部记录;如果.none则是指排除某个类别。
现在我们再回头看上面的配置信息:
//所有高于等于info级别的信息,除了邮件,除了安全认证,除了定时计划任务,都存放到/var/log/message
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
注意:-/var/log/maillog这里的减号是由于以前的邮件比较多,先将数据存储到内存中,达到一定大小再全部写入硬盘,减少I/O的消耗。如果关机不当,数据会消失。
除了上面的配置信息外,还需要注意两个配置信息,如下:
#$UDPServerRun 514 //去掉注释就是允许514端口接收使用UDP协议转发过来的日志
#$InputTCPServerRun 514 //去掉注释就只允许514端口接收使用TCP协议转发过来的日志
3)自定义日志类型和存储位置
这里需要用到local0~local7的自定义分类。我们以sshd为例。
首先我们需要使用vim打开sshd服务的配置文件,进行修改配置
[root@xuexi ~]# vim /etc/ssh/sshd_config
然后找到如下位置,将其更改为我们需要的分类local0
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
修改后,如下所示
#SyslogFacility AUTH
SyslogFacility local0
#SyslogFacility AUTHPRIV
#LogLevel INFO
保存并退出。
接着我们需要使用vim打开rsyslog服务的配置文件,进行修改配置
[root@xuexi ~]# vim /etc/rsyslog.conf
在最后添加一行
local0.* /var/log/sshd.log
保存并退出。
最后重启sshd和rsyslog两个服务
[root@xuexi ~]# systemctl restart sshd
[root@xuexi ~]# systemctl restart rsyslog.service
注意:如果SELinux开着,请手动创建/var/log/sshd.log文件。
CentOS日志的简单介绍的更多相关文章
- 简单介绍一下在CentOS上安装Docker。
简单介绍一下在CentOS上安装Docker. 前置条件: 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值大于3.10即可. $ uname -r 2.使用 sudo 或 r ...
- TensorFlow简单介绍和在centos上的安装
##tensorflow简单介绍: TensorFlow™ is an open source software library for numerical computation using dat ...
- Docker的简单介绍及使用
Docker介绍 Docker是Docker.Inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源. Doc ...
- Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)
目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...
- [转]Oracle数据库ASH和AWR的简单介绍
在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容. 1.10g之前 用户的连接将产生会话,当 ...
- Linux 内核开发—内核简单介绍
内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...
- Filter简单介绍
一.简单介绍 Filter也称为过滤器,WEB开发者通过Filter技术.对webserver管理的全部web资源:比如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截.从而实 ...
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- JSF简单介绍
JSF简单介绍 一. 什么是 JSF: JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架.它提供了一种以组件为中心来开发 Java Web 用户界 ...
随机推荐
- 简单理解 NP, P, NP-complete和NP-Hard
P是一类可以通过确定性图灵机(以下简称 图灵机)在多项式时间(Polynomial time)内解决的问题集合. NP是一类可以通过非确定性图灵机( Non-deterministic Turing ...
- 基本控件文档-UISegment属性
CHENYILONG Blog 基本控件文档-UISegment属性 Fullscreen UISegment属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪 ...
- [HAOI2006]旅行 题解(kruskal)
[HAOI2006]旅行 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N个景点(编号为1,2,3,-,N),这些景点被M条道路连接着,所有道路都 ...
- java.lang.IllegalArgumentException: class com.beisheng.maerte.mode.MyCouponVO declares multiple JSON fields named count
原因是:子类和父类有相同的字段属性.解决办法:(1)将父类中的该字段去掉(不要),或者在需要打印的字段上加上注解@Expose (2):由于我报错的类都是在jar包里面,所以第一种方法不好使.只好采用 ...
- JavaScript 金额、数字、千分位、千分位、保留几位小数、舍入舍去、支持负数
JavaScript 金额.数字 千分位格式化.保留指定位数小数.支持四舍五入.进一法.去尾法 字段说明: number:需要处理的数字: decimals:保留几位小数,默认两位,可不传: dec_ ...
- nand flash 的oob 及坏块管理
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...
- HDU 6203 2017沈阳网络赛 LCA,DFS+树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6203 题意:n+1 个点 n 条边的树(点标号 0 ~ n),有若干个点无法通行,导致 p 组 U V ...
- vue引入elementUI 报错
在main.js里面引入import 'element-ui/lib/theme-default/index.css'中报错,无法启动项目,这是把package.json里面的webpack改成 1 ...
- js点击页面其他地方如何隐藏div元素菜单
web页面常用的一个需求,写下拉菜单是我们往往不是用select_option,而是自定义一个元素列出选项来满足需求,当我们点击按钮出现菜单, 点击按钮或菜单以外页面空白地方隐藏该菜单,这里提供一种简 ...
- NVME SSD vs SATA SSD(转)
NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...