您现在的位置是:网站首页> 编程资料编程资料
Security安装 Elastic SIEM 和 EDR的超详细教程_其它综合_
2023-05-27
323人已围观
简介 Security安装 Elastic SIEM 和 EDR的超详细教程_其它综合_
Elastic Security 为分析人员提供了预防,检测和响应威胁的手段。 该解决方案解决了SIEM,endpoint,威胁搜寻等安全用例,使 SecOps 团队能够收集各种数据,执行自动化和分析师驱动的分析,并通过嵌入式工作流和自动化来应对安全威胁。在今天的文章中,我将介绍如何安装 Elastic SIEM 及 EDR。
在我的系统配置中,我们使用如下的结构:
我有两台机器,在其中的一台机器上安装有 Elasticsearch,Filebeat 及 Kibana,而在另外一台机器上安装有 endpoint agent。在今天的练习中,我将详细地介绍如何一步一步地完成整个安装。
安装 Elastic Stack 基础
尽管我在之前的很多文章中有介绍如何安装 Elastic Stack,我还是想一步一步地来详细介绍。就我而言,我使用的是 Elastic Stack 的最新版本7.11.1。对于我的 Elastic Stack 设置,我使用的是一个单台的 Ubuntu 20.04 机器。 该服务器将运行 Elasticsearch 和 Kibana。
安装 Elasticsearch
首先安装 transport-https
sudo apt-get install curl apt-transport-https
接下来,将 Elastic 仓库添加到你的源列表。
curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
然后更新。
sudo apt update
现在安装 Elasticsearch
sudo apt-get install elasticsearch
对于中国有的开发者来说,上面的安装步骤可能会很慢,一种办法就是直接到网址 https://www.elastic.co/downloads/ 直接下载 Elasticsearch 的 deb 安装包,并按如下的命令来进行安装:
sudo dpkg -i elasticsearch-7.11.1-amd64.deb
安装 Elasticsearch 之后,我们需要对其配置文件进行几处更改。 该文件位于 /etc/elasticsearch/elasticsearch.yml 中。要访问此文件,你需要 root 特权。
首先,我们需要更改 network.host 值。 其默认设置为localhost。 将其更改为安装了 Elasticsearch 的主机的 IP 地址。
cluster.name: demo-elk node.name: elk-1 network.host: 0.0.0.0 discovery.type: single-node
现在,你应该准备启动 Elasticsearch 并检查它是否已正确启动。
sudo service elasticsearch start
我们可以使用如下的命令来查看 elasticsearch 服务的状态:
service elasticsearch status
如上所示,如果我们看到 Elasticsearch 服务的状态为 active,则表明它的安装是成功的。
你还可以通过运行以下命令来检查 Elasticsearch 是否可从其他主机访问:
curl http://:9200
输出应类似于以下内容:
安装 Kibana
运行以下命令以安装 Kibana。
sudo apt install kibana
对于中国有的开发者来说,上面的安装步骤可能会很慢,一种办法就是直接到网址 https://www.elastic.co/downloads/ 直接下载 Kibana 的 deb 安装包,并按如下的命令来进行安装:
sudo dpkg -i kibana-7.11.1-amd64.deb
一旦安装完成后,编辑 /etc/kibana/kibana.yml 并指定托管 Kibana 的 IP 地址。
server_port: 5601 server_host: 0.0.0.0 server_name: demo-kibana
在上面,我们可以只修改 server_host 即可,其它的我们可以使用默认的配置即可。设置 server_host 为 0.0.0.0 为的是我们可以在其它的机器上访问当前的 Kibana。我们可以使用 Ubuntu 机器的 IP 地址加上端口 5601 就可以访问了。
启动 Kibana 并检查其状态。
sudo service kibana start sudo service kibana status
如果我们能看到状态为 active,则表明我们的安装是成功。我们可以通过另外一个电脑来访问 Kibana:
你如果能看到上面的画面,则表明你的安装是成功的。
安装 Beats
Filebeat 用于将数据从设备传送到 Elasticsearch。 对于不同的产品,有许多不同的 Filebeat 模块,它们以所需的格式将日志和数据发送到 Elasticsearch。 在此示例中,我们将模块用于 Zeek,但是 Elastic 也扩展了其对其他产品的支持,包括 AWS,CrowdStrike,ZScaler 等。
目前,我们只打算在运行 Zeek 的主机上安装 Filebeat,我们稍后会对其进行配置。
sudo apt-get install filebeat
对于中国有的开发者来说,上面的安装步骤可能会很慢,一种办法就是直接到网址 https://www.elastic.co/downloads/ 直接下载 Filebeat 的 deb 安装包,并按如下的命令来进行安装:
sudo dpkg -i filebeat-7.11.1-amd64.deb
安装 Zeek
现在,我们准备着手安装 Zeek。 首先,我们需要安装所有必备组件。 通过运行以下命令来执行此操作。
sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev
接下来,我们需要为 Zeek 创建工作目录,由于某些原因,Zeek 在安装时默认不执行此操作。
sudo mkdir /opt/zeek sudo chown -R root:root /opt/zeek sudo chmod 740 /opt/zeek
接下来下载带有 GIT 的 Zeek
git clone --recursive https://github.com/zeek/zeek
等下载完文件,进入 zeek 下载目录。 然后将我们先前创建的 /opt/zeek 目录设置为安装目录。
cd /home/$USER/zeek ./configure --prefix=/opt/zeek
在上面,我们假设你把 zeek 的文件 clone 到 home 目录下的 zeek 目录。现在,我们准备安装 Zeek,运行以下 make 命令,然后将其保留安装(这可能需要一些时间)
make sudo make install
接下来,我们需要添加 PATH 环境变量
export PATH=/opt/zeek/bin:$PATH
我们可以在 /opt/zeek/etc 找到一个叫做 node.cfg 的配置文件。
# pwd /opt/zeek/etc root@liuxgu:/opt/zeek/etc# ls networks.cfg node.cfg zeekctl.cfg zkg
这个文件包含对 zeek 的节点配置。我们需要配置我们的 interface:
node.cfg
上面的 interface, 我们可以通过 ifconfig 命令来获得本机的接口。另外,我们需要安装 sendmail,否则在运行 zeek 时会发生无法找到 sendmail 的错误。
sudo apt-get install sendmail
现在,我们准备运行下面的命令来部署 Zeek。我们需要在 root 账号下运行:
zeekctl deploy
我们可以在 /opt/zeek/logs 目录里发现日志。“current” 目录保存当天的日志,而前几天的日志则存档到其自己的目录中。 还有一个针对不同数据类型的日志文件,例如 DNS 连接,HTTP 连接等。
让我们检查DNS日志
# pwd /opt/zeek/logs root@liuxgu:/opt/zeek/logs# ls 2021-02-24 current
配置安全
就目前而言,我们在 ELK 部署中拥有的唯一功能是日志提取和可视化。 我们可以将日志提取到 Elastisearch 中,并通过 Kibana 可视化来处理数据,但是缺少 SIEM 的核心功能。 我们无法建立检测或用例。 此功能不是“开箱即用”的,要使用它,我们必须首先在所有不同节点之间配置安全性。 X-Pack 是 Elastic 软件包,它基本上负责所有 Elastic Security 功能。
所需的一个关键组件是配置每个节点之间的 SSL 连接,可以通过多种方法进行。 我们也将使用 X-Pack 来执行此操作。
首先,在安装了 Elasticsearch 的主机上,我们需要创建一个 YAML 文件 /usr/share/elasticsearch/instances.yml,它将包含我们要使用 SSL 保护的不同节点/实例。 就我而言,我只有 Elasticsearch,Kibana 和 Zeek。
/usr/share/elasticsearch/instances.yml
instances: - name: "elasticsearch" ip: - "192.168.0.4" - name: "kibana" ip: - "192.168.0.4" - name: "zeek" ip: - "192.168.0.4"
接下来,我们将使用 Elastic 的 certutil 工具为我们的实例生成证书。 这也将生成一个证书颁发机构(Certificate Authority)。
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --out certs.zip
这将为我们的每个实例创建一个 .crt 和 .key 文件,以及一个 ca.crt 文件。你可以使用 unzip 来解压缩不同的证书。
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/cert
接下来,我们需要将 SSL 配置添加到我们的 /etc/elasticsearch/elasticsearch.yml 文件中。
/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 xpack.security.http.ssl.enabled: true xpack.security.http.ssl.verification_mode: certificate xpack.security.http.ssl.key: /etc/elasticsearch/certs/elasticsearch.key xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt xpack.security.http.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ]
现在重新启动 Elasticsearch。
提示: 本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- 关于Interlij 无法使用中文输入法的解决方法(适用于Interlij全家桶 Linux环境)_其它综合_
- Matlab使用Plot函数实现数据动态显示方法总结_其它综合_
- 解决appcode打开workspace无法找到xcodeproj项目文件问题_其它综合_
- gliffy UML工具安装使用过程_其它综合_
- gliffy-confluence-plugin-9.1.2插件教程详解_其它综合_
- 谷歌师兄的算法刷题笔记_其它综合_
- 完美解决浏览器Flash插件过期不能用问题_其它综合_
- 合成大西瓜开发源码手把手教你运行和部署大西瓜游戏项目(附源码)_其它综合_
- Appium的使用与入门(这款神器你值得拥有)_其它综合_
- 如何用Idea或者webstorm跑一个Vue项目(步骤详解)_其它综合_
点击排行
本栏推荐
