189 8069 5689

linux命令记录审计 linux查看审计策略

Linux自带的审计功能

Linux自带的script命令,可以记录终端的输出,用来完成简单的审计功能

成都创新互联专注于企业营销型网站建设、网站重做改版、崇明网站定制设计、自适应品牌网站建设、H5建站商城建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为崇明等各大城市提供网站开发制作服务。

这样用户登陆后执行的操作都会记录到/mnt/log/script/*.log(目录自己根据服务器目录定义)里,这里把用户ID 大于1000的都记录下操作。

Linux系统上记录MYSQL操作的审计日志

根据笔者上一篇文章—Linux系统上记录用户操作的审计日志 。本文来利用相同的方法记录MYSQL操作的审计日志。

使用用mysql工具连接MySQL server的所有操作会默认记录到~/.mysql_history文件中,这个文件会把所有操作记录下来,包括创建用户和修改用户的明文密码,这在生产系统上是不安全的。如果不想保存,仅仅删除是不行的(文件不存在会再建立),要直接将其软连接到垃圾箱。

ln  -s  /dev/null  ~/.mysql_history

利用上一篇文章相同的方法记录MYSQL操作的审计日志,是因为mysql工具本身就是有一个shell, 每次mysql连接退出后,都会把此次操作的信息记录到~/.mysql_history文件中。那么可以重新定义MYSQL_HISTFILE环境变量来保存mysql日志。

先看置于/etc/profile.d目录下的环境变量的脚本mysql_history.sh,和loginlog类似。

  在测试时,发现平时使用的普通用户在操作mysql后无法记录,而root用户(平时没有操作过mysql)可以记录成功。后来在在~/.mysql_history文件找到了操作记录,估计是这个文件还存在的原因,删除后才记录到新的MYSQL_HISTFILE定义的路径。

  和loginlog一样,需要定期删除过期日志,以下脚本置于/etc/cron.weekly 目录下。

    delete_time=15

    find /opt/mysqllog/  -mtime +$delete_time -name '*.log' -exec rm -r {} \;

  但是相比于loginlog,mysqllog有两点暂时没有解决。

1、定义最大的记录条数history.maxSize不知在哪定义,my.cnf?

2、每一条命令的时间记录添加。

Linux下记录所有用户的操作命令,以方便后期审计

再后面追加:

保存退出后,执行 source /etc/profile 让配置生效。

所有操作命令记录存放在/var/log/cmd/{用户}/目录下,即使是同一个终端几个不同的窗口,在该窗口退出或关闭时,该用户目录下会生产一个文件,多个窗口会生产多个文件,最后只要查看这些文件内容,就可以看出历史操作了。

本文转自:


名称栏目:linux命令记录审计 linux查看审计策略
文章位置:http://cdxtjz.cn/article/doegjgs.html

其他资讯