Chinaunix首页 | 论坛 | 博客
  • 博客访问: 430355
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1101
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-20 19:29
个人简介

http://meetbill.github.io/

文章分类

全部博文(121)

我的朋友

分类: LINUX

2015-08-17 17:58:13

一 使用[PROMPT_COMMAND]变量 实现审计操作行为功能

【实现原理】

在bash里设置环境变量PROMPT_COMMAND,这个命令会在用户提示符之前被执行,可以用来记录用户操作历史

【实现步骤】 

1、创建行为审计日志文件

touch /var/log/Command_history.log

2、将日志文件的所有者改为权限低的用户NOBODY

chown nobody:nobody /var/log/Command_history.log

3、赋予所有用户对日志文件写的权限

chmod 002 /var/log/Command_history.log

4、使所有用户对日志文件只有追加权限 

chattr +a /var/log/Command_history.log

5、编辑/etc/profile,增加如下:

export HISTORY_FILE=/var/log/Command_history.log

export PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")  #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>${HISTORY_FILE}'

【Bill提示】

此日志文件如果需要删除时,在执行删除操作时,会提示没有权限,这个就是chattr对文件实现的保护功能了,如果需要删除此文件,需要执行

chattr -a /var/log/Command_history.log

chmod 777 /var/log/Command_history.log

然后对日志文件进行删除操作

二 根据Profile文件特征实现对操作用户的简单审计功能【失败】

【实现原理】

/etc/profile文件是linux系统的全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

【实现步骤】

编辑/etc/profile,增加如下:

read -p "Please input your name:" NAME

 

export HISTORY_FILE=/var/log/Command_history.log 
Login=`echo -n "-------NAME [$NAME] IP [$SSH_CLIENT] -----">> $HISTORY_FILE`
Time=`date -d today +"%Y-%m-%d %H:%M:%S" >> $HISTORY_FILE`

这样用户在远程登陆linux系统时,会提示输入名字,当操作人员输入自己的名字后,日志文件中会有相应记录,后续出现问题时,可以根据日志文件找到操作人员的姓名和操作记录

【失败与教训】

失败原因:

网盘在的profile文件设置为如上所示时

在重启电脑的时候,机器在启动的时候,读取profile文件,因为profile有读取字符串操作,导致了系统在执行启动xserver服务的时候,没有完成读取profile文件操作,因此导致了xserver服务,和xserver_guard服务启动失败

失败教训:

linux系统启动要读取的文件尽量不要有输入操作

【方法改进】

在xserver命令中添加下#xserver -n Your_name命令,完成记录操作人员人名操作,方便出现问题后快速定位问题

阅读(1066) | 评论(0) | 转发(0) |
0

上一篇:Centos6.5下git使用

下一篇:提高Scp反应速度

给主人留下些什么吧!~~