安全审计这块我能想到的有两种方案可以解决,一种是在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. JAVA JDBC大数据量导入Mysql

    转自https://blog.csdn.net/q6834850/article/details/73726707?tdsourcetag=s_pctim_aiomsg 采用JDBC批处理(开启事务. ...

  2. CSS:CSS 组合选择符

    ylbtech-CSS:CSS 组合选择符 1.返回顶部 1. CSS 组合选择符 CSS 组合选择符 组合选择符说明了两个选择器直接的关系. CSS组合选择符包括各种简单选择符的组合方式. 在 CS ...

  3. Java类初始化顺序,大神3个示例带你躺坑。。

    最近发现微信群里面有些群友在讨论类的初始化顺序,如类的静态变量.成员变量.静态代码块.非静态代码块.构造器,及继承父类时,它们的初始化顺序都是怎样的,下面我通过例子来说明这个情况,以免被人误导. 示例 ...

  4. mybatis的实际应用

    简单基本的增删改查语句就不说了,直接从一对一,一对多的关系开始: association联合:联合元素用来处理“一对一”的关系; collection聚集:聚集元素用来处理“一对多”的关系; MyBa ...

  5. (数据科学学习手札57)用ggplotly()美化ggplot2图像

    一.简介 经常利用Python进行数据可视化的朋友一定用过或听说过plotly这样的神器,我在(数据科学学习手札43)Plotly基础内容介绍中也曾做过非常详细的介绍,其渲染出的图像以浏览器为载体,非 ...

  6. C# 编译生成 产生多余的语言包删除"de" "en" "es" "fr" "hu" "it" "ja" "ko" "pr-br" "ro" "pt-br" "ru" "sv" "zh-hans" "zh-hant&qu

    VS生成事件 rd /s /q "de" "en" "es" "fr" "hu" "it& ...

  7. 结对编程项目报告--四则运算CORE

    <!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...

  8. pandas读书笔记 算数运算和数据对齐

    pandas最重要的一个功能是,它可以对不同索引的对象进行算数运算.在对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集. Series s1=Series([,3.4,1.5],ind ...

  9. 在GitHub上编辑README.md排版样式

    如何在github的readme.md编辑出好看的样式排版文章呢...? 参考:https://blog.csdn.net/u012067966/article/details/50736647

  10. linux crontab 计划任务编写

    在linux中启动crontab服务: /etc/init.d/crond start crontab的命令格式 crontab -l 显示当前的crontab 文件(默认编写的crontab文件会保 ...