实时用户操作审计系统

【概述】:多人共同使用的服务器权限确实不好管理,误操作等造成故障,无法追究,最好的办法就是将用户操作实时记录到日志,并推送到远程日志服务器上。包括(用户登陆时间,目录,操作命令及时间戳等)。以便事后追查。 —–这段网上抄的 – –

方案:就是将这些操作记录到本地文件,然后在通过fluentd收集到远程日志服务器上,实现伪实时。跟上文一样,可以直接存到Elasticsearch,然后使用kibana直接展示方便。

为了方便二次开发,这次将日志存到了mongodb,当然也可以存到mysql(本文不讨论这个哈)

——————–

1,先实现记录修改到本地文件

(1)修改/etc/profile

export PROMPT_COMMAND='{ date “+%Y-%m-%d %T $(ifconfig | grep eth -A 1 | grep “192.168” | grep -oP “(?<=addr:)[\d\.]+”) $(who am i |awk “{print \$1\” \”\$2\” \”\$3\” \”\$4\” \”\$5}”) [`pwd`] $(history 1 | { read x cmd; echo “$cmd”; })”; } >> /var/log/audit.log’

(2)执行source /etc/profile

记录到本地格式的文件内容如下:

内容格式:记录时间 本地IP 用户 终端 登录时间 来源 所在目录 执行命令

注意:其他用户必须对audit.log有写入权限

2,,收集到mongodb

fluentd客户端配置如下:

<source> type tail format /^(?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) (?<src>[^ ]*) (?<user>[^ ]*) (?<zhongduan>[^ ]*) (?<logintime>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}) \((?<dst>[^ ]*)\) \[(?<pwd>[^\]]*)\] (?<cmd>.*)?$/ path /var/log/audit.log pos_file /var/log/td-agent/audit.pos tag mongo.fluent.audit</source>

fluentd服务器端和上篇文章类似

记录到mongodb中的内容如下:

到此结束。。。。

本文出自 “TNT、运维之路” 博客,请务必保留此出处

当你能爱的时候就不要放弃爱

实时用户操作审计系统

相关文章:

你感兴趣的文章:

标签云: