rsyslog远程记录系统日志

news2024/10/6 10:29:49

rsyslog是一个快速处理手机系统日志的开源程序,提供了高性能,安全功能和模块化设计,rsyslog是syslog的升级版,他讲多重来源输入输出转换结果到目的地,rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。

rsyslog守护进程可以被配置成两种环境,一种是配置成日志手机服务器,rsyslog进程可以从网络中收集其他主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器,rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog服务器上

下面来操作一下:

  1. rsyslog服务器(收集):192.168.89.129
  2. rsyslog 主机(发送):192.168.89.128

实现client主机通过rsyslog发送自身的系统日志到rsyslog server服务器,服务器端将该主机系统日志存放到一个指定的目录里面,进行按IP和日志简单分类存储

  • rsyslog服务器端配置

centos系统默认安装了rsyslog服务

两台服务器都进行以下操作进行备份:

cp /etc/rsyslog.conf /etc/rsyslog.conf_default

vi /etc/rsyslog.conf

收集服务器:192.168.89.129:

  1. 取消下面两行注释,开始UDP 514接收配置

$ModLoad imudp

$UDPServerRun 514

  1. 在$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat这一行添加如下配置

 $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"

:fromhost-ip, !isequal, "127.0.0.1" ?Remote

& ~

  1. 重启rsyslog服务

systemctl restart rsyslog 

  • rsyslog客户端配置(发送):

vim /etc/rsyslog.conf

1、取消如下五行注释

$ActionQueueFileName fwdRule1 # unique name prefix for spool files

$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)

$ActionQueueSaveOnShutdown on # save messages to disk on shutdown

$ActionQueueType LinkedList   # run asynchronously

$ActionResumeRetryCount -1    # infinite retries if host is down

  1. 最后一行添加收集端的信息

*.* @192.168.89.129

  1. 重启rsyslog服务

systemctl restart rsyslog

  • 在服务端验证效果

cd /var/log/syslog

cd 192.168.89.128

cat 192.168.89.128_2024-02-07.log

这时,就会记录系统中的常规系统日志到我们的日志服务器当中

然后,通过测试,发现日志的记录并不完全,我根据需求,想要的是记录到每个用户的操作记录,不管是管理员还是普通用户,类似于;

每一条都能记录,不管是执行了什么操作

这时,我们通过对每个用户的.bashrc文件进行操作

~/.bashrc       -每个用户的家目录下会有这个文件,使用ls -a可以看到

export PROMPT_COMMAND='RETRN_VAL=$?;logger -n XX.XX.XX.XX -P 514 -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") [$RETRN_VAL]"'

这段代码的目的是在每次 Bash shell 提示符出现之前记录一条日志消息,这条消息包含了用户的一些信息和最后执行的命令。这可能用于审计或监控用户的活动。

`PROMPT_COMMAND` 是一个 Bash shell 特定的环境变量,每次命令提示符出现之前,都会执行 `PROMPT_COMMAND` 中定义的命令。

在这段代码中,`RETRN_VAL=$?` 获取并存储了最后执行的命令的返回值。

`logger -n XX.XX.XX.XX -P 514 -p local6.debug "$(whoami) [$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") [$RETRN_VAL]"` 这条命令使用 `logger` 工具将一条日志消息发送到远程日志服务器 `XX.XX.XX.XX` 的 `514` 端口。这条消息包含了以下信息:

- 当前用户的用户名(`whoami`)

- 最后执行的命令(通过 `history 1 | sed "s/^[ ]*[0-9]\+[ ]*//"` 获取)

- 最后执行的命令的返回值(`$RETRN_VAL`)

总的来说,这段代码的作用是在每次提示符出现之前记录一条日志消息,这条消息包含了用户的一些信息和最后执行的命令。这可能用于审计或监控用户的活动。

到这里,我们的操作基本上就完成了,可以很完全的记录操作的信息,但是,唯一的一个遗憾,就是我通过测试,没能达到好的效果去检测 反弹shell 的操作记录,能够实现通过rsyslog记录,但是缺点就是在通过审计日志记录日志的时候,审计日志(auditd)会调用execve,但是execve可能会产生大量的日志数据,因为auditd会记录所有的execve调用,包括系统和服务的后台活动。我测试的时候几条命令,产生了一万五千多条日志,所以,有懂得老师们欢迎评论区留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1444011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV每日函数 结构分析和形状描述符(9) ApproxPolyDP函数 拟合曲线

一、Douglas -Peucker 算法 也称为Ramer-Douglas-Peucker 算法或迭代端点拟合算法,是一种通过减少点数来平滑折线(由线性线段组成的线)的算法。简化曲线应保留原始曲线的粗略形状,但仅包含定义原始曲线的点的子集。 粗化程度由单个参数 ε 控制,该参数定义原始点和简化曲线…

【开源】JAVA+Vue.js实现森林火灾预警系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 系统基础模块2.3 烟雾传感器模块2.4 温度传感器模块2.5 历史记录模块2.6 园区数据模块 三、系统设计3.1 用例设计3.1.1 森林园区基础系统用例设计3.1.2 森林预警数据用例设计 3.2 数据库设计3.2.1 烟雾…

Oracle数据字典学习1

之前查看了几个用户的默认表空间,是从user_users来查看的; 根据资料; ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA; 许多数据字典视图包含相似的信息; USER_…

读书笔记之《运动改造大脑》:运动是最佳的健脑丸

《运动改造大脑》的作者是约翰•瑞迪(John Ratey) / 埃里克•哈格曼(Eric Hagerman),原著名称为:Spark:the revolutionary new science of exercise and the brain,于 2013年出版约翰…

C语言第二十二弹---指针(六)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 指针 1. 回调函数是什么? 2、qsort使用举例 2.1、使用qsort函数排序整型数据 2.2 使用qsort排序结构体数据 3、qsort函数的模拟实现 总结 1. 回…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)原理

摘要 | Abstract TO-BE-FILLED 1.前言 | Introduction 近期想深入了解语音识别(ASR)中隐马尔可夫模型(HMM)和深度神经网络-隐马尔可夫(DNN-HMM)混合模型,但是尽管网络上有许多关于DNN-HMM的介绍,如李宏毅教授的《深度学习人类语言处理》[1],…

Minecraft的红石教程之电梯

一.前言 我记得是上初中的时候,就看到了这类电梯。现在我在看现在这类电梯的相关视频,大多是盗用创意未能领会其中的红石运作规律,于是我就删繁就简写了这篇。 二.步骤 1.材料 粘性活塞,黏液块,红石,红…

Mac电脑清空特别大型旧文件如何一键清理?

在我们的数字生活中,Mac电脑常常承载着大量个人资料和重要文件。但当我们决定把自己的Mac送给亲人或朋友使用时,面临的首要任务便是彻底且高效地清空所有个人数据,以保证隐私安全。传统的删除方法虽然简单,但往往不能彻底清除所有…

爬虫系列-web请求全过程剖析

🌈个人主页: 会编程的果子君 ​💫个人格言:“成为自己未来的主人~” 上一小节我们实现了一个网页的整体抓取工作,那么本小节,给各位好好剖析一下web请求的全部过程,这样有助于后面我们遇到的各种各样的网站就有了入手…

H5 带网站测速引导页源码

H5 带网站测速引导页源码 源码介绍:一款带网站测速功能的引导页源码 下载地址: https://www.changyouzuhao.cn/10717.html

X图形

1.题目 这道题是蓝桥云课上面的一道题目,它是2022年蓝桥杯省模拟题,题目难度为简单。 考察的知识点为递归。 题目链接:X图形 2.思路 如何理解题意? 蓝桥杯的题目和Leetcode题目最大的不同点在于,蓝桥杯的题目大部…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(2)机器学习

目录 必须理解的知识点: 举一个草莓的例子: 机器学习的三个类别: 监督学习: 无监督学习: 强化学习: 更多知识背景: 机器学习的诞生需求 监督学习的关键技术与实现步骤 无监督学习的关…

C#计算矩形面积:通过定义结构 vs 通过继承类

目录 一、涉及到的知识点 1.结构 2.结构和类的区别 3.继承 4.使用类继承提高程序的开发效率 5.属性 (1)属性定义 (2)get访问器 (3)set访问器 6. 属性和字段的区别 二、实例:通过定义…

专业138+总分400+南京航空航天大学878数电信号考研经验南航电子信息与通信,真题,大纲,参考书

经过一年的复习,顺利被南京航空航天大学录取,初试专业课878数字电路和信号与系统138,总分400,回看这一年的复习,从择校到考研备考经历了很多,也有很多想和大家分享的复习经验,希望对大家复习有所…

网络的基本概念和socket编程

网络的基本概念 1.协议1.1 协议的基本概念1.2 常见的协议 2.分层模型2.1网络七层OSI 7层模型:物数网传会表应(口诀)2.2TCP/IP模型2.3数据通信的过程2.4网络的设计模式2.5以太网帧的格式 3.SOCKET编程3.1网络字节序3.2 相关结构体和函数3.3 代码实现 1.协议 1.1 协议…

【Linux】学习-深入了解文件的读与写

深入了解语言级别(C语言)文件操作的"读"与"写" 在学习前,我们先要知道在Linux下的一个原则:一切皆是文件 如何理解呢?举个外设的例子,比如键盘和显示器,这两个外设也可以其实本质上也是文件&…

springboot+vue电影推荐系统 java电影院售票选座系统1r6m2

用户模块 1)注册:用户输入账号、密码、确认密码、昵称、手机、邮箱、简介,点击注册按钮,完成注册。 2)登录:用户成功输入用户账号和密码,点击登录按钮。 3)用户主页面:以用户登录成功后,可以查看…

基于vue+node.js的校园跳蚤市场系统多商家

校园跳蚤市场系统可以在短时间内完成大量的数据处理、帮助用户快速的查找校园跳蚤市场相关信息,实现的效益更加直观。校园跳蚤市场系统中采用nodejs技术和mysql数据库。主要包括管理员、发布者和用户三大部分,主要功能是实现对个人中心、用户管理、发布者…

机器学习复习(8)——逻辑回归

目录 逻辑函数(Logistic Function) 逻辑回归模型的假设函数 从逻辑回归模型转换到最大似然函数过程 最大似然函数方法 梯度下降 逻辑函数(Logistic Function) 首先,逻辑函数,也称为Sigmoid函数&#…

Peter算法小课堂—单调队列

祝大家新年快乐! 今天这一次有点简单。 单调队列有两个要点,一个是单调,另一个就是我们的队列。 听到队列,我相信大家一定会想到它的好朋友BFS吧。但是……今天……可……没……那么……简单哦。 西佳佳偶像天团1 题目描述 …