Suricata 是一种网络监控工具,可检查和处理流经服务器的每个互联网流量数据包。它可以生成日志事件、触发警报并在检测到任何可疑活动时丢弃流量。
您可以在单台计算机上安装 Suricata 以监控其流量,也可以将其部署在网关主机上以扫描连接到它的其他服务器的所有传入和传出流量。您可以将 Suricata 与 Elasticsearch、Kibana 和 Filebeat 结合起来创建安全信息和事件管理 (SIEM) 工具。
在本教程中,您将在 Rocky Linux 9 服务器上安装 Suricata IDS 和 ElasticStack。堆栈的各个组件包括:
- Elasticsearch 用于存储、索引、关联和搜索来自服务器的安全事件。
- Kibana 显示 Elasticsearch 中存储的日志。
- Filebeat 解析 Suricata 的
eve.json
日志文件并将每个事件发送到 Elasticsearch 进行处理。 - Suricata 扫描网络流量查找可疑事件并丢弃无效数据包。
本教程分为两部分,第一部分将介绍 Suricata 的安装和配置,第二部分将介绍 Elastic Stack 的安装和配置。
在我们的教程中,我们将在不同的服务器上安装 Suricata 和 Elastic stack。
先决条件
- 托管 Elastic Stack 和 Suricata 的服务器应至少具有 4GB RAM 和 2 个 CPU 核心。
- 服务器应该能够使用私有 IP 地址进行通信。
- 服务器应使用非 root sudo 用户运行 Rocky Linux 9。
- 服务器应该更新。
$sudo dnf 更新
- 如果您想从任何地方访问 Kibana 仪表板,请设置一个
kibana.example.com
指向将安装 Suricata 的服务器的域 ( )。 - 在两台服务器上安装必要的软件包。
$sudo dnf install yum-utils nano curl wget policycoreutils-python-utils -y
第 1 部分第 1 步 – 安装 Suricata
要安装 Suricata,您需要将开放信息安全基金会 (OISF) 的软件包存储库添加到您的服务器。
$sudo dnf install 'dnf-command(铜)' $sudo dnf Copper 启用@oisf/suricata-7.0
copr
第一个命令为软件包安装程序启用社区项目 ( ) dnf
。第二个命令允许将 OISF 存储库添加到您的系统中。suricata-7.0
使存储库能够访问该软件的最新稳定版本。每次出现提示时请按y
和。ENTER
接下来,添加 EPEL 存储库。
$sudo dnf install -y epel-release dnf-plugins-core
安装Suricata。
$sudo dnf install -y suricata
启用 Suricata 服务。
$sudo systemctl 启用 Suricata
第 2 步 – 配置 Suricata
Suricata 将其配置存储在/etc/suricata/suricata.yaml
文件中。 Suricata 的默认模式是 IDS(入侵检测系统)模式,其中仅记录流量而不停止。如果您是 Suricata 新手,则应保持模式不变。配置完毕并了解更多信息后,您可以打开 IPS(入侵防御系统)模式。
启用社区 ID
社区 ID 字段使不同监控工具生成的记录之间的数据关联更加容易。由于我们将使用 Suricata 和 Elasticsearch,因此启用社区 ID 会很有帮助。
打开文件/etc/suricata/suricata.yaml
进行编辑。
$sudo nano /etc/suricata/suricata.yaml
找到该行# Community Flow ID
并将变量的值设置community-id
为true
。
。 。 。 # 社区流ID # 将“community_id”字段添加到 EVE 记录中。这些是为了给 # 记录可预测的流 ID,可用于将记录与 # 其他工具的输出,例如 Zeek (Bro)。 # # 采用需要在传感器和工具之间保持相同的“种子” # 使 id 更难以预测。 # 启用/禁用社区 ID 功能。 社区 ID:true 。 。 。
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
现在,您的事件将带有一个 ID 1:S+3BA2UmrHK0Pk+u3XH78GAFTtQ=
,您可以使用该 ID 来匹配不同监控工具中的数据集。
选择网络接口
默认 Suricata 配置文件检查eth0
设备/网络接口上的流量。如果您的服务器使用不同的网络接口,您将需要在配置中更新该接口。
使用以下命令检查网络接口的设备名称。
$ip -p -j 路由显示默认值
您将收到如下输出。
[{ “dst”:“默认”, “网关”:“172.31.1.1”, “dev”:“eth0”, “协议”:“DHCP”, “首选项”:“65.108.61.177”, “公制”:100, “标志”:[] }]
该dev
变量指的是网络设备。在我们的输出中,它显示eth0
为网络设备。根据您的系统,您的输出可能会有所不同。
现在您知道了设备名称,请打开配置文件。
$sudo nano /etc/suricata/suricata.yaml
找到第 580 行周围的行af-packet:
。在其下,将变量的值设置interface
为系统的设备名称。
# Linux 高速捕获支持 拆包: - 接口:eth0 # 接收线程数。“auto”使用核心数 #线程:自动 # 默认集群ID。 AF_PACKET将根据流量对数据包进行负载平衡。 集群 ID:99 。 。 。
如果您想添加其他接口,可以通过将它们添加到该部分底部第af-packet
650 行左右的位置来实现。
要添加新接口,请将其插入该- interface: default
部分的正上方,如下所示。
# 对于 eBPF 和 XDP 设置,包括旁路、过滤器和负载平衡,请 # 有关详细信息,请参阅 doc/userguide/capture-hardware/ebpf-xdp.rst。 - 接口:enp0s1 集群 ID:98 ... - 界面:默认 #线程:自动 #使用-mmap:否 #tpacket-v3:是的
我们在示例中添加了一个新接口enp0s1
和变量的唯一值。cluster-id
您需要在添加的每个接口中包含唯一的集群 ID。
找到行pcap:
,并在其下将变量的值设置interface
为系统的设备名称。
# 跨平台 libpcap 捕获支持 聚碳酸酯: - 接口:eth0 # 在 Linux 上,pcap 将尝试使用 mmap 捕获并使用“缓冲区大小” # 作为环使用的总内存。因此将其设置为更大的值 # 超过带宽的 1%。
要像以前一样添加新接口,请将其插入该- interface: default
部分的正上方,如下所示。
- 接口:enp0s1 # 在这里输入默认值 - 界面:默认 #checksum-检查:自动
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
实时规则重新加载
每次添加、删除和编辑其规则时,您都需要重新启动 Suricata。不过,您不需要执行任何操作即可启用它,因为它是默认启用的。
启用实时重新加载后,您可以使用以下命令重新加载规则,而无需重新启动 Suricata 进程。
$sudo Kill -usr2 $(pidof suricata)
该$(pidof suricata)
标志定位 Suricata 进程的进程 ID。-usr2
命令部分向Suricata 进程kill
发送信号。SIGUSR2
该SIGUSR2
信号配置有 Suricata 以重新加载规则。
配置目录权限
suricata
Suricata在安装过程中自动创建了一个名为的系统用户和组。您需要授予适当的目录权限才能使安装正常工作。
运行以下命令设置suricata
为 Suricata 目录的组。
$sudo chgrp -R suricata /etc/suricata $sudo chgrp -R suricata /var/lib/suricata $sudo chgrp -R suricata /var/log/suricata
设置组的读写权限。
$sudo chmod -R g+r /etc/suricata/ $sudo chmod -R g+rw /var/lib/suricata $sudo chmod -R g+rw /var/log/suricata
将当前用户添加到 Suricata 组
suricata
Suricata在安装过程中自动创建了一个名为的系统用户和组。将您当前的用户名添加到suricata组中,以便您可以直接执行操作,而无需sudo。
$sudo usermod -a -G suricata $USER
要应用新的组成员身份,请注销服务器并重新登录,或键入以下内容:
$su - ${USER}
系统将提示您输入用户密码才能继续。
通过键入以下内容确认您的用户现已添加到 suricata 组:
$id-nG 用户名 轮 Suricata
第 3 步 – 配置 Suricata 规则
默认情况下,Suricata 仅使用一组有限的规则来检测网络流量。您可以使用名为 的工具添加来自外部提供商的更多规则集suricata-update
。运行以下命令以包含其他规则。
$suricata-更新 14/4/2024 -- 01:32:58 - -- 使用数据目录 /var/lib/suricata。 14/4/2024 -- 01:32:58 - -- 使用 Suricata 配置 /etc/suricata/suricata.yaml 14/4/2024 -- 01:32:58 - -- 使用 /usr/share/suricata/rules 为 Suricata 提供的规则。 14/4/2024 -- 01:32:58 - -- 在 /usr/sbin/suricata 找到 Suricata 版本 7.0.4。 …… 14/4/2024 -- 01:32:58 - -- 未配置来源,将使用新兴威胁 Open 14/4/2024 -- 01:32:58 - -- 获取 https://rules.emergingthreats.net/open/suricata-7.0.4/emerging.rules.tar.gz。 100% - 4243799/4243799 14/4/2024 -- 01:33:00 - -- 完成。 14/4/2024 -- 01:33:00 - -- 加载分发规则文件 /usr/share/suricata/rules/app-layer-events.rules …… 14/4/2024 -- 01:33:04 - -- 将规则写入 /var/lib/suricata/rules/suricata.rules: 总计: 48646;启用:37144;添加:48646;删除了 0;修改:0 14/4/2024 -- 01:33:04 - -- 编写 /var/lib/suricata/rules/classification.config 14/4/2024 -- 01:33:04 - -- 使用 suricata -T 进行测试。 2024 年 4 月 14 日——01:33:41————完成。
添加规则集提供程序
您可以通过添加更多提供商来扩展 Suricata 的规则。它可以从各种免费和商业提供商获取规则。
您可以使用以下命令列出默认提供商列表。
$suricata-更新列表源
例如,如果您想包含tgreen/hunting
规则集,可以使用以下命令启用它。
$suricata-更新启用源 tgreen/狩猎 2024 年 4 月 14 日——01:37:07————使用数据目录 /var/lib/suricata。 14/4/2024 -- 01:37:07 - -- 使用 Suricata 配置 /etc/suricata/suricata.yaml 2024 年 4 月 14 日——01:37:07————使用 /usr/share/suricata/rules 获取 Suricata 提供的规则。 14/4/2024 -- 01:37:07 - -- 在 /usr/sbin/suricata 找到 Suricata 版本 7.0.4。 14/4/2024 -- 01:37:07 - -- 源索引不存在,将使用捆绑的索引。 14/4/2024 -- 01:37:07 - -- 请运行 suricata-update update-sources。 14/4/2024 -- 01:37:07 - -- 创建目录 /var/lib/suricata/update/sources 14/4/2024 -- 01:37:07 - -- 启用默认源 et/open 2024 年 4 月 14 日 -- 01:37:07 - -- 源 tgreen/hunting 已启用
再次运行该suricata-update
命令以下载并更新新规则。默认情况下,Suricata 可以处理任何规则更改而无需重新启动。
第 4 步 – 验证 Suricata 配置
Suricata 附带了一个验证工具来检查配置文件和规则是否有错误。运行以下命令来运行验证工具。
$suricata -T -c /etc/suricata/suricata.yaml -v 注意:suricata:这是在 SYSTEM 模式下运行的 Suricata 版本 7.0.4 RELEASE 信息:cpu:CPU/核心在线:2 信息:suricata:在测试模式下运行suricata 信息:suricata:默认将引擎模式设置为 IDS 模式 信息:异常策略:主异常策略设置为:自动 信息:logopenfile:快速输出设备(常规)初始化:fast.log 信息:logopenfile:eve-log 输出设备(常规)已初始化:eve.json 信息:logopenfile:统计输出设备(常规)已初始化:stats.log 信息:检测:已处理 1 个规则文件。 37144 条规则加载成功,0 条规则加载失败,0 信息:阈值配置:已解析阈值配置:找到 0 条规则 信息:检测:已处理 37147 个签名。 1194 是仅限 IP 的规则,4892 是检查数据包有效负载,30849 是检查应用层,108 是仅解码器事件 注意:suricata:提供的配置已成功加载。退出。
该-T
标志指示 Suricata 在测试模式下运行,该-c
标志配置配置文件的位置,并且该-v
标志打印命令的详细输出。根据您的系统配置和添加的规则数量,该命令可能需要几分钟才能完成。
第 5 步 – 运行 Suricata
现在 Suricata 已配置并设置完毕,是时候运行该应用程序了。
$sudo systemctl 启动 Suricata
检查进程的状态。
$sudo systemctl 状态猫鼬
如果一切正常,您应该会看到以下输出。
? suricata.service - Suricata 入侵检测服务 已加载:已加载(/usr/lib/systemd/system/suricata.service;启用;预设:禁用) Active:自 UTC 2024-04-14 01:45:43 Sun 起处于活动状态(运行); 4 秒前 文档: man:suricata(1) 进程:6081 ExecStartPre=/bin/rm -f /var/run/suricata.pid(代码=已退出,状态=0/SUCCESS) 主 PID:6082(Suricata-主) 任务:1(限制:22569) 内存:111.8M CPU:4.318秒 CGroup:/system.slice/suricata.service ??6082 /sbin/suricata -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid -i eth0 --用户 suricata 4 月 14 日 01:45:43 suricata systemd[1]:启动 Suricata 入侵检测服务... 4 月 14 日 01:45:43 suricata systemd[1]:启动 Suricata 入侵检测服务。 4 月 14 日 01:45:43 suricata suricata[6082]: i: suricata: 这是在 SYSTEM 模式下运行的 Suricata 版本 7.0.4 RELEASE
您可能会在服务状态中看到以下错误。
4 月 15 日 02:20:13 suricata suricata[5554]: E: logopenfile: 错误打开文件:“/var/log/suricata//fast.log”: 权限被拒绝 4 月 15 日 02:20:13 suricata suricata[5554]:W:运行模式:输出模块“快速”:安装失败 4 月 15 日 02:20:13 suricata suricata[5554]: E: logopenfile: 错误打开文件: “/var/log/suricata//eve.json”: 权限被拒绝 4 月 15 日 02:20:13 suricata suricata[5554]:W:运行模式:输出模块“eve-log”:安装失败 4 月 15 日 02:20:13 suricata suricata[5554]:E:logopenfile:打开文件时出错:“/var/log/suricata//stats.log”:权限被拒绝 4 月 15 日 02:20:13 suricata suricata[5554]: W: 运行模式: 输出模块“统计”: 设置失败
您将需要再次设置权限。
$sudo chown -R suricata:suricata /var/log/suricata
重新启动 Suricata 服务。
$sudo systemctl 重新启动 Suricata
该过程可能需要几分钟才能完成所有规则的解析。因此,上述状态检查并不能完整指示 Suricata 是否已启动并准备就绪。您可以使用以下命令监视日志文件。
$sudo tail -f /var/log/suricata/suricata.log
如果您看到以下几行,则表示 Suricata 正在运行并准备好监控网络流量。
[5577 - Suricata-Main] 2024-04-15 02:22:52 信息:异常策略:主异常策略设置为:自动 [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:ioctl:eth0:MTU 1500 [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:privs:删除了主线程的上限 [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:conf:在实时模式下运行,激活 unix 套接字 [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:logopenfile:快速输出设备(常规)初始化:fast.log [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:logopenfile:eve-log 输出设备(常规)已初始化:eve.json [5577 - Suricata-Main] 2024-04-15 02:22:52 信息:logopenfile:统计输出设备(常规)已初始化:stats.log [5577 - Suricata-Main] 2024-04-15 02:23:03 信息:检测:已处理 1 个规则文件。 37144 条规则加载成功,0 条规则加载失败,0 [5577 - Suricata-Main] 2024-04-15 02:23:03 信息:阈值配置:阈值配置解析:找到 0 条规则 [5577 - Suricata-Main] 2024-04-15 02:23:04 信息:检测:已处理 37147 个签名。 1194 是仅限 IP 的规则,4892 是检查数据包有效负载,30849 是检查应用层,108 是仅解码器事件 [5577 - Suricata-Main] 2024-04-15 02:23:32 信息:运行模式:eth0:创建 2 个线程 [5577 - Suricata-Main] 2024-04-15 02:23:32 信息:unix-manager:unix 套接字 '/var/run/suricata/suricata-command.socket' [5577 - Suricata-Main] 2024-04-15 02:23:32 注意:线程:已创建线程 -> W: 2 FM: 1 FR: 1 引擎已启动。
按 Ctrl + C 退出输出。
第 6 步 – 测试 Suricata 规则
我们将检查 Suricata 是否检测到任何可疑流量。 Suricata 指南建议使用以下命令测试 ET Open 规则编号 2100498。
$curl http://testmynids.org/uid/index.html
您将得到以下响应。
uid=0(root) gid=0(root) groups=0(root)
id
上述命令假装返回可在受感染系统上运行的命令的输出。要测试 Suricata 是否检测到流量,您需要使用指定的规则编号检查日志文件。
$grep 2100498 /var/log/suricata/fast.log
如果您的请求使用了 IPv6,您应该会看到以下输出。
02/22/2022-23:24:33.997371 [**] [1:2100498:7] GPL ATTACK_RESPONSE id 检查返回根 [**] [分类:潜在不良流量] [优先级:2] {TCP} 2600:9000 :2204:5c00:0018:30b3:e400:93a1:80 -> 2a03:b0c0:0002:00d0:0000:0000:0fc2:b001:41468
如果您的请求使用 IPv4,您将看到以下输出。
2022 年 2 月 22 日-23:21:46.783476 [**] [1:2100498:7] GPL ATTACK_RESPONSE id 检查返回根 [**] [分类:潜在的不良流量] [优先级:2] {TCP} 204.246.178.81:80 -> 164.90.192.1:36364
Suricata 还/var/log/suricata/eve.log
使用 JSON 格式将事件记录到文件中。要读取和解释这些规则,您需要安装,jq
但这超出了本教程的范围。
第2部分
我们已经完成了本教程的第一部分,我们安装了 Suricata 并对其进行了测试。下一部分涉及安装 ELK 堆栈并设置它以可视化 Suricata 及其日志。除非另有说明,本教程的第二部分应该在第二台服务器上完成。
第 7 步 – 安装 Elasticsearch 和 Kibana
安装 Elasticsearch 的第一步是将 Elastic GPG 密钥添加到您的服务器。
$sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
通过创建并打开文件/etc/yum/yum.repos.d/elasticsearch.repo
进行编辑来为 Elasticsearch 包创建存储库。
$sudo nano /etc/yum.repos.d/elasticsearch.repo
将以下代码粘贴到其中。
[弹性搜索] name=8.x 包的 Elasticsearch 存储库 baseurl=https://artifacts.elastic.co/packages/8.x/yum gpg检查=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch 启用=0 自动刷新=1 类型=rpm-md
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
安装 Elasticsearch 和 Kibana。
$sudo dnf install --enablerepo=elasticsearch elasticsearch kibana
您每次都需要使用该标志,--enablerepo=elasticsearch
因为我们默认情况下禁用存储库。这可以防止这些软件包的意外升级。
您将在 Elasticsearch 安装中获得以下输出。
--------------------------- 安全自动配置信息 ------------------------------ 已启用身份验证和授权。 传输层和 HTTP 层的 TLS 已启用并配置。 为弹性内置超级用户生成的密码为:ilc+Gju=gZTxQHI4cSkF 如果此节点应加入现有集群,您可以使用以下命令重新配置它 '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token ' 在现有集群上创建注册令牌后。 您可以随时完成以下操作: 使用以下命令重置弹性内置超级用户的密码 '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'。 使用以下命令为 Kibana 实例生成注册令牌 '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'。 为 Elasticsearch 节点生成注册令牌 '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s 节点'。 -------------------------------------------------- -----------------------------------------------------------
使用以下命令找到服务器的私有 IP 地址。
$ip - 简要地址显示 未知 127.0.0.1/8 ::1/128 eth0 向上 37.27.84.123/32 2a01:4f9:c012:db02::1/64 fe80::9400:3ff:fe34:d589/64 eth1 向上 10.0.0.2/32 fe80::8400:ff:fe84:5baf/64
记下服务器的私有 IP(本例中为 10.0.0.2)。我们将其称为your_private_IP
.服务器的公共IP地址(37.27.84.123)将your_public_IP
在剩余的教程中被引用。另外,请记下服务器的网络名称eth1
。
第 8 步 – 配置 Elasticsearch
Elasticsearch 将其配置存储在/etc/elasticsearch/elasticsearch.yml
文件中。打开文件进行编辑。
$sudo nano /etc/elasticsearch/elasticsearch.yml
Elasticsearch 默认情况下仅接受本地连接。我们需要对其进行更改,以便 Kibana 可以通过私有 IP 地址访问它。
找到该行#network.host: 192.168.0.1
并在其正下方添加以下行,如下所示。
# 默认情况下,Elasticsearch 只能在本地主机上访问。设置不同的 # 这里的地址用于在网络上公开该节点: # #网络.主机:192.168.0.1 网络.bind_host:["127.0.0.1", "你的私人IP"] # # 默认情况下,Elasticsearch 在第一个空闲端口上侦听 HTTP 流量 # 从 9200 开始查找。在此处设置特定的 HTTP 端口:
这将确保 Elastic 仍然可以接受本地连接,同时可通过私有 IP 地址供 Kibana 使用。
下一步是打开一些安全功能并确保 Elastic 配置为在单个节点上运行。为此,请在文件末尾添加以下行。
。 。 。 discovery.type:单节点
如果您要使用多个 Elastic 搜索节点,则可以省略它。
另外,通过在前面添加井号 (#) 注释掉以下行。
#cluster.initial_master_nodes: [“弹性”]
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
配置 JVM 堆大小
在启动Elasticsearch之前,我们需要配置Elasticsearch使用的内存。创建并打开/etc/elasticsearch/jvm.options.d/jvm-heap.options
文件进行编辑。
$sudo nano /etc/elasticsearch/jvm.options.d/jvm-heap.options
将以下行粘贴到其中。
-Xms3g -Xmx3g
按 Ctrl + X 并在出现提示时输入 Y 保存文件。在这里,我们给 Elasticsearch 3GB 的空间。根据您的服务器大小选择值。
配置防火墙
为 Elasticsearch 添加适当的防火墙规则,以便可以通过私有网络访问它。
$sudo 防火墙-cmd --permanent --zone=internal --change-interface=eth1 $sudo 防火墙-cmd --permanent --zone=internal --add-service=elasticsearch $sudo 防火墙-cmd --permanent --zone=internal --add-service=kibana $sudo 防火墙-cmd --permanent --add-port=5601/tcp $sudo 防火墙-cmd --reload
确保在第一个命令中选择接口名称,例如您从步骤 7 中获得的名称。上述命令将防火墙的默认区域更改为内部,并为 Elasticsearch 打开端口 9200 和 9300,为 Kibana 打开端口 5601。
启动弹性搜索
现在您已经配置了 Elasticsearch,是时候启动该服务了。
重新加载系统守护进程。
$sudo systemctl 守护进程重新加载
启用并启动 Elasticsearch 服务器。
$sudo systemctl 启用elasticsearch --now
检查服务的状态。
$sudo systemctl 状态 elasticsearch ? elasticsearch.service - Elasticsearch 已加载:已加载(/usr/lib/systemd/system/elasticsearch.service;启用;预设:禁用) Active:自 UTC 时间 2024-04-14 03:51:12 Sun 起处于活动状态(运行); 1分20秒前 文档:https://www.elastic.co 主PID:5987(java) 任务:74(限制:22569) 内存:3.4G CPU:50.532秒 CGroup:/system.slice/elasticsearch.service
创建 Elasticsearch 密码
启用 Elasticsearch 的安全设置后,下一步是生成 Elasticsearch 超级用户的密码。安装期间提供了默认密码,您可以使用,但建议修改它。
运行以下命令重置Elasticsearch密码。选择一个强密码。
$sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i 该工具将重置[elastic]用户的密码。 系统将提示您输入密码。 请确认您想要继续 [y/N]y 输入 [elastic] 的密码: 重新输入 [elastic] 的密码: [elastic] 用户的密码已成功重置。
现在,让我们测试 Elasticsearch 是否响应查询。
$sudo curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200 输入用户“elastic”的主机密码: { “名称”:“弹性”, "cluster_name" : "elasticsearch", “cluster_uuid”:“VSP7LEZURF6SR8I1BPF9RQ”, “版本” : { “数字”:“8.13.2”, "build_flavor" : "默认", “构建类型”:“rpm”, “build_hash”:“16cc90cd2d08a3147ce02b07e50894bc060a4cbf”, “构建日期”:“2024-04-05T14:45:26.420424304Z”, “build_snapshot”:假, “lucene_version”:“9.10.0”, "minimum_wire_compatibility_version": "7.17.0", “最低索引兼容性版本”:“7.0.0” }, "tagline" : "你知道,用于搜索" }
这证实 Elasticsearch 功能齐全且运行顺畅。
第 9 步 – 配置 Kibana
配置 Kibana 的第一步是将 Elasticsearch 证书复制到 Kibana 目录。
$sudo cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/
接下来,xpack
通过生成密钥来启用安全功能。 Kibana 使用这些密钥在 Elasticsearch 中存储数据。可以从该目录访问生成密钥的实用程序/usr/share/kibana/bin
。
$sudo /usr/share/kibana/bin/kibana-加密货币密钥生成-q
该-q
标志抑制命令指令。您将收到如下输出。
xpack.encryptedSavedObjects.encryptionKey:fdce3576894a0a7b12a639a40f643acd xpack.报告.加密货币密钥:92f426be0f487b7d8dd191b86443f2a6 xpack.security.加密货币密钥:34bf00781dbe85d1dcd99dc94ef1c9b7
复制输出。
打开 Kibana 的配置文件进行/etc/kibana/kibana.yml
编辑。
$sudo nano /etc/kibana/kibana.yml
将上一个命令中的代码粘贴到文件末尾。
。 。 。 # 每个分片加载以生成自动完成建议的最大文档数。 # 该值必须是大于零的整数。默认为 100_000 #unifiedSearch.autocomplete.valueSuggestions.terminateAfter:100000 xpack.encryptedSavedObjects.encryptionKey:fdce3576894a0a7b12a639a40f643acd xpack.报告.加密货币密钥:92f426be0f487b7d8dd191b86443f2a6 xpack.security.加密货币密钥:34bf00781dbe85d1dcd99dc94ef1c9b7
配置 Kibana 主机
Kibana 需要进行配置,以便可以通过服务器的私有 IP 地址进行访问。#server.host: "localhost"
在文件中找到该行,然后在其正下方添加以下行,如下所示。
# Kibana 由后端服务器提供服务。此设置指定要使用的端口。 #服务器端口:5601 # 指定Kibana服务器将绑定的地址。 IP 地址和主机名都是有效值。 # 默认值为“localhost”,这通常意味着远程计算机将无法连接。 # 如果允许远程用户连接,请设置为非环回地址。 #server.host:“本地主机” server.host:“您的私有IP”
关闭遥测
Kibana 默认将数据发送回其服务器。这会影响性能并且还会带来隐私风险。因此,您应该关闭遥测。在文件末尾添加以下代码以关闭遥测。第一个设置关闭遥测,第二个设置不允许覆盖 Kibana 中“高级设置”部分的第一个设置。
telemetry.optIn: false telemetry.allowChangingOptInStatus: false
配置 SSL
找到变量elasticsearch.ssl.certificateAuthorities
,取消注释,然后更改其值,如下所示。
elasticsearch.ssl.certificateAuthorities:[ “/etc/kibana/http_ca.crt” ]
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
配置 Kibana 访问
下一步是生成注册令牌,稍后我们将使用该令牌登录 Kibana Web 界面。
$sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana eyJ2ZXIOiI4LjEzLjIiLCJhZHIiOlsiMzcuMjcuODQuMTIzOjkyMDAiXSwiZmdyIjoiMmI2ZjhhOWRiOWJjMDU5NDk0NGE0OGFkMjMxODg2NzYxNTViZGViN2U5YjY4MMY3N2MzYmI3ZDk2Nzc3 YjY0NyIsImtleSI6InppVU0zSTRCOE5lSHBLU3k2T0owOnBLNHJiWjBZVHYybWNTbmxrTXlqbncifQ==
启动 Kibana
现在您已经为 Kibana 配置了安全访问和网络,请启动并启用该进程。
$sudo systemctl 启用 kibana——now
检查状态以查看其是否正在运行。
$sudo systemctl 状态 kibana ? kibana.service - Kibana 已加载:已加载(/usr/lib/systemd/system/kibana.service;已启用;预设:已禁用) Active:自 UTC 2024-04-14 04:25:54 Sun 起处于活动状态(运行); 963 毫秒前 文档:https://www.elastic.co 主 PID:6464(节点) 任务:7(限制:22569) 内存:48.2M CPU:1.238秒 CGroup:/system.slice/kibana.service ??6464 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli/dist 4 月 14 日 04:25:54 elastic systemd[1]:启动 Kibana。 ……
第 10 步 – 访问 Kibana 仪表板
由于 KIbana 配置为仅通过其私有 IP 地址访问 Elasticsearch,因此您有两种访问方式。第一种方法是使用 SSH 隧道从您的 PC 到 Elastic search 服务器。这会将端口 5601 从您的 PC 转发到服务器的私有 IP 地址,您将能够从您的 PC 访问 Kibana,地址为http://localhost:5601
。但这种方法意味着您将无法从其他任何地方访问它。
选项是在您的 Suricata 服务器上安装 Nginx,并将其用作反向代理,通过其私有 IP 地址访问 Elasticsearch 的服务器。我们将讨论这两种方式。您可以根据您的要求选择任意一种方式。
使用 SSH 本地隧道
如果您使用的是 Windows 10 或 Windows 11,则可以从 Windows Powershell 运行 SSH LocalTunnel。在 Linux 或 macOS 上,您可以使用终端。如果尚未配置 SSH 访问,您可能需要配置。
在计算机终端中运行以下命令来创建 SSH 隧道。
$ssh -L 5601:your_private_IP:5601 navjot@your_public_IP -N
- 该
-L
标志指的是本地 SSH 隧道,它将流量从您的 PC 端口转发到服务器。 - 这
private_IP:5601
是您的流量在服务器上转发到的 IP 地址。在这种情况下,请将其替换为您的 Elasticsearch 服务器的私有 IP 地址。 - 这
your_public_IP
是Elasticsearch服务器的公共IP地址,用于打开SSH连接。 - 该
-N
标志告诉 OpenSSH 不要执行任何命令,但只要隧道运行,就保持连接处于活动状态。
现在隧道已打开,您可以通过http://localhost:5601
在 PC 浏览器上打开 URL 来访问 Kibana。您将看到以下屏幕。
只要您需要访问 Kibana,就需要保持命令运行。在终端中按 Ctrl + C 可关闭隧道。
使用 Nginx 反向代理
如果您想从世界任何地方访问仪表板,则此方法最适合。所有这些命令都将在 Elasticsearch 服务器上运行。
安装 Nginx
Rocky Linux 9 附带旧版本的 Nginx。您需要使用官方 Nginx 存储库来安装最新版本。
创建并打开文件/etc/yum.repos.d/nginx.repo
进行编辑。
$sudo nano /etc/yum.repos.d/nginx.repo
将以下代码粘贴到其中。
[nginx-稳定版] name=nginx 稳定仓库 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpg检查=1 启用=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-主线] name=nginx 主线仓库 baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpg检查=1 已启用=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。我们将使用 Nginx 的主线版本,因此通过使用enabled=1
主线部分而不是稳定的部分,在上述文件中启用了主线存储库。您可以选择其中之一。
安装 Nginx。
$sudo dnf 安装-y nginx
验证安装。
$nginx -v nginx版本:nginx/1.25.4
启用并启动 Nginx 服务器服务。
$sudo systemctl 启用 nginx --now
配置防火墙
在继续操作之前,您需要在防火墙中打开 HTTP 和 HTTPS 端口。
$sudo 防火墙-cmd --permanent --add-service=http $sudo 防火墙-cmd --permanent --add-service=https
重新加载防火墙以启用更改。
$sudo 防火墙-cmd --reload
安装和配置 SSL
第一步是安装 Let’s Encrypt SSL 证书。为此,我们需要首先安装 EPEL 存储库。
$sudo dnf install -y epel-release
安装 Certbot 和相应的 Nginx 插件。
$sudo dnf install -y certbot python3-certbot-nginx
为域生成 SSL 证书kibana.example.com
。
$sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d kibana.example.com
上面的命令会将证书下载到/etc/letsencrypt/live/kibana.example.com
服务器上的目录中。
生成 Diffie-Hellman 组证书。
$sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
启用并启动 Certbot 自动续订计时器。
$sudo systemctl 启用 certbot-renew.timer $sudo systemctl 启动 certbot-renew.timer
查看计时器列表。
$sudo systemctl 列表计时器 下一个左侧最后一个通过的单元激活 -------------------------------------------------- -------------------------------------------------- ---------------------------- 星期一 2024-04-15 00:00:00 UTC 19 分钟左 星期日 2024-04-14 08:20:34 UTC 15 小时前 logrotate.timer logrotate.service 周一 2024-04-15 00:43:16 UTC 1h 2min left 周日 2024-04-14 09:01:33 UTC 14h 前 fstrim.timer fstrim.service 星期一 2024-04-15 00:44:47 UTC 1h 4min left 星期日 2024-04-14 23:30:19 UTC 10 分钟前 dnf-makecache.timer dnf-makecache.service 星期一 2024-04-15 06:52:31 UTC 上午 7 点左 - - certbot-renew.timer certbot-renew.service
对该过程进行一次演练,以检查 SSL 续订是否正常工作。
$sudo certbot renew --dry-run
如果没有看到任何错误,则一切都已准备就绪。您的证书将自动更新。
配置 Nginx
创建并打开 Kibana 的 Nginx 配置文件。
$sudo nano /etc/nginx/conf.d/kibana.conf
粘贴以下代码。将 IP 地址替换为您的 Elasticsearch 服务器的私有 IP 地址。
服务器 { 听80;听[::]:80; 服务器名称 kibana.example.com; 返回 301 https://$host$request_uri; } 服务器 { 服务器名称 kibana.example.com; 字符集utf-8; 监听 443 ssl; 听[::]:443 ssl; http2 开启; http3 开启; 快速重试; access_log /var/log/nginx/kibana.access.log; error_log /var/log/nginx/kibana.error.log; ssl_certificate /etc/letsencrypt/live/kibana.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/kibana.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/kibana.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache 共享:MozSSL:10m; ssl_session_tickets 关闭; ssl_协议 TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHA20-POLY1305:ECDHE -RSA-CHACHA20-POLY1305:AND-RSA-AES128-GCM-SHA256:AND-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_prefer_server_ciphers 关闭; 解决8.8.8.8; ssl_装订打开; ssl_stapling_verify 开启; ssl_dhparam /etc/ssl/certs/dhparam.pem; 地点 / { proxy_pass http://your_private_IP:5601; proxy_set_header 主机 $host; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
打开文件/etc/nginx/nginx.conf
进行编辑。
$sudo nano /etc/nginx/nginx.conf
在该行之前添加以下行include /etc/nginx/conf.d/*.conf;
。
server_names_hash_bucket_size 64;
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
验证配置。
$sudo nginx -t nginx:配置文件/etc/nginx/nginx.conf语法没问题 nginx:配置文件/etc/nginx/nginx.conf测试成功
启动 Nginx 服务。
$sudo systemctl 启动 nginx
接下来,您需要在 Kibana 的配置中添加基本 URL 字段。
打开 Kibana 的配置文件。
$sudo nano /etc/kibana/kibana.yml
找到注释行#server.publicBaseUrl: ""
并按如下方式更改它,删除其前面的哈希值。
server.publicBaseUrl: "https://kibana.example.com"
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
重新启动 Kibana 服务。
$sudo systemctl 重新启动 kibana
配置 SELinux 以启用 Nginx
应用策略以允许与外部主机建立连接。
$sudo setebool -P httpd_can_network_connect 1
使用 Kibana 完成 ElasticSearch 配置
等待几分钟,然后https://kibana.example.com
在浏览器中加载 URL。
您将获得注册令牌字段。填写您在步骤 9 中生成的注册令牌。
单击“配置弹性”按钮继续。接下来,系统会要求您提供验证码。
切换回 Elasticsearch 终端并运行以下命令来生成代码。在页面上输入此代码并单击验证按钮继续。
$sudo /usr/share/kibana/bin/kibana-验证码 您的验证码是:232 001
接下来,等待 Elastic 设置完成。这将需要几分钟的时间。
接下来,您将被重定向到登录屏幕。
步骤 11 – 安装和配置 Filebeat
值得注意的是,我们将在 Suricata 服务器上安装 Filebeat。因此,切换回它并添加 Elastic GPG 密钥即可开始。
$sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
创建并打开弹性存储库。
$sudo nano /etc/yum.repos.d/elasticsearch.repo
粘贴以下代码。
[弹性搜索] name=8.x 包的 Elasticsearch 存储库 baseurl=https://artifacts.elastic.co/packages/8.x/yum gpg检查=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch 启用=0 自动刷新=1 类型=rpm-md
按 Ctrl + X 并在出现提示时输入 Y 保存文件。
安装 Filebeat。
$sudo dnf install --enablerepo=elasticsearch filebeat
在配置 Filebeat 之前,我们需要将文件http_ca.crt
从 Elasticsearch 服务器复制到 Filebeat 服务器。在 Filebeat 服务器上运行以下命令。
$scp 用户名@你的公共ip:/etc/elasticsearch/certs/http_ca.crt /etc/filebeat
Filebeat 将其配置存储在/etc/filebeat/filebeat.yml
文件中。打开它进行编辑。
$sudo nano /etc/filebeat/filebeat.yml
您需要做的第一件事是将其连接到 Kibana 的仪表板。在 Kibana 部分中找到该行#host: "localhost:5601"
,然后在其正下方添加以下行,如图所示。
。 。 。 # 从 Beats 版本 6.0.0 开始,仪表板通过 Kibana API 加载。 # 这需要 Kibana 端点配置。 设置.kibana: # Kibana 主机 # 方案和端口可以省略,将设置为默认值(http 和 5601) # 如果您指定了附加路径,则需要该方案:http://localhost:5601/path # IPv6 地址应始终定义为:https://[2001:db8::1]:5601 #主机:“本地主机:5601” 主机:“your_private_IP:5601” 协议:“http” ssl.启用:true ssl.certificate_authorities:[“/etc/filebeat/http_ca.crt”] 。 。 。
接下来,找到文件的 Elasticsearch Output 部分并编辑hosts
、username
和 的值,password
如下所示。对于用户名,请选择elastic
值;对于密码,请使用本教程第 8 步中生成的值。另外,将其设置protocol
为 HTTPS。
输出.elasticsearch: # 要连接的主机数组。 主机:[“your_private_IP:9200”] # 性能预设 - “平衡”、“吞吐量”、“规模”之一, #“延迟”或“自定义”。 预设:平衡 # 协议 - `http`(默认)或`https`。 协议:“https” # 身份验证凭证 - API 密钥或用户名/密码。 #api_key: "id:api_key" 用户名:“弹性” 密码:“” ssl.certificate_authorities:[“/etc/filebeat/http_ca.crt”] ssl.verification_mode:完整 。 。 。
在文件底部添加以下行。
setup.ilm.overwrite: true
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。确保 Filebeat 连接到 Elasticsearch 还涉及一个步骤。我们需要将 Elasticsearch 的 SSL 信息传递给 Filebeat,以便它能够连接。
测试从 Filebeat 到 Elasticsearch 服务器的连接。系统会要求您输入 Elasticsearch 密码。
$sudo curl -v --cacert /etc/filebeat/http_ca.crt https://your_private_ip:9200 -u elastic
您将得到以下输出。
输入用户“elastic”的主机密码: * 尝试 10.0.0.2:9200... * 连接到 10.0.0.2 (10.0.0.2) 端口 9200 (#0) * ALPN,提供 h2 * ALPN,提供http/1.1 * CA文件:/etc/filebeat/http_ca.crt * TLSv1.0 (OUT)、TLS 标头、证书状态 (22): * TLSv1.3 (OUT),TLS 握手,客户端问候 (1): * TLSv1.2 (IN)、TLS 标头、证书状态 (22): * TLSv1.3(IN),TLS 握手,服务器问候(2): * TLSv1.2 (IN),TLS 标头,已完成(20): * TLSv1.2 (IN),TLS 标头,未知 (23): * TLSv1.3 (IN)、TLS 握手、加密货币扩展 (8): * TLSv1.3 (IN),TLS 握手,证书 (11): * TLSv1.3 (IN)、TLS 握手、CERT 验证 (15): * TLSv1.3 (IN),TLS 握手,完成(20): * TLSv1.2(OUT),TLS header,已完成(20): * TLSv1.3 (OUT),TLS 更改密码,更改密码规范 (1): * TLSv1.2 (OUT),TLS 标头,未知 (23): * TLSv1.3(OUT),TLS握手,完成(20): * 使用 TLSv1.3 / TLS_AES_256_GCM_SHA384 的 SSL 连接 * ALPN,服务器不同意协议 * 服务器证书: * 主题:CN=弹性 * 开始日期:2024 年 4 月 14 日 08:37:21 GMT * 过期日期:2026 年 4 月 14 日 08:37:21 GMT * subjectAltName:主机“10.0.0.2”与证书的IP地址匹配 * 发行者:CN=Elasticsearch 安全自动配置 HTTP CA * SSL 证书验证正常。 * 使用 Basic 和用户“elastic”进行服务器身份验证 * TLSv1.2 (OUT),TLS 标头,未知 (23): > 获取/HTTP/1.1 > 主机:10.0.0.2:9200 > 授权:基本ZWxhc3RpYzpsaWZlc3Vja3M2NjIwMDI= > 用户代理:curl/7.76.1 > 接受:*/* > * TLSv1.2 (IN),TLS 标头,未知 (23): * TLSv1.3 (IN)、TLS 握手、Newsession Ticket (4): * TLSv1.2 (IN),TLS 标头,未知 (23): * 将 bundle 标记为不支持多用途 < HTTP/1.1 200 好 < X-elastic-产品:Elasticsearch < 内容类型:application/json <内容长度:532 < { “名称”:“弹性”, "cluster_name" : "elasticsearch", "cluster_uuid": "vnUn8l1bQ1qkF-VjCoiWmQ", “版本” : { “数字”:“8.13.2”, "build_flavor" : "默认", “构建类型”:“rpm”, “build_hash”:“16cc90cd2d08a3147ce02b07e50894bc060a4cbf”, “构建日期”:“2024-04-05T14:45:26.420424304Z”, “build_snapshot”:假, “lucene_version”:“9.10.0”, "minimum_wire_compatibility_version": "7.17.0", “最低索引兼容性版本”:“7.0.0” }, "tagline" : "你知道,用于搜索" } * 连接 #0 到主机 10.0.0.2 保持不变
接下来,启用 Filebeat 的内置 Suricata 模块。
$sudo filebeat 模块启用 suricata 启用苏里卡塔
打开/etc/filebeat/modules.d/suricata.yml
文件进行编辑。
$sudo nano /etc/filebeat/modules.d/suricata.yml
编辑文件,如下所示。您需要将enabled
变量的值更改为true
。另外,取消注释该变量var.paths
并设置其值,如图所示。
# 模块:suricata # 文档:https://www.elastic.co/guide/en/beats/filebeat/8.10/filebeat-module-suricata.html - 模块:suricata # 所有日志 前夕: 启用:真 # 设置日志文件的自定义路径。如果留空, # Filebeat 将根据您的操作系统选择路径。 var.paths: ["/var/log/suricata/eve.json"]
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
配置 Filebeat 的最后一步是使用命令将 SIEM 仪表板和管道加载到 Elasticsearch 中filebeat setup
。
$sudo filebeat 设置
该命令可能需要几分钟才能完成。完成后,您应该收到以下输出。
索引设置完成。 加载仪表板(Kibana 必须正在运行且可访问) 已加载的仪表板 已加载 Ingest 管道
启动并启用 Filebeat 服务。
$sudo systemctl 启用 filebeat --now
检查服务的状态。
$sudo systemctl 状态 filebeat ? filebeat.service - Filebeat 将日志文件发送到 Logstash 或直接发送到 Elasticsearch。 已加载:已加载(/usr/lib/systemd/system/filebeat.service;启用;预设:禁用) 活跃:自 2024-04-14 星期日 10:12:51 UTC 以来 31 秒前处于活跃状态(正在运行) 文档:https://www.elastic.co/beats/filebeat 主PID:7299(filebeat) 任务:8(限制:22569) 内存:407.2M CPU:7.640秒 CGroup:/system.slice/filebeat.service ??7299 /usr/share/filebeat/bin/filebeat --environment systemd -c /etc/filebeat/filebeat.yml --path.home /usr/share/filebeat --path.config /etc/filebeat... …………
第 12 步 – 管理 Kibana 仪表板
打开https://kibana.example.com
,您将再次进入登录屏幕。
elastic
使用您之前生成的用户名和密码登录,您将看到以下屏幕。
单击“探索我自己的”链接以继续查看仪表板。
type:data suricata
在顶部的搜索框中输入内容以查找 Suricata 的信息。
单击第一个结果([Filebeat Suricata] 警报概述),您将看到类似的屏幕。默认情况下,它仅显示最后 15 分钟的条目,但我们会显示更长的时间,以便为本教程显示更多数据。
单击“事件”按钮可查看所有记录的事件。
向下滚动事件和警报页面时,您可以通过协议类型、源和目标端口以及源的 IP 地址来识别每个事件和警报。您还可以查看流量来源的国家/地区。
您可以使用 Kibana 和 Filebeat 访问和生成其他类型的仪表板。安全仪表板是您可以立即使用的有用的内置仪表板之一。单击左侧汉堡菜单中的安全仪表板,选择浏览,然后从右侧选择网络仪表板。
您将看到以下页面。
您可以通过启用和配置内置 Filebeat 模块来添加更多类似 Nginx 的仪表板。
结论
在 Rocky Linux 9 服务器上使用 Elastic Stack 安装和配置 Suricata IDS 的教程到此结束。您还将 Nginx 配置为反向代理以从外部访问 Kibana 仪表板。如果您有任何疑问,请在下面的评测中发表。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载