• 日志审计与分析实验二日志筛选


    日志审计与分析-日志筛选


    实验目的:使用linux 下grep 命令筛选登录日志

    1、练习使用grep命令

    (1)grep命令的作用?
    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
    (2)grep命令的常用参数都有哪些?
    用法

    grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

    常用参数:

    grep [options]  
    主要参数:  
    [options]主要参数:  
    -c:只输出匹配行的计数。  
    -I:不区分大 小写(只适用于单字符)。  
    -h:查询多文件时不显示文件名。  
    -l:查询多文件时只输出包含匹配字符的文件名。  
    -n:显示匹配行及行号。  
    -s:不显示不存在或无匹配文本的错误信息。  
    -v:显示不包含匹配文本的所有行。
      
    pattern正则表达式主要参数:  
    : 忽略正则表达式中特殊字符的原有含义。  
    ^:匹配正则表达式的开始行。  
    $: 匹配正则表达式的结束行。  
    <:从匹配正则表达 式的行开始。  
    >:到匹配正则表达式的行结束。  
    [ ]:单个字符,如[A]即A符合要求 。  
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。  
    。:所有的单个字符。  
     - :有字符,长度可以为0

    2、使用grep筛选出linux系统的成功和失败登录日志

    主要日志有:
    /var/log/btmp	记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
    /var/log/wtmp	永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
    登录失败记录:/var/log/btmp     //lastb
    最后一次登录:/var/log/lastlog  //lastlog
    登录成功记录: /var/log/wtmp     //last
    目前登录用户信息:/var/run/utmp  //w、who、users
    登录日志记录:/var/log/secure

    登录日志记录:/var/log/secure
    查看/var/log/secure :

    cat /var/log/secure

    在这里插入图片描述
    在这里插入图片描述
    筛选登陆失败的日志:我之前多次输错密码,该日志文件(/var/log/secure)中记录了很多登录失败的日志

    grep -E 'no password|failure|failed|could not' /var/log/secure

    在这里插入图片描述
    筛选出登录成功的日志:

    grep 'opened' /var/log/secure

    在这里插入图片描述

    3、思考:如何定期备份日志?

    备份脚本编写
    打开终端,新建一个目录natalog,在该目录下创建一个备份脚本文件dumplog.sh。

    mkdir natalog
    cd natalog
    touch dumplog.sh

    在这里插入图片描述
    对脚本文件进行编写:

    vim dumplog.sh
    #!/bin/bash
    
    #保存备份个数,备份31天数据
    number=31
    #备份保存路径
    backup_dir=/root/logbackup
    #日期  针对日志的话 我这里是第二天凌晨0点保存前一天的日志文件
    dd=`date -d "yesterday" +%Y-%m-%d`
    #源文件日志路径,我准备对/var/log目录下的secure日志进行备份
    bean_dir=/var/log
    
    #如果文件夹不存在则创建
    if [ ! -d $backup_dir ];
    then
        mkdir -p $backup_dir;
    fi
    
    #简单写法cp -r /var/log/secure  /root/logbackup/backup_log-$dd.log
    # 我的源文件名 secure   这里根据自己的日志文件名称进行修改
    cp -r $bean_dir/secure  $backup_dir/backup_log-$dd.log
    
    #写创建备份日志
    echo "create $backup_dir/backup_log-$dd.log" >> $backup_dir/log.txt
    
    #找出需要删除的备份
    delfile=`ls -l -crt  $backup_dir/*.log | awk '{print $9 }' | head -1`
    
    #判断现在的备份数量是否大于$number
    count=`ls -l -crt  $backup_dir/*.log | awk '{print $9 }' | wc -l`
    
    if [ $count -gt $number ]
    then
      #删除最早生成的备份,只保留number数量的备份
      rm $delfile
      #写删除文件日志
      echo "delete $delfile" >> $backup_dir/log.txt
    fi

    在这里插入图片描述
    对脚本进行授权

    chmod 700 dumplog.sh

    运行脚本

    ./dumplog.sh

    在这里插入图片描述
    查看是否备份成功
    在这里插入图片描述
    将Shell脚本添加到计划任务,由crond 执行
    首先查看crond状态

    service crond status

    在这里插入图片描述
    编辑/etc/crontab这个文件,将shell脚本添加到配置文件中。
    此时是6:20,将定时备份时间设为25minute,测试是否备份成功

    vim /etc/crontab

    在这里插入图片描述
    下面进行测试,先把刚刚的备份删了,然后定时执行备份脚本
    在这里插入图片描述
    6点25分:成功备份
    在这里插入图片描述

    4、查阅资料:什么是linux环境变量,设置环境变量的方法都有哪些?

    Linux为什么要设置环境变量:
    因为Linux执行一些命令时,它会去很多目录去搜索对应的可执行程序,如果可执行程序分散在不同的目录下,当搜索时,这样会非常的耗费时间,所以Linux就约定,当执行一个命令时,就到一个指定的文件中去寻找可执行程序所在的目录,这个指定的文件就是环境变量配置文件
    Linux 系统中的程序和脚本都是通过环境变量来获取系统信息、存储数据和配置信息。在 Linux 中,一般通过环境变量配置操作系统的环境,例如提示符、查找命令的路径和用户家目录等,这些系统默认的环境变量的变量名是固定的,因此只能修改其变量的值。
    环境变量也称全局变量,环境变量可用于定义 Shell 的运行环境,环境变量可以在配置文件中定义与修改,也可以在命令行中设置,但是命令行中的修改操作在终端重启时就会丢失,因此最好在配置文件中修改(用户家目录的“.Bash_profile“文件或者全局配置“/etc/profile”、“/etc/Bashrc”文件或者“/etc/profile.d”文件中定义)。

    ~/.bashrc和/etc/profile的区别
    Linux是一个多用户的操作系统,每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,方法就是修改相应的系统环境变量,即:~/.bashrc。所以 ~/.bashrc里的环境变量是针对当前登录的用户有效,是局部的。

    用户登录或切换(即Login shell 启动)时会有一个专用的运行环境,它就保存在/etc/profile中,所以用户登录和用户的切换时,首先执行 /etc/profile这个文件。/etc/profile文件的作用就是存放系统的环境变量,它对所有用户都有效,是全局的。

    因此,配置~/.bashrc文件,针对当前登录用户有效,配置/etc/profile文件,对所有登录用户有效。

    配置方法:
    Linux export 命令用于设置或显示环境变量。

    export  [-fnp][变量名称]=[变量设置值]

    (1)修改.bashrc文件

    vim ~.bashrc

    在里面加入:

    export PATH="$PATH:/usr/local/arm/bin"

    (2)修改 /etc/profile

    vim /etc/profile

    在里面加入:

    export PATH="$PATH:/usr/local/arm/bin"

    以上两种方法需要重新注销系统才能生效,最后可以通过下面两个命令测试。

    echo $PATH
    arm-linux-gcc -v
  • 相关阅读:
    与您分享
    与您分享
    与您分享
    与您分享
    与您分享
    分享:PythonSIP 4.14.2 发布
    与您分享
    编码
    分享:C++十种方法"Hello World"
    与您分享
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/16501133.html
Copyright © 2020-2023  润新知