在某种场景下,无法接入日志审计设备,本文提供一种方式,可通过搭建简易日志中转服务器,收集到该环境下的日志后,再将其导入日志审计设备中。
0x1 开启服务
rsyslog守护进程来自于当前的linux发布版本的预装模块,但是默认并没有启动。为了能够让rsyslog守护进程能够接受外部的消息,需要编辑其配置文件/etc/rsyslog.conf.
vi /etc/rsyslog.conf
打开服务通信端口,UDP:514、TCP:514(为方便排查问题可改为515)
0x2 创建日志接收模板
在GLOBAL DIRECTIVE块前追加以下的模板
vi /etc/rsyslog.conf
#以下实现以时间创建目录
#$template RemoteLogs,"/var/log/log_audit/%$YEAR%-%$MONTH%-%$DAY%/%HOSTNAME%/%PROGRAMNAME%.log" *
*.* ?RemoteLogs
& ~
在此对该模板进行简单解释,
- 第一行:指令使rsyslog后台进程将日志消息写到/var/log下的单独的本地日志文件中,其中日志文件的名称是基于远程日志发送机器的主机名以及生成该日志的应用程序名进行定义的。
- 第二行:将RemoteLogs模板应用到所有接收到的日志上。
- 第三行:符号"& ~"表示了一个重定向规则,告知rsyslog守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重定向规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。
若端口不连通,可查看是否防火墙阻拦
关闭防火墙
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
查看默认防火墙状态
firewall-cmd --state
参考:https://www.cnblogs.com/daiss314/p/13221247.html