• 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的用户在操作的话,可以删除自己执行的命令文件,安全性不是特别高,所以要实现高安全的审计,还需要自己开发堡垒机去实现,下一章就开始
  • 相关阅读:
    [BZOJ1666][Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
    [BZOJ1692][Usaco2007 Dec]队列变换
    [BZOJ1599][Usaco2008 Oct]笨重的石子
    [BZOJ1603][Usaco2008 Oct]打谷机
    [BZOJ1614][Usaco2007 Jan]Telephone Lines架设电话线
    [BZOJ1617][Usaco2008 Mar]River Crossing渡河问题
    [BZOJ1612][Usaco2008 Jan]Cow Contest奶牛的比赛
    [BZOJ1600][Usaco2008 Oct]建造栅栏
    [BZOJ1230][Usaco2008 Nov]lites 开关灯
    hdu 2199 Can you solve this equation? 二分
  • 原文地址:https://www.cnblogs.com/madq-py/p/10445195.html
Copyright © 2020-2023  润新知