linux安全-用户行为监控
来源:互联网 发布:数据库主键和外键 编辑:程序博客网 时间:2024/05/17 02:12
linux下面有好多shell,常见的有 /bin/bash、/bin/sh、/bin/csh、/bin/tcsh、/bin/ksh,而我们最常用bash,因为它提供了history功能,帮助我们更好的与系统交互。但本文主要讲解的是如何更加熟悉的了解别的用户包括黑客都在你的系统上做了什么操作,通常(bash)这些操作默认都会保存到~/.bash_history 文件中,但如果这些用户不想给你留下操作记录,就会想办法把自己的操作从history中删除,比如最后输入 history -c 操作,本文将从用户行为的操作记录来谈linux安全问题。
试验环境: redhat 5.4 32 位
shell : bash
默认情况下,在用户操作完毕退出后,bash是把当前用户的操作以覆盖~/.bash_history 的形式写入到此文件中,所以此时,如果用户调用history -c 退出后,那么管理员则什么都看不到,所以这时我们就要想办法把用户的操作记录给保存下来。
方法一:
首先,执行下面命令给.bash_history文件加上只能追加的形式进行记录
chattr +a /home/peter/.bash_history
lsattr /home/peter/.bash_history
然后,执行下面指令,修改bash以追加的方式忘给.bash_history文件中写入内容
shopt -s histappend
最后,调用下面指令使操作命令实时写入到.bash_history 文件中
PROMPT_COMMAND =" history -a;$PROMPT_COMMAND "
注意:上面两条命令写到/etc/profile 和/etc/bashrc文件最后即可
关于shopt命令的介绍请看http://blog.csdn.net/chaofanwei/article/details/11991963
方法二:
利用 PROMPT_COMMAND 命令进行用户行为的记录
PROMPT_COMMAND命令就是在用户执行本指令前调用的命令,可以在set环境中查看改变量,如下
图1 PROMPT_COMMAND 命令
操作:修改/etc/profile 和/etc/bashrc文件,在文件的最后加上以下两句话
export HISTORY_FILE=/var/log/`date '+%Y%m'`.log
#export PROMPT_COMMAND=' date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $PWD $(history 1 | sed "s/^[ 0-9]*//g" ) " >> /var/log/ht/ht'
export PROMPT_COMMAND=' date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $PWD $(history 1 | sed "s/^[ 0-9]*//g" ) " >> $HISTORY_FILE'
注意:一定要给$HISTORY_FILE'设置相应的权限,要不一般用户无法正确记录命令,而是会提示权限不足的问题,所以一定要修改这个文件的权限,使一般用户也能够写入。
最后,确保历史变量设置合理、无法更改。
这些历史变量包括最重要的HISTFILE、HISTCOMMAND和HISTIGNORE。要做到这一点,使用shell的typeset命令,带-r选项,这使得指定的变量拥有只读属性。良好的操作规范是使所有历史环境变量都变为只读,比如:
export HISTCONTROL=
export HISTFILE=$HOME/.bash_history
export HISTFILESIZE=2000
export HISTIGNORE=
export HISTSIZE=1000
export HISTTIMEFORMAT="%a %b %Y %T %z "
typeset -r HISTCONTROL
typeset -r HISTFILE
typeset -r HISTFILESIZE
typeset -r HISTIGNORE
typeset -r HISTSIZE
typeset -r HISTTIMEFORMAT
HISTTIMEFORMAT是bash shell的扩展,将在历史文件中提供时间戳。
对于bash shell来说,你需要更改历史的一些标准选项:
shopt -s cmdhist #设置cmdhist将把多行命令放入到单单一个历史行
shopt -s histappend #设置histappend将确保被添加到历史文件,而不是像通常的做法那样覆盖历史文件。
另外对于bash shell来说,还要设置PROMPT_COMMAND:
PROMPT_COMMAND="history -a"
typeset -r PROMPT_COMMAND
这是由于bash shell实际上把历史写入到内存中,历史文件仅在shell会话结束时加以更新。这个命令会把上一个命令附加到磁盘上的历史文件。
最后,当然也可借助系统审计功能,具体请看我之前发表的文件http://blog.csdn.net/chaofanwei/article/details/11830543
- linux安全-用户行为监控
- Linux 远程登陆安全加固的方案,附带用户行为简单监控脚本
- 用户行为监控(Piwik)
- Linux限制用户行为
- linux用户行为审计
- linux 用户行为审计
- 【无中生有】---14---用户行为监控系统嵌入
- linux 监控用户登陆
- Linux用户安全
- Linux下用户操作监控
- 如何保障Linux用户安全
- Linux用户帐号安全优化
- AIX&Linux用户安全控制
- Linux 安全基础--用户(用户组)
- linux 用户登录安全配置
- 数据安全加固 NPM/nTracker 网络流量行为监控系统的解决方案
- linux 下 Oracle 监控sysdba用户登陆
- 网络行为监控系统
- uva 846 Steps
- TextMode="Password"提交失败后不清空
- boost.asio系列——socket编程
- Java堆、栈、内存分配
- ArrayList和LinkedList的区别解析
- linux安全-用户行为监控
- 第7篇 面向对象的陷阱
- 装饰者模式-星巴克
- 【一天一篇CPP】对象与指针与数组 对象和const和指针和引用
- 计算机视觉与模式识别 code
- 题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
- 项目开发过程----记录如何在2.3.3版本调试slidingmenu(一)
- eclipse环境import工程出现中文乱码问题的解决方案
- hdu 2818 Building Block 并查集(边搜索边更新)