Linux简单的命令审计(利用特殊权限stick_bit防删除位)

部署环境

Name Version
CentOS 7 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

命令审计

在需要日志审计功能的服务器上执行以下命令即可

1、创建用户审计文件存放的目录,-p嵌套创建路径中不存在的目录

  # mkdir -p /usr/local/monitor/

2、给用户审计文件存放的目录赋予最低权限可读、可写、可执行(赋予权限前后对比)

  # ls -ldi /usr/local/monitor/
  51020930 drwxr-xr-x 2 root root 6 8月   6 23:51 /usr/local/monitor/
  # chmod 777 /usr/local/monitor/
  # ls -ldi /usr/local/monitor/
  51020930 drwxrwxrwx 2 root root 6 8月   6 23:51 /usr/local/monitor/

3、给用户审计文件存放的目录赋予t权限就是特殊权限stick_bit(也叫防删除位),防止在该目录下创建文件者之外的用户删除该文件(root用户除外)

  # chmod +t /usr/local/monitor/
  # ls -ldi /usr/local/monitor/
  51020930 drwxrwxrwt 2 root root 6 8月   6 23:51 /usr/local/monitor/

4、编辑/etc/profile文件,在内容最后添加脚本命令

  # vi /etc/profile
  ​
  if [ ! -d /usr/local/monitor/${LOGNAME} ];
  then
      mkdir -p /usr/local/monitor/${LOGNAME}
      chmod 300 /usr/local/monitor/${LOGNAME}
  fi
  ​
  export HISTORY_FILE="/usr/local/monitor/${LOGNAME}/bash_history"
  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'

5、是配置生效(其实配置完第4步就已经生效,第5步只是保险起见)

  # source /etc/profile

审计时查看/usr/local/monitor/下的以用户名字创建的目录里面的文件即可,它会分别记录登上服务器各个用户的使用目录。为了更安全,可以将该目录打包压缩备份。

猜你喜欢

转载自blog.csdn.net/zhengyshan/article/details/81514960