目录
最近几个月,Elastic Stack发生了很多变化,并发布了许多免费的安全工具。由Comodo和Elastic Endpoint Security发布的OpenEDR。因此,我认为现在是查看Elastic的更改并尝试其新Endpoint Security的好时机。因此,对于这篇文章,我将展示如何从头开始安装Elastic SIEM和Elastic Endpoint Security。
网络设计
下面是此帖子的非常简单的网络图。ELK在ESXi上托管的Ubuntu 20.04服务器上运行。Zeek也在Ubuntu 20.04服务器上运行,并且交换机上的端口已镜像到ESXi服务器上的端口。
同样在ESXi上运行的是Windows 10计算机,我们将在其中安装Elastic Endpoint Security代理。
配置X-Pack
就目前而言,我们在ELK部署中拥有的唯一功能是日志提取和可视化。我们可以将日志提取到ElasticSearch中,并通过Kibana可视化来处理数据,但是缺少SIEM的核心功能。我们无法建立检测或用例。此功能不是“开箱即用”的,要使用它,我们必须首先在所有不同节点之间配置安全性。X-Pack是Elastic软件包,它基本上负责所有Elastic Security功能。
所需的一个关键组件是配置每个节点之间的SSL连接,可以通过多种方法进行。我们也将使用X-Pack来执行此操作。
首先,在安装了Elasticsearch的主机上,我们需要创建一个YAML文件,/usr/share/elasticsearch/instances.yml
该文件将包含我们要使用SSL保护的不同节点/实例。就我而言,我只有Elasticsearch,Kibana和Zeek。
instances:
- name: "elasticsearch"
ip:
- "192.168.1.232"
- name: "kibana"
ip:
- "192.168.1.232"
- name: "zeek"
ip:
- "192.168.1.234"
接下来,我们将使用Elastic的certutil工具为我们的实例生成证书。这也将生成一个证书颁发机构。
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --out certs.zip
这将为我们的每个实例创建一个.crt
和.key
文件,以及一个ca.crt
文件。
您可以使用解压缩来解压缩不同的证书。
unzip /usr/share/elasticsearch/certs.zip -d /usr/share/elasticsearch/
现在我们有了我们的证书,我们可以配置每个实例。
配置Elasticsearch SSL
首先,我们需要创建一个文件夹将证书存储在我们的Elasticsearch主机上。
mkdir /etc/elasticsearch/certs/ca -p
接下来,我们需要将解压缩的证书复制到其相关文件夹中并设置正确的权限。
cp ca/ca.crt /etc/elasticsearch/certs/ca
cp elasticsearch/elasticsearch.crt /etc/elasticsearch/certs
cp elasticsearch/elasticsearch.key /etc/elasticsearch/certs
chown -R elasticsearch: /etc/elasticsearch/certs
chmod -R 770 /etc/elasticsearch/certs
接下来,我们需要将SSL配置添加到 /etc/elasticsearch/elasticsearch.yml
文件中。
# Transport layer
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.transport.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ]
# HTTP layer
xpac