美文网首页Linux Linux
Linux系统上记录用户操作的审计日志

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

作者: 刘小白DOER | 来源:发表于2021-05-05 14:25 被阅读0次

        在linux系统上,可以通过命令history来查看历史命令,但是history命令只针对登录用户下执行有效,无法获取其他用户的history历史历史操作命令。在生产系统上,为了监测系统的安全性,当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,方便审计。

        脚本代码是利用全局环境变量的设置来实现的,当用户登录/退出会执行环境变量的脚本( 下文的all_history.sh),会创建相应的文件记录历史操作命令。关于环境变量变量的设置的更多信息,请参考笔者自己的文章—Linux环境变量的设置

        已下日志脚本代码是基于简友的文章—Linux 查看所有登录用户的操作历史命令。此文章里面是将下面的脚本内容放置于/etc/profile文件中,但是为了方便管理,笔者放置于/etc/profile.d目录下,因为目录下的所有文件会被sourced ,在 /etc/profile中有代码定义。为了方便管理,自己在HISTFILE后面加了.log  ,其他代码未修改 。

        loginlog日志有了,长时间的运行就会积累很多过期的日志,这就需要定时清理过期日志文件。

        笔者将delete_loginlog.sh置于/etc/cron.weekly目录下,每周执行一次这个脚本。当然定时任务也有其他写法,详情参考笔者的文章-Linux crontab定时任务详细分解

        在/var/log/cron日志文件记录了delete_loginlog.sh定时任务的执行情况。

     如果为了节约磁盘空间,也可以将.log文件压缩打包,默认gzip 会删除源文件,并生成xx.gz文件。更多请请参考笔者的文章-让Linux系统保持活力的优化脚本。    

        find /opt/loginlog/  -name '*.log' -exec gzip -f {} \;

    然后再删除过期30天的.gz文件。看需求可以将上下的两个压缩命令和删除gz文件的命令置于不同的周期来执行。

        delete_time=30

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

    最后看一下笔者在阿里云服务器上测试。log文件的时间是用户登陆后的时间,也是 /etc/profile执行的时间,但是.log文件生成时间是用户登出的时间。

      此脚本可以记录用户登陆的IP地址或者用户名的每一个操作指令,而且上下翻键也失效,不能找出以前的命令,对于生产系统的安全方面有重要的意义。

    2021.5.9。history并不包含时间信息,在脚本中加入export  HISTTIMEFORMAT="%F %T " ,可以在记录日志中显示每条命令的执行时间。经过测试,笔者发现时间是unix timestamp ,而不是北京时间。这个与直接敲history是不一样的,暂时不知道原因,待以后发掘吧。

相关文章

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

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

  • Linux的syslog与logrotate运用

    参考:Linux下的rsyslog系统日志梳理(用户操作记录审计) - 云+社区 - 腾讯云 参考:syslog(...

  • Linux系统上记录用户操作的审计日志

    在linux系统上,可以通过命令history来查看历史命令,但是history命令只针对登录用户下执行有...

  • 日志审计系统的基本原理

    日志审计系统简介 什么是日志审计? 综合日志审计平台,通过集中采集信息系统中的系统安全事件、用户访问记录、系统运行...

  • Linux系统下哪些命令可以查询日志?

    在Linux操作系统中,日志文件(log文件)是重要的系统信息文件,可以保存几乎所有的操作记录,比如:用户的登录信...

  • MySQL审计插件介绍

    前言: 数据库审计功能主要将用户对数据库的各类操作行为记录审计日志,以便日后进行跟踪、查询、分析,以实现对用户操作...

  • spring 自定义注解,实现日志

    采用自定义注解实现 用户操作日志记录 简介及说明: 记录登陆用户的操作日志,目前只针对(运营管理平台)itas系统...

  • 【问答】Linux

    Linux系统日志在哪里看 Linux日志分为内核及系统日志、用户日志、应用日志;系统日志由rsyslog服务统一...

  • .NET Core工程应用系列(1) 定制化Audit.NET实

    需求背景 最近在项目上需要增加对用户操作进行审计日志记录的功能,调研了一圈,在.net core生态里,用的最多的...

  • 06.Linux 用户和组管理

    Linux 用户和组管理 概述 Linux 操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。...

网友评论

    本文标题:Linux系统上记录用户操作的审计日志

    本文链接:https://www.haomeiwen.com/subject/yqikdltx.html