我正在尝试集中来自不同系统的日志。
我在一台服务器(名为 elk)上安装了 Elastick Stack(Elasticsearch、Logstash、Kibana)和 WAZUH OSSEC。
我已经在三台 ubuntu 服务器上安装了 OSSEC 代理,并且能够检查日志和文件完整性。
但是,我如何才能从 pfSense 获取日志?我尝试通过编译来安装 OSSEC 代理,但这并不容易……我原本想通过远程系统日志来安装,但似乎行不通……
在 pfSense 界面 -> 状态 -> 系统日志 -> 设置中,我将我的 elk 的地址和端口放在远程日志服务器字段中,并在 elk 的 /var/ossec/etc/ossec.conf 中添加了这些:
<remote>
<connection>syslog</connection>
<port>514</port>
<protocol>udp</protocol>
<allowed-ips>192.168.2.0/24</allowed-ips>
<local_ip>192.168.2.4</local_ip>
</remote>
但是当我使用 Kibana 将 pfSense 可视化时,我没有收到任何日志...您知道如何让它工作吗?
答案1
尝试运行tcpdump
以确认您的 pfSense 设备确实有流量。例如,您可以运行以下命令:
tcpdump -nni eth0 port 514 -s 0 -AA
这将向您显示数据包头和有效负载。
尝试检查ossec-remoted
进程是否正在监听传入流量。你可以运行以下命令进行检查:
netstat -nap | grep 514
此外,作为我个人喜欢的另一个选项,您可以使用(在 Wazuh 服务器上)Rsyslog 守护程序来收集 Syslog 数据并将其转储到文件中。
然后,您可以配置 Wazuh 服务器日志收集器组件来读取该日志文件,以便 Wazuh 和分析引擎也可以处理它。
一个很好的工具,用于监控 Rsyslog 是否正在写入文件以及 ossec-logcollector 组件是否正在读取它正在运行lsof
。例如:
lsof /var/log/your_syslog_file.log
要使用 Rsyslog,您需要配置它来监听远程数据,并配置将日志写入文件的规则。规则示例如下:
if ($fromhost == '192.168.98.1') and ($msg contains 'pfSense') then -/var/log/your_syslog_file.lgo
如果你选择这种方式,为了避免冲突,记得禁用ossec-remote sysl