Linux学习|Gentoo/Arch/FreeBSDLinuxIT狗工作室

第9篇:Linux rsyslog日志服务

2020-03-08  本文已影响0人  铁甲万能狗

我们前一篇文章已经配置了常用的DDoS防御规则,遗留的问题是没有做任何实质性的防火墙日志记录,我们需要根据防火墙日志最终那些长期攻击的源头。并且将其ban掉。

为了使Unix/Linux管理员能够识别或分析CentOS 8或RHEL 8服务器上的问题,我们可以从/var/log目录下的日志文件中了解并查看特定时间段内服务器上发生的事件非常重要。


Unix/Linux上的Syslog(系统日志协议)服务可以充当网络上的企业骨干网络中的日志监视点,在该网络上,所有服务器,网络设备,交换机,路由器和内部服务均会创建日志,无论是链接到特定内部问题还是仅提供信息性消息 可以发送他们的日志到这台syslog服务器上。在CentOS/RHEL8服务器上,不论你选择何种安装模式, rsyslog守护程序默认安装的,它最重要的日志服务器进程.但默认的/etc/rsyslog.conf配置文件是不会让rsyslog进程闲置不干任何事情,一会我们会配置它

查看rsyslog运行状态

systemctl status syslog

安装Rsyslog实用程序后,您现在可以通过打开主配置文件/etc/rsyslog.conf将rsyslog配置为集中式日志记录服务器,以便接收外部客户端的日志消息。

vi /etc/rsyslog.conf

在/etc/rsyslog.conf配置文件中,查找第19-20行并取消注释以下行,以便其他设备将日志消息通过UDP协议的514端口传输到rsyslog服务器上


在企业内网中,我们没必要使用tcp传输日志消息,因为udp协议没有tcp开销,它使数据传输比tcp协议快。 然而要通过公共网络将日志消息传输到核心站点的日志服务器中,udp协议不能保证传输数据的可靠性。此时可能需要考虑使用tcp了,此时可以考虑取消注释的24-25行。

接下来,需要创建一个用于接收远程消息的新模板,因为该模板将指导本地Rsyslog服务器,并在其中保存由Syslog网络客户端发送的接收消息。

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

$template RemoteLogs选项用于告知rsyslog守护进程基于客户端名称和远程客户端应用程序收集所有传输的日志消息并将其写入不同的文件,远程客户端应用程序基于模板配置中添加的概述属性创建了这些消息:%HOSTNAME%和%PROGRAMNAME%。
所有接收到的日志文件都将写入本地文件系统,并保存在/var/log/目录中,文件名以客户端的主机名命名。

&〜-_ 重定向规则指示本机Rsyslog服务器停止进一步处理收到的日志消息并删除消息(而不是将它们写入内部日志文件)。RemoteLogs是为此模板指令指定的任意名称。 您可以使用最适合您模板的任何名称。

要配置更复杂的Rsyslog模板,请通过运行man rsyslog.conf命令阅读Rsyslog配置文件手册

man rsyslog.conf

完成上述配置更改后,可以运行以下命令来重新启动Rsyslog守护程序,以应用最新更改。

systemctl restart rsyslog

重新启动Rsyslog服务器后,它现在应充当集中式日志服务器,并记录来自Syslog客户端的消息。 要确认Rsyslog网络套接字,请运行netstat命令并使用grep实用工具过滤rsyslog字符串

netstat -tulpn | grep rsyslog

如果您在CentOS / RHEL 8中激活了SELinux,请运行以下命令以允许rsyslog通信,具体取决于网络套接字类型。

semanage port -a -t syslogd_port_t -p udp 514
semanage port -a -t syslogd_port_t -p tcp 514

如果系统上有活动的防火墙,请运行以下命令以添加所需的规则,以允许在Firewalld中的端口上进行rsyslog通信。

就这样! Rsyslog现在配置为集中式日志服务器,可以从远程客户端收集日志。

配置日志客户端

因为能够创建日志的客户端设备比较繁杂,这里仅以Linux操作系统为例,其实就非常简单,在客户机中编辑/etc/rsyslog.conf,在文件的末尾追加,服务器的socket信息,按照如下格式填写

*.* @<日志服务器的ip>:514
*.* @@<日志服务器的ip>:514
上一篇 下一篇

猜你喜欢

热点阅读