安全审计这块我能想到的有两种方案可以解决,一种是在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的用户在操作的话,可以删除自己执行的命令文件,安全性不是特别高,所以要实现高安全的审计,还需要自己开发堡垒机去实现,下一章就开始

Linux安全审计-基础篇的更多相关文章

  1. Linux入门基础篇

    Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...

  2. 二进制入门-打造Linux shellcode基础篇

    0x01 前言   本文的目的不是为了介绍如何进行恶意的破坏性活动,而是为了教会你如何去防御此类破坏性活动,以帮助你扩大知识范围,完善自己的技能,如有读者运用本文所学技术从事破坏性活动,本人概不负责. ...

  3. 小朋友学Linux<一>基础篇

    Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...

  4. linux操作系统基础篇(七)

    Linux服务篇(二) 1.nfs服务的搭建 安装: yum install rpcbind nfs-utils -y 配置: NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要 ...

  5. linux操作系统基础篇(六)

    linux服务篇 1.samba服务的搭建 samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件.2. samba服务的启动.停止.重启service smb s ...

  6. linux操作系统基础篇(一)

    1.什么是linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序 ...

  7. Linux学习——————基础篇

    一.linux试用 1.使用man或者info查询 2.超级简单的文本编辑器:nano 3.sync:数据同步写入磁盘,将内存中的数据写入磁盘 3.惯用的关机命令:shutdown /sbin/shu ...

  8. linux操作系统基础篇(五)

    Linux网络以及rpm安装yum源的配置 1.Linux网络 1. 使用ifconfig命令来维护网络1) fconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址.2) ...

  9. linux操作系统基础篇(四)

    一.系统监控 1.TOP 命令 1) top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) 使用top命令列 ...

随机推荐

  1. linux下根据根据进程号查端口、根据端口号查进程号汇总,以及netstat的相关资料(工作中匮乏的知识)

    根据端口查进程: lsof -i:port netstat -nap | grep port 根据进程号查端口: lsof -i|grep pid netstat -nap | grep pid 根据 ...

  2. Navicat创建事件,定时更新数据库

    一.新建事件 二.在定义里编写要更改的SQL语句 如果SQL语句有多条,需要将SQL语句放在begin...end中 begin update student set num = '0'; updat ...

  3. 5、cesium点击面高亮事件

    cesium点击面高亮事件 主要功能:比如你加载了json.geojson或者topojson的数据.加载出来后,分为很多个面,现在要实现点击一个面,这个面变颜色:再点击另一个面,另一个面高亮,之前的 ...

  4. 常用内置模块(四)——subprocess、re

    常用模块(四) 一.subprocess模块 1.subprocess为子流程模块,用于执行系统命令,该模块在Python全栈开发中不常用 2.常用方法 run 返回一个表示执行结果的对象 call ...

  5. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)

      写这篇博客时2D游戏引擎Cocos2d-x的最新版本为2.1.4,记得很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs2010配置图文详解(亲测)>成功配置 ...

  6. B-彻底删除卸载Ubuntu中的MySQL并重新安装(已验证)

    Ubuntu-16.04,MySQL-5.7,寻找多篇有关如何彻底卸载删除MySQL的博文, 最终验证下面转发博文真实有效,推荐! https://www.jianshu.com/p/c76b31df ...

  7. 2019-7-15-WPF-测试触摸设备发送触摸按下和抬起不成对

    title author date CreateTime categories WPF 测试触摸设备发送触摸按下和抬起不成对 lindexi 2019-7-15 9:3:51 +0800 2019-0 ...

  8. minicom 的使用

    1.切换到 root 用户. [root@localhost btools]#su - 2. 查找有效的串设备. [root@localhost ~]#cat /proc/devices ... 4 ...

  9. 设计Twitter的api

    355. Design Twitter 题意:设计Twitter的API,实现以下功能. postTweet(userId, tweetId): Compose a new tweet. getNew ...

  10. composer 的安装以及一些插件的下载等

    安装composer: 下载composer: curl -sS https://getcomposer.org/installer | php 将composer.phar文件移动到bin目录以便全 ...