要审计用户执行的命令,在系统本地执行的话,比较简单。修改HISTTIMEFORMAT变量即可,比如:

export HISTTIMEFORMAT="[%F %T $(who am i)] "

但是简单的依赖.bash_history 或 script 是不可靠的,两者虽然记录了用户行为,但是可能被用户篡改和清除。

rsyslog 是标准Linux系统的一部分,能够实时的写日志,并且还可以将日志选择性的发送到远程日志服务器。

利用rsyslog 可以将日志实时写入远程日志服务器,从而杜绝用户篡改,提高审计材料的真实度。

以ubuntu为例,下面的办法可以让rsyslog记录用户所执行的命令以及时间戳,供审计使用。

1、rsyslog 添加日志

echo -e "local6.* /var/log/commands.log" >/etc/rsyslog.d/bash.conf

2、在/etc/profile 中加入

function bash2syslog {declare commandcommand=$(fc -ln -0 2>/dev/null||true)if [ "$command" != "" ];thenlogger -p local6.notice -t bash -- "$(who am i)" $PWD $USER: "$command"fi
}
trap bash2syslog DEBUG

这里写入本地日志。然后rsyslog直接将日志写入远程服务器 。

建议root 用户的umask 值设置为027或者007,防止/var/log/commands.log文件被普通用户查看到。

3、日志轮转

编辑/etc/logrotate.d/rsyslog 在中间增加一段

/var/log/commands.log
{rotate 30weeklymissingoknotifemptycompressdelaycompresssharedscriptspostrotatereload rsyslog >/dev/null 2>&1 || trueendscript
}

4、重启rsyslog,用户退出重新登陆

service rsyslog restart

5、rsyslog 发送日志到远程服务器(可选)

echo "local6.*          @@192.168.0.2" >>/etc/rsyslog.conf

6、利用watchdog监视rsyslog,如果服务被停止,则重启机器 (可选)

apt-get install watchdog
update-rc.d watchdog defaultsCat >> /etc/watchdog.conf  <<EOF
watchdog-device    = /dev/watchdog
admin                   = root
interval                = 1
logtick                 = 1
log-dir                 = /var/log/watchdog
pidfile                 = /var/run/rsyslogd.pid
EOF

7、目标日志服务器配置 /etc/rsyslog.d/commands-audit.conf

$template LOG_BY_HOSTIP, "/var/log/command-audit/%fromhost-ip%-commands.log"
local6.notice ?LOG_BY_HOSTIP

8、其它优化

设置/etc/profile

shopt -s histappend,

让不同会话共享历史记录,而不是临时保存在内存里,会话退出后才能共享

适当修改环境变量 PROMPT_COMMAND

参考文档

http://www.pointsoftware.ch/howto-bash-audit-command-logger/

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/

http://blog.rootshell.be/2009/02/28/bash-history-to-syslog/

http://askubuntu.com/questions/93566/how-to-log-all-bash-commands-by-all-users-on-a-server

http://askubuntu.com/questions/393574/logging-of-commands-executed-in-bash

利用rsyslog 对Linux用户进行审计相关推荐

  1. linux用户行为审计

    用户行为审计 利用rsyslog对用户行为进行审计 第一步:安装rsyslog服务端 yum install -y rsyslog 第二步:编辑/etc/rsyslog.conf :msg,conta ...

  2. linux 用户行为审计update1

    根据公司需求,整理了一个linux用户审计的脚本,现和大家分享! 具体步骤如下: 一:配置调试 1.创建用户审计文件存放目录和审计日志文件 : mkdir -p /var/log/usermonito ...

  3. linux 用户行为审计

    在/etc/profile文件下添加如下shell即可(注意文件的权限问题!!) if ! test -z "$BASH_EXECUTION_STRING" ; thenecho ...

  4. Linux winServer 向审计软件发送审计日志

    一.日志审计系统会提供传送日志的程序,让厂商提供然后安装程序 二.系统自带的程序(Linux) 1.rsyslog 是标准Linux系统的一部分,能够实时的写日志,并且还可以将日志选择性的发送到远程日 ...

  5. del服务器如何收系统日志,利用Rsyslog集中收集系统日志和用户操作记录以及相关处理方法...

    相信从事linux服务器运维的筒子们都和我一样,每天都在和各种系统日志.服务日志打交道.这些日志记录了系统或服务每天发生的各种状态.通过观察日志我们可以及时的解决掉很多系统和服务故障. 今天主要写的是 ...

  6. Linux登录安全及用户操作审计 ,linux下清理日志脚本

    一.合理使用Shell历史命令记录功能 Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候***会删 ...

  7. linux sys伪用户作用,【原创】Linux版 对sys用户进行审计的示例

    更多精彩内容尽在 我们在操作数据库的时候,知道SYS用户的权限是最大的干什么事很方便,同时带来的问题就是非常危险,没有人可以束缚住.因此我们有时需要对SYS用户进行审计 SYS@LEO1>sho ...

  8. linux审计日志清除,Linux登录安全及用户操作审计 ,linux下清理日志脚本

    一.合理使用Shell历史命令记录功能 Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候***会删 ...

  9. 利用AOP进行简单的性能监控及用户行为审计

    做web项目后台开发的时候,比较关心的一个问题程序跑的快不快,这个问题的最好度量就是计时器了.但是在每一个方法里面都写一个计时器,弊端太明显了:代码冗余大,维护起来巨麻烦.切面编程为解决这个问题的不错 ...

  10. Centos6.3下利用rsyslog+loganalyzer+mysql部署日志服务器

    作为一名系统运维工程师,平时查看分析LINUX系统日志我觉得是我们每天必做的功课,但时间长了会发现每次查看站点日志都得挨个进后台,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉 ...

最新文章

  1. 主流NoSQL及应用场景详解
  2. JS获取DOM元素的八种方法
  3. win bat 输入参数
  4. flink读mysql速度怎么样_[DB] Flink 读 MySQL
  5. 资源 | Deeplearning.ai课程与笔记汇总
  6. Linux find和grep的区别
  7. Linux 5.7 将支持国产 RISC-V 芯片 K210
  8. python相关函数_python列表相关函数
  9. 给Python IDLE添加行号显示
  10. 《疯狂的程序员》经典语录
  11. 从BAT围剿中杀出重围,青藤云安全“第二总部”将剑指何方
  12. 红队常用的防守策略.
  13. 【C++】重定义,重载,重写
  14. 阿里云服务器ECS到底是什么?
  15. H264BSAnalyzer 使用方法
  16. 天龙八部怀旧服服务器维护,新天龙八部怀旧服游戏2月4日全服更新维护公告
  17. 编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上
  18. Django数据库学习——定义用户模型(实例)
  19. 【渝粤题库】广东开放大学 标准化专题讲座1 形成性考核
  20. 【组合数学】递推方程 ( 特解形式 | 特解求法 | 特解示例 )

热门文章

  1. paip.不同目录结构哈的文件批量比较
  2. paip.PHP实现跨平台跨语言加解密方法
  3. 挪威养老基金给我们的启示
  4. (转)基于FPGA技术的FAST行情解码研究
  5. (转)资产管理和财富管理的区别
  6. java实现复数之间加减乘运算_用java实现复数的加减乘除运算(改进第1次)
  7. 【语音隐写】基于matlab DWT音频数字水印嵌入提取【含Matlab源码 350期】
  8. 【图像分割】基于matlab粒子群优化T熵图像分割【含Matlab源码 286期】
  9. 【数学建模】基于matlab三维数据可视化(华为杯)【含Matlab源码 139期】
  10. 保密协议无效认定_保密协议其实并没用?