Linux Rsyslog日志服务器部署宝典:Linux、Windows及网络设备日志一网打尽

Linux Rsyslog日志服务器部署宝典:Linux、Windows及网络设备日志一网打尽

1 Rsyslog日志服务器简介

1.1 目的

为了方便日志监控和防止日志被篡改,我们可以使用rsyslog搭建日志服务器用于存放其它服务器的日志。
对于入侵排查工作来说,操作系统的认证日志、计划任务日志和历史命令都是非常重要的。我们把各个系统的相应日志保存到专门的rsyslog日志服务器,保存日志的路径格式为:源IP地址/设施名(日志类别)、年月.log。

1.2 平台及软件

名称IP操作系统版本软件备注
日志服务器端10.165.42.71CentOS Linux release 7.9.2009 (Core)rsyslog负责接收客户端发来的日志并存储在本地,支持文件存储和数据库存储方式。
Linux客户端10.165.42.72CentOS Linux release 7.9.2009 (Core)rsyslog负责发送日志到远程日志服务器,支持udp,tcp,relp协议。
Windows客户端10.165.42.75Windows Server 2012 R2 Standardrsyslog负责发送日志到远程日志服务器,支持udp,tcp,relp协议。

2 Rsyslog服务端安装及配置(日志服务器)

2.1 安装Rsyslog

# yum install rsyslog -y

2.2 配置Rsyslog

编辑配置文件:

# vi /etc/rsyslog.conf
2.1.1 取消下面4行的注释

TCP和UDP可以被同时生效来监听TCP/UDP 连接。

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
2.1.2 创建日志接收模板

注释掉原有的ActionFileDefaultTemplate指令(使用传统的格式)

#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
2.1.3 使用自定义的时间格式
$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myformat
2.1.4 在RULES段的前面写入下面的行
$template local1_path, "/infook/rsyslog/%FROMHOST-IP%/bash_history/%$YEAR%%$MONTH%.log"
$template remote_path, "/infook/rsyslog/%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
& ~
2.1.5 保存退出

命令行模式下。

:x

img 说明:

$template定义了两个模板,名称分别为local1_path和remote_path,模板名称后面指定了将消息保存到的日志文件的路径。

if开头的指令是基于表达式的过滤器。第一条if指令的意思是,如果日志消息的来源IP地址不是本机,且消息的syslogfacility-text为local1,那么将这条消息写入由模板local1_path对应的文件。

& ~的含义是让满足上面过滤器条件的消息不再匹配后续的规则。默认情况下,日志消息会按顺序匹配rsyslog.conf中的每条规则。& ~在这里会让消息跳过后面的规则,这样这条消息就不会再被写入其他的日志文件了。

第二条if开头的指令将来自于本机之外的所有日志消息(由于前面的& ~,满足这个条件的只有auth、authpriv和cron消息)写入remote_path所对应的文件。

2.3 重启Rsyslog服务

# systemctl restart rsyslog

2.4 配置防火墙

作为日志服务器,需要开启访问端口。(或者直接关闭防火墙)
开放514端口

# firewall-cmd --zone=public --add-port=514/tcp
# firewall-cmd --zone=public --add-port=514/udp

3 Linux客户端安装及配置

3.1 安装Rsyslog

# yum install rsyslog -y

3.2 配置Rsyslog

3.2.1 配置日志发送

编辑配置文件:

# vi /etc/rsyslog.conf

编辑rsyslog服务配置文件,文件末尾加入一行

*.* @@10.165.42.71:514

保存退出。认证和计划任务日志等在本地保存的同时,还会保存到远程日志服务器。

img 配置术语说明:
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内核崩溃,内核恐慌等严重的信息)

一个@代表通过UDP协议发送日志,
两个@@代表以tcp方式传送日志。
与UDP相比,TCP传输的方式更加稳定一些。

3.2.2 将客户端执行的所有命令写入系统日志中

编辑/etc/bashrc

# vi /etc/bashrc

文件底部添加一行,加入以下内容

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

设置使其生效

# source !$

3.3 重启Rsyslog服务

重启服务,使配置更改生效

# systemctl restart rsyslog

3.4 测试验证

3.4.1 在客户端发送一条日志信息

发送一条info级别或以上级别的日志

# logger -p "mail.info" "this is test log"
3.4.2 在日志服务器 /var/log目录下
# tail -f /infook/rsyslog/10.165.42.72/mail/<yyyymm>.log

img 说明:
不管在任何情况下,都不要配置rsyslog客户端将日志消息通过不安全的网络转发,或者,特别是通过互联网转发,因为syslog协议是一个明文协议。要进行安全传输,可以考虑使用TLS/SSL来加密日志消息的传输。

4 Windows 客户端安装及配置

在Windows环境下,要安装和配置Rsyslog Agent,您可以按照以下步骤操作:

4.1 下载Rsyslog Windows版本

访问 https://www.rsyslog.com/windows-agent/windows-agent-download/ 并下载最新的Rsyslog MSI安装程序。

image-20240510105404936

4.2 安装Rsyslog

4.2.1 双击下载的rsyslogwa.exe

image-20240510113441381

4.2.2 点击是(Y)

image-20240510113551432

4.2.3 点击Next

image-20240510113746144

4.2.4 选择I accept the terms in the license agreement,点击Next

image-20240510113820676

4.2.5 设置安装路径,点击Change…

image-20240510113850801

4.2.6 设置安装路径,点击Ok

image-20240510113934454

4.2.7 点击Next

image-20240510114023417

4.2.8 选择Complete,点击Next

image-20240510131923501

4.2.9 点击Install

image-20240510114446203

4.2.10 点击Finish

image-20240510114523523

4.3 配置Rsyslog

4.3.1 方法一:

打开RSyslog Windows Agent Configuration,依次展示RuleSets—>Default RuleSet—>ForwardSyslog—>Actions—>Rsyslog,进行Rsyslog转发配置,并启用服务。

image-20240510132249802

image-20240510132345070

image-20240510132429001

image-20240510132515222

4.3.2 方法二:

打开Rsyslog配置文件 rsyslog.conf,通常位于 D:\Program Files\rsyslog\ 目录下。

例如,如果您想将日志发送到远程的Rsyslog服务器,您可以在配置文件中添加如下行:

*.* @@10.165.42.71:514

其中10.165.42.71是Rsyslog服务器的IP地址,514 是默认的Rsyslog端口。

4.4 重启Rsyslog服务

可以通过服务管理器(services.msc)来重启Rsyslog服务,或者使用命令行:

net stop rsyslog && net start rsyslog

4.5 验证配置并测试连接

4.5.1 方法一:

打开RSyslog Windows Agent Configuration,在Tools—> Stslog Test Message,配置Syslog Server服务器地址,点击Send,进行测试。

image-20240510133019641

image-20240510132825567

4.5.2 方法二:

确保Windows防火墙允许Rsyslog通过514端口发送和接收信息。您可以使用 telnet 命令测试与远程服务器的连接:

telnet 10.165.42.71 514

其中10.165.42.71是Rsyslog服务器的IP地址,514 是默认的Rsyslog端口。

image-20240510133216086

5 网络设备客户端配置

5.1 Huawei

<Huawei> system-view
[Huawei] info-center loghost source Vlanif99
[Huawei] info-center loghost 10.165.42.71 facility local5

5.2 H3C

<H3C> system-view
[H3C] info-center loghost source Vlan-interface99
[H3C] info-center loghost 10.165.42.71 facility local6

5.3 Cisco

Cisco>
Cisco> enable
Cisco# config terminal
Cisco(config)# logging on
Cisco(config)# logging 10.165.42.71 
Cisco(config)# logging facility local4
Cisco(config)# logging source-interface e0

5.4 Ruijie

Ruijie>
Ruijie> enable
Ruijie# config terminal
Ruijie(config)# logging buffered warnings
Ruijie(config)# logging source interface VLAN 99
Ruijie(config)# logging facility local6
Ruijie(config)# logging server 10.165.42.71

image-20240510181916065说明:

10.165.42.71为rsyslog服务器的IP。

原文链接:https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247491966&idx=1&sn=074fd3cccb868974d209159eb47baa41&chksm=c141f7b4f6367ea299b18052ce0e85c2606c98cb400514fbde1fcd6fef41d0895ac0d160eff4#rd

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值