为 Elastic SIEM 设置 Elasticsearch
介绍
我经常听到安全专家告诉我,他们“正在考虑建立一个弹性堆栈……”但他们觉得这可能太难了,或者他们只是不确定从哪里开始。本指南旨在帮助您从敏捷板的“我正在考虑这样做”阶段过渡到“我完全做到了,这非常简单”的最终状态。
该软件堆栈可以在所有流行的操作系统发行版(包括 Windows)上运行。但是,Ubuntu 或 CentOS/Redhat 的性能最佳。可以使用包管理器从 elasticsearch 存储库安装的选项以及安装的 .deb 和 .rpm 选项,但本指南将使用与 Linux 发行版无关的下载和安装方法。我特意选择了CentOS 7,因为它默认更安全。我将相应地介绍在基于 RPM 的系统上运行的命令的设置。
技术
设置 Elastic Stack
首先,您需要安装正确版本的 elasticsearch 和 kibana。这比您最初想象的要容易得多,只需设置数据库和覆盖数据库的 Web 门户 GUI,以便您分别导入数据和浏览数据。它的具体工作原理以及它与 Elastic SIEM 的关系很快就会变得清晰起来。一般来说,elasticsearch 是数据库,kibana 是数据库的图形界面,您需要将信息发送到数据库中进行分析。SIEM作为选项卡包含在 Kibana 界面中,是查看存储在 elasticsearch 后端的信息的一种方式,但不是唯一的方式。
安装 Elasticsearch 7.3
选择下载 tarball 并在包管理器之外安装的选项,这样它就不会特定于单个 Linux 版本。移至您的 /opt 文件夹;一般linux 文件结构将此文件夹指定为第三方可选包。
创建或使用除“root”之外的现有用户来运行此设备中的进程。Elasticsearch 不会以 root 身份或 root 权限运行。
将目录更改为 /opt 文件夹或您想要运行 elasticsearch 程序的任何位置。
下载压缩包,下载 sha512 哈希,然后比较两者以确保文件完整性。没有理由意外将恶意软件安装为安全平台的一部分。那会很尴尬。
user]$ sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-linux-x86_64.tar.gz
这将从 elasticsearch 存储库下载软件包。它确实需要有效的互联网连接,完成后应该看起来像这样。
下载包含 tarball 的 SHA512 哈希的文件。
user]$ sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz.sha512
[user]$ sha512sum -c elasticsearch-7.3.1-linux-x86_64.tar.gz.sha512
在 Debian 系统上,您可以使用 shasum -c 512 elasticsearch-7.3.1-linux-x86_64.tar.gz.sha512
如果您在下面的结果中看到除“ok”之外的任何内容,请不要安装此软件包。请验证前面的步骤,尤其是下载源,并可能从另一台设备浏览以下载具有受信任文件完整性的副本。如果您在不同设备和不同网络上得到相同的结果,请通知 elastic!
解压下载的文件并进入解压后的 elasticsearch 目录。
user]$ sudo tar -xzf elasticsearch-7.3.1-linux-x86_64.tar.gz
[user]$ cd elasticsearch-7.3.1/
[user]$ ls -lsa
该文件夹的内容应如下所示:
配置 Elasticsearch
当 elasticsearch 启动时,会进行一系列检查,以确保您的系统设置经过优化,可以正常运行软件。当 elasticsearch 在非本地环回地址上发布时,会强制执行引导检查,这将需要使用此实例来接受来自外部源的数据。SIEM 的整个想法是您将从各种来源收集网络流量、日志和警报。您需要按照以下步骤设置此节点以供生产使用。
编辑 elasticsearch.yml 配置文件。
user]$ nano /opt/elasticsearch-7.3.1/config/elasticsearch.yml
取消注释networt.host设置并将其从默认的“localhost”更改为 0.0.0.0。
更改此行:
看起来像这一行:
在关闭此配置文件之前,滚动到“发现”部分并取消注释“discovery.seed_hosts”设置,并将括号中的值更改为 [“0.0.0.0”]。
由于托管地址值已更改为非本地环回值,因此引导检查将被严格执行,并导致服务失败,除非您更改更多设置。
当从 .deb 或 .rpm 文件安装或直接从带有包管理器的 elasticsearch 存储库安装时,其中一些更改会自动应用到您的系统中。因此,您当然可以跳到运行 elasticsearch 部分,先尝试一下,然后使用本节中的步骤解决任何故障。
需要设置的第一个设置是 vm.max_map_count。只需使用 sysctl 将最大映射计数更改为所需的最小值 262144。
user]$ sudo sysctl vm.max_map_count=262144
此外,您还需要更改最大文件描述符的值。默认情况下,此值硬设置为 4096。在/etc/security/limits.conf文件中为将用于运行 elasticsearch 进程的特定非 root 用户添加两行。
user]$ sudo nano /etc/security/limits.conf
完成后,您需要重新加载会话设置以反映更改。
要重新加载 sysct.conf 设置,请执行以下命令。
user]$ sysctl -p
为了确保重新加载 limits.conf 更改,需要注销并登录会话。
修改防火墙以允许通过正确的端口 9200 连接到 elasticsearch,然后重新加载。
user]$ sudo firewall-cmd --permanent --zone=public --add-port=9200/tcp
[user]$ sudo firewall-cmd --reload
在 Debian 平台上使用ufw 。
最后,更改 elasticsearch 目录的权限。实际上,您将只向用户分配此过程的权限,以执行所需的所有二进制文件并读取/写入剩余文件。这取决于您组织的安全策略。
user]$ sudo chmod -R 777 /opt/elasticsearch-7.3.1
运行 Elasticsearch
现在是时候首次运行 elasticsearch 了!在这种安装格式中,您可以从终端运行后台二进制文件。从长远来看,需要添加并配置此服务以在系统启动时启动。我将引导您运行每个二进制文件,并使用控制台输出作为一般工程过程的一部分,让您快速查看服务是否失败以及原因,或者它们是否成功并且您已准备好继续下一步。
作为此过程的一部分,使用屏幕可以在终端和占用标准输出的后台进程之间快速切换。
如果您尚未安装屏幕,请立即安装。
[用户]$ sudo yum install screen -f
安装完成后,运行 screen 进入启动 elasticsearch 服务的第一个会话。
user]$ screen
然后按照用户选择的方式运行 elasticsearch 二进制文件。不要使用sudo
user]$ bin/elasticsearch
注意输出中指示服务正在运行的 IP 地址和集群的最终状态。如果进程退出,则表示出现错误;阅读错误并回顾前面的步骤以识别问题并重试。
按ctrl+a+d将当前终端会话设置为后台,然后在新终端会话中使用curl向弹性节点发送 HTTP GET 请求。
user]$ curl http://0.0.0.0:9200
如果您将 elasticsearch 实例地址更改为 0.0.0.0 以外的其他地址,则请输入该值。
输出应如下所示:
结论
恭喜!您现在是全新 elasticsearch 节点的骄傲拥有者。继续阅读我的下一篇指南:为 Elastic SIEM 设置 Kibana
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~