zoukankan      html  css  js  c++  java
  • Linux安全审计-基础篇

    安全审计这块我能想到的有两种方案可以解决,一种是在Linux中配置实现,一种是使用Python开发堡垒机实现,我先实现了第一种比较简单的:后面会开发堡垒机:
     
    一、首先我们需要在/etc/profile中配置
    #获取本地IP地址以及原始登录用户
    USER_IP=`ifconfig eth3 |grep "inet addr"|awk '{print $2}'|awk -F':' '{print $2}'`       
    login_user=`who am i |awk '{print $1}'`
    #定义命令存放的文件夹  
    HISTDIR=/usr/share/.history  
    if [ -z $USER_IP ]  
    then  
    USER_IP=`hostname`  
    fi  
    #在.history目录下创建原始用户目录
    if [ ! -d $HISTDIR/${login_user} ]  
    then  
    mkdir -p $HISTDIR/${login_user}  
    chmod 300 $HISTDIR/${login_user}  
    fi  
    DT=`date +%Y%m%d`  
    #生成用户所操作的命令文件(这个文件需要用户关闭登录的时候才会生成)
    export HISTFILE="$HISTDIR/${login_user}/${USER_IP}.history.$DT"  
    export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" 
    #改变文件的权限,这样原始用户才能读到历史命令,不过只限于本天的
    chmod 644 $HISTDIR/${login_user}/*.history* 2>/dev/null
     
    二、然后需要在/etc/bashrc配置:
    HISTFILESIZE=10000  
    HISTSIZE=10000
    #定义执行history命令的时候,输出的格式
    HISTTIMEFORMAT="%F %T `who am i |awk '{print $1}'` : "  
    export HISTTIMEFORMAT
     
    注意:上面的两个配置需要在所有的客户端服务器配置
     
    三、使用rsync+inotify实现命令文件的实时传输
    3.1、首先需要搭建一个rsync server端
    增加配置文件/etc/rsyncd.conf:
    uid = root
    gid = root
    secrets file = /etc/rsync.password
    auth users = rsync_test
    log file = /var/log/rsyncd.log
    #自定义名称,不过要与下面的模块名称一致
    [rsync_backup]
    #传输要写入的目录
    path = /data1/rsync_backup
    #模块名
    comment = rsync_backup
    read only = no
    list = no
     
    增加密码文件/etc/rsync.password:
    #格式为:用户名:密码
    rsync_test:rsync@123qaz
     
    chmod 600 /etc/rsyncd.conf  && chmod 600 /etc/rsync.password
    && mkdir /data1/rsync_backup
     
    然后就可以直接执行 rsync --daemon运行了
     
    3.2、client配置:
    客户端也需要增加一个密码文件/etc/rsync.pass,里面的密码就是你刚才在server端创建的密码
     
    然后需要安装inotify工具:
     
    建立一个脚本实现自动传输(/opt/scripts/rsync_users_history.sh):
    #!/bin/bash
    /usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e 'close_write,modify,delete,create' /usr/share/.history/ |while read file
      do
        rsync -az /usr/share/.history/  rsync_test@10.122.33.132::rsync_backup --password-file=/etc/rsync.pass
    done
     
    运行脚本实现实时传输:
    nohup sh /opt/scripts/rsync_users_history.sh  >> /var/log/rsync.log &
     
    测试
     
     
    总结:
    优点:
    可以实现安全审计的功能,存储每个用户的执行命令
    缺点:
    如果一个懂Linux的用户在操作的话,可以删除自己执行的命令文件,安全性不是特别高,所以要实现高安全的审计,还需要自己开发堡垒机去实现,下一章就开始
  • 相关阅读:
    CF57C Array
    P4739 [CERC2017]Donut Drone
    CF1455D Sequence and Swaps
    LG P4351 [CERC2015]Frightful Formula
    5. React-router1- react-router理解
    5. React-router0- spa理解和路由的理解
    axios案例学习总结
    axios源码和常用方法
    http8种请求方式
    axios-http,ajax的封装,axios的使用
  • 原文地址:https://www.cnblogs.com/madq-py/p/10445195.html
Copyright © 2011-2022 走看看