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,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 Go
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。
116 0
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
|
7月前
|
C++
C++-实现日志log功能
C++-实现日志log功能
|
11天前
|
SQL 分布式计算 监控
日志服务主要功能
本文介绍日志服务主要的功能。
27 2
|
12天前
|
缓存 Java 测试技术
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
Java多线程实战-实现多线程文件下载,支持断点续传、日志记录等功能
|
7月前
|
存储 运维 监控
如何在 Spring Boot 中设计和实现业务操作日志功能?
如何在 Spring Boot 中设计和实现业务操作日志功能?
1050 4
|
4月前
|
数据可视化 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C++)
33 0
|
10月前
|
SQL XML 前端开发
Spring Boot + vue-element 开发个人博客项目实战教程(十八、操作日志功能实现)2
Spring Boot + vue-element 开发个人博客项目实战教程(十八、操作日志功能实现)2
95 0
Spring Boot + vue-element 开发个人博客项目实战教程(十八、操作日志功能实现)2
|
5月前
|
设计模式 Java 数据库连接
设计模式与面向对象编程:举例说明在Java中应用工厂模式的场景,并编写一个简单的工厂模式实现。编写一个Java装饰器,用于添加日志记录功能到现有方法上。
设计模式与面向对象编程:举例说明在Java中应用工厂模式的场景,并编写一个简单的工厂模式实现。编写一个Java装饰器,用于添加日志记录功能到现有方法上。
23 0
|
6月前
|
JSON 监控 数据可视化
实时日志分析:通过Golang编写实时日志分析模块,加强公司监控管理软件的日志监控功能
在当今数字化时代,企业面临着庞大而复杂的网络环境,对实时监控和日志分析的需求变得日益迫切。本文将介绍如何使用Golang编写实时日志分析模块,以增强公司监控管理软件的日志监控功能。通过本文的指导,你将能够建立一个定制的实时日志分析系统,更好地监测和管理公司的网络活动。
228 0
|
6月前
|
消息中间件 监控 关系型数据库
134 日志监控告警系统案例(功能架构分析)
134 日志监控告警系统案例(功能架构分析)
74 0

热门文章

最新文章