rsyslog服务搭建
1.日志服务器的应用场景
1.1目的
为了方便日志监控和防止日志被篡改,我们可以使用rsyslog搭建日志服务器用于存放其他服务器的日志。
对于入侵排查工作来说,操作系统的认证日志、计划任务日志和历史命令都是非常重要的。我们把各个系统的相应日志保存到专门的rsyslog日志服务器,保存日志的路径格式为:源IP地址/设施名(日志类别)、年月.log。
1.2平台及工具版本
软件:rsyslog
日志客户端(发送端):CentOS 7(负责发送日志到远程日志服务器,支持udp,tcp,relp协议。)
日志服务器(接收端):CentOS 7(负责接收客户端发来的日志并存储在本地,支持文件存储和数据库存储方式。)
2.操作步骤
2.1日志客户端配置
1、 发送认证和计划任务日志(auth、authpriv、cron)
vi /etc/rsyslog.conf //编辑rsyslog服务配置文件,文件末尾加入一行 auth.;authpriv.;cron.* @192.168.43.234:514一个@代表通过UDP协议发送日志,
两个@@代表以tcp方式传送日志。
与UDP相比,TCP传输的方式更加稳定一些。保存退出。认证和计划任务日志在本地保存的同时,还会保存到远程日志服务器。
2、 发送历史命令
(1)配置发送root账户的历史命令
vi /root/.bashrc //编辑root的配置文件,在文件末尾加入下面的内容function log2syslog
{declare commandcommand=$(fc -ln -0)logger -p local1.notice -t bash -i — $USER : "$command"}
trap log2syslog DEBUG
保存退出
fc是shell的内置命令,作用是获取命令历史,$(fc -ln -0)返回最近执行的一条命令。
logger命令将消息发送到系统日志,-p设置消息的设施名为local1,优先级为notice。
注意在$command两端需要有双引号。
(2)配置发送普通用户的历史命令
vi /home/sec/.bashrc //编辑sec用户的配置文件,在文件末尾加入下面的内容
function log2syslog
{declare commandcommand=$(fc -ln -0)logger -p local1.notice -t bash -i — $USER : "$command"
}trap log2syslog DEBUG
保存退出
(3)修改用户配置模板
vi /etc/skel/.bashrc //编辑用户配置模板目录中的.bashrc文件,加入下面的内容
function log2syslog
{declare commandcommand=$(fc -ln -0)logger -p local1.notice -t bash -i — $USER : "$command"
}
trap log2syslog DEBUG
保存退出。该文件修改后,系统所创建的新用户,其.bashrc文件中都会含有上述发送历史命令的的指令。
3、 配置rsyslog服务
vi /etc/rsyslog.conf //编辑配置文件
//将local1.none加入下面的行
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
//local1.none的意思是,设施名为local1的消息不写入本行指定的文件。这样,messages文件中就不会保存本地用户的历史命令了。(命令历史默认已经保存到用户的.bash_history文件中了)
配置术语:
facility:中文翻译过来是设施的意思,从功能或程序上对日志分类,
在Linux中常见的facility有:
auth(认证相关的日志),authpriv(授权相关的日志),cron(计划任务相关日志),
daemon(系统服务相关日志),ftp(ftp服务相关的日志),kern(内核相关日志),
lpr(打印相关的日志),mail(邮件相关日志),news(新闻相关的日志),
security(安全相关的日志),user(用户相关的日志),uucp(文件copy相关的日志),
local0-local7(自定义相关的日志)priority:优先级别,从低到高排序:
debug(调试),
info(消息),
notice(注意),
warn(warning警告),
err(error错误),
crit(critical严重警告),
alert(需要立即修改的信息)
emerg(panic内核崩溃,内核恐慌等严重的信息)
//文档末尾加入一行,将历史命令发往日志服务器
local1.notice @@192.168.43.234:514
保存退出。
systemctl restart rsyslog //重启服务,使配置更改生效
2.2 日志服务器配置
1、 rsyslog服务配置
vi /etc/rsyslog.conf //取消下面两行的注释#TCP和UDP可以被同时生效来监听TCP/UDP 连接。这里只使用了TCP
$ModLoad imtcp$InputTCPServerRun 514#创建日志接收模板
//注释掉原有的ActionFileDefaultTemplate指令(使用传统的格式)#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat//使用自定义的时间格式$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"$ActionFileDefaultTemplate myformat//在RULES段的前面写入下面的行$template local1_path, "/var/log/%FROMHOST-IP%/bash_history/%$YEAR%%$MONTH%.log"$template remote_path, "/var/log/%FROMHOST-IP%/%syslogfacility-text%/%$YEAR%%$MONTH%.log"if $fromhost-ip != '127.0.0.1' and $syslogfacility-text == 'local1' then ?local1_path& ~if $fromhost-ip != '127.0.0.1' then ?remote_path& ~
保存退出。
$template定义了两个模板,名称分别为local1_path和remote_path,模板名称后面指定了将消息保存到的日志文件的路径。
if开头的指令是基于表达式的过滤器。第一条if指令的意思是,如果日志消息的来源IP地址不是本机,且消息的syslogfacility-text为local1,那么将这条消息写入由模板local1_path对应的文件。
& ~的含义是让满足上面过滤器条件的消息不再匹配后续的规则。默认情况下,日志消息会按顺序匹配rsyslog.conf中的每条规则。& ~在这里会让消息跳过后面的规则,这样这条消息就不会再被写入其他的日志文件了。
第二条if开头的指令将来自于本机之外的所有日志消息(由于前面的& ~,满足这个条件的只有auth、authpriv和cron消息)写入remote_path所对应的文件。
2、配置/etc/sysconfig/rsyslog
修改配置文件中SYSLOGD_OPTIONS=" -m 0" 添加“ -r选项”即可
目的可以让服务器能够接受客户端传来的数据
3、重启rsyslog服务
systemctl restart rsyslog //重启服务
2.3 配置防火墙
作为日志服务器,需要开启访问端口。(或者直接关闭防火墙)
//开放514 tcp 端口
firewall-cmd --zone=public --add-port=514/tcp
2.4测试
在客户端发送一条日志信息
//发送一条info级别或以上级别的日志
logger -p "mail.info" "this is test log"
在日志服务器 /var/log目录下
tail -f messages
注意:
不管在任何情况下,都不要配置rsyslog客户端将日志消息通过不安全的网络转发,或者,特别是通过互联网转发,因为syslog协议是一个明文协议。要进行安全传输,可以考虑使用TLS/SSL来加密日志消息的传输。
rsyslog服务搭建相关推荐
- yum源及yum仓库服务搭建讲解
说明:本文来自老男孩linux运维实战培训-高级架构师班学生分享内容 人人都是讲师-学生分享-yum源及yum仓库服务搭建讲解(郑同学,向潘同学点评,老男孩点评) 第一次观看本视频前,建议博友先观看: ...
- (十五)Java springcloud B2B2C o2o多用户商城 springcloud架构-commonservice-sso服务搭建(一)...
2019独角兽企业重金招聘Python工程师标准>>> 前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行 ...
- (十一)java版spring cloud+spring boot+redis多租户社交电子商务平台- commonservice-sso服务搭建(一)...
电子商务平台源码请加企鹅求求:一零三八七七四六二六.前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行commonservi ...
- sftp进入指定目录_CentOS7服务搭建----搭建SFTP(安全文件传送协议)服务器
SFTP协议服务器 简介: sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp有着几乎一样的语法和 ...
- CentOS 6.7 Gitolite 服务搭建及TortoiseGit配置连接
咳咳~好几天没写博文啦,这几天都在研究Git,没办法公司要要抛弃SVN转站Git,废话就不多说,下面我们进行操作演示: 环境:之前搭建的Redis-Master服务器一枚,配置一般般~ 工具:Tort ...
- rsyslog服务日志报错分析1
客户问题: 最近对服务器进行日志检查时,发现部分主机的rsyslog服务状态有报错,报错详情如下 排查过程: 1.从报错截图来看,报错主要发生在文件'/usr/lib64/rsyslog/omazur ...
- Linux系列-Red Hat5平台下的LAMP网站服务搭建(四)
Linux系列-Red Hat5平台下的LAMP网站服务搭建(四)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com: ...
- base64图裁剪 php_世界上最好的编程语言PHP图层裁剪服务搭建详解
IT技术研习社,专注互联网技术研究与分享,喜欢的朋友可以点击[关注]:把经验传递给有梦想的人: PHP图像裁剪服务搭建 概述 每一个做过WEB程序开发的程序员(比如,博客.电商),应该都有这样的体验, ...
- Centos RSYNC服务搭建
前言: 总结下RSYNC服务搭建 介绍: Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件. 特点: 能更新整个目录和树和文件系统 ...
最新文章
- 计算机视觉>>PCV安装和使用
- 几个UI Prototype应用的使用感受
- 字符串作为freemarker模板的简单实现例子
- python3 下划线的5中含义
- j详细说明ava于clone办法
- c语言编程TLC2543AD采集,AD转换器TLC2543编程
- (Linux 日常命令)[20171225]
- 【线性代数的本质|笔记】抽象几何空间、克莱姆法则及其几何解释
- oracle没有卸载,oracle卸载没有正确卸载怎么办?
- C++ struct内部定义函数
- 看雪CTF.TSRC 2018 团队赛 第二题 半加器 writeup
- Unity3D 回合制 网上源码 目前还在研究构思
- python汽车租赁程序_python数据分析实例:共享单车租用影响因素探索
- 【Linux】Alibaba Cloud Linux 3 中第二硬盘、MySQL8.*、MySQL7.*、Redis、Nginx、Java 系统安装
- qsort vs sort
- 【OpenPose 学习笔记-01】OpenPose下examples的使用与解读
- 著名数学家龚升的论述揭示高中“函数近代严格定义” 有非常明显错误
- 【MyBatis-Plus】简介 入门案例
- c语言中变量后面加上f,C语言的数据类型
- 飞天诚信(ROCKEY 4)加密狗的特点介绍。
热门文章
- RISC-V扩展指令示例
- 联想拯救者2020R7000双系统装机记录_自用
- Java代码实现非对称加密RSA算法示例
- amd、cmd、esmodule、commonjs区别
- ESP32 HTTP 使用入门
- arrayToJson将数组转化为json格式的js代码
- 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)
- 微信小程序云开发csv导入数据库中文乱码问题解决
- 〖Web全栈开发③〗—HTTP协议和静态web服务器
- 自回归滞后模型进行多变量时间序列预测