zoukankan      html  css  js  c++  java
  • Linux的用户行为审计

    Linux用户行为审计

    方式1

    很多时候,一台服务器会有多个用户需要去登陆维护,或者执行各自的操作,这样一来各个用户的行为审计就显得格外重要了!

    无论何时,都要对用户的所有行为做到记录和可追溯,这在解决一些疑难杂症的时候很有帮助,因为你不知道什么时候会有些牛鬼蛇神对机器做些匪夷所思的操作!

    其实Linux系统他有自己的审计功能,不信你看:

    [root@VM-75-60 audit]# pwd
    /var/log/audit
    [root@VM-75-60 audit]#
    [root@VM-75-60 audit]# ll
    total 27864
    -rw------- 1 root root 3329179 Jul 25 21:50 audit.log
    -r-------- 1 root root 6291591 Jul  8 04:01 audit.log.1
    -r-------- 1 root root 6291652 Jun  4 14:50 audit.log.2
    -r-------- 1 root root 6291598 May  2 02:00 audit.log.3
    -r-------- 1 root root 6291466 Mar 29 02:40 audit.log.4
    但这里面只有crond相关的东西,好像不太够,而且我也没找到去设置他的方法。
     

    看看自定义的方式: 

    编辑/etc/profile文件,在末未添加:
     
    if [ $UID -ge 0 ]; then
            exec /usr/bin/script -t 2>/var/log/samba/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/samba/$USER-$UID-`date +%Y%m%d%H%M`.log
    fi
     
    此时我们去/var/log/ 创建test目录,并修改777权限。
    为什么要用samba目录呢?
    因为通常人们都把samba看作是共享目录,如果有黑客侵入,在做足迹清理的时候,希望被忽略~起到掩人耳目的作用~真他娘的是个天才
    目录创建好以后,就能使配置生效了,执行指令:
    [root@VM-75-60 audit]# source /etc/profile
     
    执行完以后,我们去看目录的变化:
    [root@VM_0_13_centos samba]# ll
    total 116
    -rw-rw-r-- 1 fmj  fmj   1790 Jun 24 18:05 fmj-500-201906241803.date
    -rw-rw-r-- 1 fmj  fmj  11360 Jun 24 18:05 fmj-500-201906241803.log
    -rw-rw-r-- 1 fmj  fmj    127 Jun 24 18:24 fmj-500-201906241824.date
    -rw-rw-r-- 1 fmj  fmj    203 Jun 24 18:24 fmj-500-201906241824.log
    -rw-rw-r-- 1 fmj  fmj     12 Jun 24 18:27 fmj-500-201906241827.date
    -rw-rw-r-- 1 fmj  fmj     74 Jun 24 18:27 fmj-500-201906241827.log
    -rw-r--r-- 1 root root  6307 Jun 24 18:32 root-0-201906241800.date
    -rw-r--r-- 1 root root 63039 Jun 24 18:32 root-0-201906241800.log
    -rw-r--r-- 1 root root    12 Jun 24 18:24 root-0-201906241824.date
    -rw-r--r-- 1 root root    75 Jun 24 18:24 root-0-201906241824.log
     
    我们从尝试打开:
    [root@VM_0_13_centos samba]# vim fmj-500-201906241803.log
    Script started on Mon 24 Jun 2019 06:03:32 PM JST
    [fmj@VM_0_13_centos ~]$ ^M
    [fmj@VM_0_13_centos ~]$ ll^M
    total 0^M
    [fmj@VM_0_13_centos ~]$ a^H^[[Kdate^M
    Mon Jun 24 18:03:35 JST 2019^M
    [fmj@VM_0_13_centos ~]$ ^M
    [fmj@VM_0_13_centos ~]$ date -s ''^H2'^H0'^H1'^H9'^H-'^H6'^H-'^H2'^H4'^H '^H1'^H8'^H:'^H0'^H0'^H:'^H0'^H0'^H^[[C^M
    date: cannot set date: Operation not permitted^M
    Mon Jun 24 18:00:00 JST 2019^M
    [fmj@VM_0_13_centos ~]$ date^M
    Mon Jun 24 18:03:53 JST 2019^M
    [fmj@VM_0_13_centos ~]$ ^M
    [fmj@VM_0_13_centos ~]$ date^M
    Mon Jun 24 18:03:54 JST 2019^M
    [fmj@VM_0_13_centos ~]$ ll^M
     
    你会发现这都是一些没有规则的字段,那么该如何使用这些文件追溯用户行为呢?
     
    script重演
    scriptreplay指令:
    [root@VM_0_13_centos samba]# scriptreplay fmj-500-201906241803.date fmj-500-201906241803.log   
    [fmj@VM_0_13_centos ~]$                                        #从这里开始,都不是我执行的了,是在重演fmj用户的操作
    [fmj@VM_0_13_centos ~]$ ll
    total 0
    [fmj@VM_0_13_centos ~]$ date
    Mon Jun 24 18:03:35 JST 2019
    [fmj@VM_0_13_centos ~]$
    [fmj@VM_0_13_centos ~]$ date -s '2019-6-24 18:00:00'
    date: cannot set date: Operation not permitted
    Mon Jun 24 18:00:00 JST 2019
    [fmj@VM_0_13_centos ~]$ date
    Mon Jun 24 18:03:53 JST 2019
    [fmj@VM_0_13_centos ~]$
    [fmj@VM_0_13_centos ~]$ date
    Mon Jun 24 18:03:54 JST 2019
    [fmj@VM_0_13_centos ~]$
     
    直到这里,就像视频回放一样!还不错 !
    看起来还是很方便的,不过这里发现samba目录下的文件增长很快哦,所以还要注意下磁盘的大小,不能被写满了~
     
    方式2
    上面那种方式生成的文件比较大,还有种进记录操作日志的方法:
    编辑/etc/profile文件:
    添加如下内容:
    USER=`whoami`
    USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ]; then
    USER_IP=`hostname`
    fi
    if [ ! -d /var/log/history ]; then
    mkdir /var/log/history
    chmod 777 /var/log/history
    fi
    if [ ! -d /var/log/history/${LOGNAME} ]; then
    mkdir /var/log/history/${LOGNAME}
    chmod 300 /var/log/history/${LOGNAME}
    fi
    export HISTSIZE=4096
    DT=`date +"%Y%m%d_%H:%M:%S"`
    export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
    chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
     
    保存退出:
    source /etc/profile
    使配置生效!
    [root@VM_70_21_centos history]# pwd
    /var/log/history
    [root@VM_70_21_centos history]# ll
    total 8
    d-wx------ 2 bdbuser bdbuser 4096 Sep  5 17:48 bdbuser
    d-wx------ 2 root    root    4096 Sep  5 17:46 root
     
    此时/var/log下会创建history目录,下面会有根据登录用户名区分的目录:
    [root@VM_70_21_centos root]# ll
    total 4
    -rw------- 1 root root 1150 Sep  5 18:02 root@180.168.144.210_20190905_17:46:14
    [root@VM_70_21_centos root]# pwd
    /var/log/history/root
    登录用户目录下,是记录对应登陆时间和操作指令的日志文件!
    这里面仅仅包含操作指令,因此数据产出一般不会太大!
     
    无论哪种方式都要密切关注磁盘的空间变化,同时应该设置crontab去定时清理日志!
     
    以上,共勉!
     
  • 相关阅读:
    scrapy相关信息
    BeautifulSoup常见使用
    requests常用模块以及爬取github个人项目
    django rest framework 与前端跨域问题解决
    nginx配置正向代理与反向代理
    django+nginx+uwsgi+https
    linux基本命令
    python基本算法
    centos7配置ftp服务器
    nginx1.12配置
  • 原文地址:https://www.cnblogs.com/storyawine/p/13363114.html
Copyright © 2011-2022 走看看