BASH增加日志功能

简介:

BASH增加日志功能

    如果工作中遇到了比较囧的情况,机器被人攻破了,黑客登录了你的系统(当然我们会尽全力防止这样的事情发生)你一定会希望系统记录下来哪个用户做过哪些操作。History功能并不能满足这个要求,因为黑客的智商应该会告诉他在离开的时候删除history记录(除非你遇到个菜鸟黑客)。

    那么我们怎么预防呢?这里的方法是给bash来个记录日志,谁在什么时间操作了什么命令,都写到messages里面去。

下面是具体步骤:
1.       下载并打补丁

#cd /home/soft
#wget  http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
#tar zxf bash-4.1.tar.gz ; cd bash-4.1
#wget -r -nd -np http://ftp.gnu.org/gnu/bash/bash-4.1-patches/
#patch -p0 < bash41-001  全部文件都要patch一遍
2.       修改源码
这里这么做的原因是因为bash4.1默认在代码里面注释了log功能,并且原来记录的内容并不能满足要求,所以需要修改。
#vi bashhist.c +708  708行左右修改成下面内容
 syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d PPID=%d SID=%d  User=%s CMD=%s", getpid(), getppid(), getsid(getpid()),  current_user.user_name, line);
  else
    {
      strncpy (trunc, line, SYSLOG_MAXLEN);
      trunc[SYSLOG_MAXLEN - 1] = '\0';
      syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d  PPID=%d SID=%d User=%s CMD=%s", getpid(), getppid(), getsid(getpid()),  current_user.user_name, trunc);
    }
#vi config-top.h  取消/*#define SYSLOG_HISTORY*/这行的注释
3.       编译安装
#./configure --prefix=/usr/local/bash && make && make install
4.       测试
#vi /etc/passwd  修改一个用户的登录shell/usr/local/bash/bin/bash
tom:x:501:501::/home/users/tom:/usr/local/bash/bin/bash
tom用户登录并进行一些操作,之后查看messages文件,可以看到类似下面的记录:
Jan 14 13:35:15 rhel6 -bash: HISTORY: PID=15912 PPID=2161 SID=15912  User=tom CMD=cat yum.conf
5.       把日志记录的日志服务器
#vi /etc/syslog.conf  添加一行*.*  @logservername
日志服务器的做法只需要在/etc/sysconfig/syslog文件中修改SYSLOGD_OPTIONS="-m -r 0"即可。

PS:此方法只针对syslog程序,RHEL6.0已更换为rsyslog具体方法还没研究。










本文转自 sharkyan 51CTO博客,原文链接:http://blog.51cto.com/sharkyan/478386,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
存储 Go
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。
816 0
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
1353 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
数据采集 分布式计算 监控
日志服务功能特性
日志服务功能特性
285 7
|
运维 监控 虚拟化
除了实时性能监控,Hyper-V还支持日志记录和警报功能你知道吗?
Hyper-V不仅支持实时性能监控,还具备强大的日志记录和警报功能。通过事件查看器可访问详细的日志文件,涵盖虚拟机管理、配置及Hypervisor事件,帮助故障排查和性能分析。警报功能支持预定义和自定义规则,可通过多种方式通知管理员,确保及时响应问题,保障虚拟化环境的稳定运行。
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
683 1
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
781 9
|
存储 监控 Serverless
函数计算发布功能问题之用户在使用主流函数计算产品的日志服务时可能会遇到使用成本的问题如何解决
函数计算发布功能问题之用户在使用主流函数计算产品的日志服务时可能会遇到使用成本的问题如何解决
313 6
|
监控 Serverless 开发者
函数计算发布功能问题之查看函数的调用日志的问题如何解决
函数计算发布功能问题之查看函数的调用日志的问题如何解决
295 1
|
监控 安全 Shell
凭借 Bash 语言实现员工行为管理软件的部分功能
在企业中,员工行为管理软件对于提高工作效率和保障企业安全至关重要。本文介绍了如何使用 Bash 脚本实现员工登录时间监控、特定网址访问记录以及生成报告的基本功能。通过示例代码,展示了如何记录登录时间和访问网址,并将信息汇总生成报告。虽然这是一个简单的示例,但为实际应用提供了基础框架。
318 0

热门文章

最新文章