在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 定时计划任务相关的信息
mail 邮件相关的信息
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日志的简单介绍的更多相关文章

  1. 简单介绍一下在CentOS上安装Docker。

    简单介绍一下在CentOS上安装Docker. 前置条件: 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值大于3.10即可. $ uname -r 2.使用 sudo 或 r ...

  2. TensorFlow简单介绍和在centos上的安装

    ##tensorflow简单介绍: TensorFlow™ is an open source software library for numerical computation using dat ...

  3. Docker的简单介绍及使用

    Docker介绍 Docker是Docker.Inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源. Doc ...

  4. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  5. [转]Oracle数据库ASH和AWR的简单介绍

    在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容.       1.10g之前 用户的连接将产生会话,当 ...

  6. Linux 内核开发—内核简单介绍

    内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...

  7. Filter简单介绍

    一.简单介绍 Filter也称为过滤器,WEB开发者通过Filter技术.对webserver管理的全部web资源:比如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截.从而实 ...

  8. Docker简单介绍

    Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...

  9. JSF简单介绍

    JSF简单介绍 一. 什么是 JSF: JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架.它提供了一种以组件为中心来开发 Java Web 用户界 ...

随机推荐

  1. javascript 高度相关

    //scrollTop; var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); ...

  2. SHA-1(安全哈希算法实现)

    如题,不知道sha-1的自己百度吧. #include <iostream> #include <vector> //定义vector数组 #include <strin ...

  3. 给Ubuntu替换阿里的源

    1. 阿里巴巴镜像源站点 有所有linux的源的镜像加速. 点击查看介绍 2. 具体配置方法在这里 copy: ubuntu 18.04(bionic) 配置如下 创建自己的配置文件,比如创建文件 / ...

  4. 简单理解 NP, P, NP-complete和NP-Hard

    P是一类可以通过确定性图灵机(以下简称 图灵机)在多项式时间(Polynomial time)内解决的问题集合. NP是一类可以通过非确定性图灵机( Non-deterministic Turing ...

  5. CodeForces 816C 思维

    On the way to school, Karen became fixated on the puzzle game on her phone! The game is played as fo ...

  6. canvas画布,写字板

    <!doctype html><html><head> <meta charset="utf-8"> <meta http-e ...

  7. POJ 1986 Distance Queries (Tarjan算法求最近公共祖先)

    题目链接 Description Farmer John's cows refused to run in his marathon since he chose a path much too lo ...

  8. 关于maven环境下使用pom.xml引入包名.lastUpdate包的解决办法

    今天在导入POI-OOXML的时候总是缺失xmlbeans包,而且刷新pom文件总是生成一个lastupdate文件,大小为1KB,终于找到解决办法. 1.首先删除想要的jar包所在文件夹内的所有 . ...

  9. Nginx/LVS/HAProxy负载均衡软件的优缺点详解【转】

    转自 (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均 ...

  10. 洛谷P1455搭配购买

    传送门啦 这是强连通分量与背包的例题 需要注意的就是价值和价格两个数组不要打反了.. 另外 这是双向图!!! #include <iostream> #include <cstdio ...