开源SOC实现(一)-Wazuh indexer&Wazuh dashboard
2022-11-16 21:31:33 Author: Kali渗透测试教程(查看原文) 阅读量:15 收藏

通过上周的文章,大致知道了开源SOC整体架构,今天从后端存储方面再来细化下整体架构图。

 存储的基础要求就是满足存储一段时间的日志并且提供快速索引,看到这两个需求很快就可以想起ES,确实ES可以满足需求,今天使用到的也是ES的一个分支版本,通过Wazuh indexer实现。

那么什么是Wazuh?

Wazuh 体系结构基于在受监视端点上运行的代理,这些代理将安全数据转发到中央服务器。支持防火墙、交换机、路由器和接入点等无代理设备,并且可以通过 Syslog、SSH 或使用其 API 主动提交日志数据。中央服务器解码和分析传入的信息,并将结果传递给Wazuh索引器进行索引和存储。

https://documentation.wazuh.com/current/getting-started/architecture.html

整体架构分为Wazuh agent不断将事件发送到Wazuh server进行分析和威胁检测,Wazuh server使用 Filebeat 使用 TLS 加密将警报和事件数据发送到 Wazuh indexer。Filebeat 读取 Wazuh server输出数据并将其发送到 Wazuh indexer(默认情况下侦听端口 9200/TCP)。Wazuh indexer索引数据后,Wazuh dashboard将用于挖掘和可视化信息。

通过以上介绍Wazuh indexer是一个快速弹性的全文搜索和分析引擎,并提供近乎实时的数据搜索和分析功能。主要用于索引并存储生成的警报。主要使用9200以及9300端口。

根据官方文档描述,Wazuh indexer可以单机安装也可以组成集群安装,支持Amazon Linux 2、CentOS 7, 8、Red Hat Enterprise Linux 7, 8, 9、Ubuntu 16.04, 18.04, 20.04, 22.04等操作系统安装,需要主机至少拥有2C4G硬件资源,推荐8C16G。

https://documentation.wazuh.com/current/installation-guide/wazuh-indexer/index.html

每台Server90天平均每秒产生0.25告警,90天平均占用3.7GB,每台Workstation90天平均每秒产生0.1告警,90天平均占用1.5GB,每台Network devices90天平均每秒产生0.5告警,90天平均占用7.4GB。

根据官方文档给的主机硬件资源要求计算,80 workstations, 10 servers, and 10 network devices, 需要存储90天告警需要230 GB存储空间,如果是业务使用一定需要提前计算好存储空间,建议多预留一些存储空间。

https://documentation.wazuh.com/current/installation-guide/wazuh-indexer/index.html

由于成本考虑本次使用单机部署。根据官方文档描述提供两种方式安装Wazuh installation assistant(一键部署)和Step-by-step installation(手动安装),由于安装过程中需要修改默认参数,所以选择手动安装。在手动安装Wazuh indexer之前需要先安装操作系统,在支持操作系统列表中选择CentOS 7进行安装。由于安装操作基础比较基础,本文不进行赘述,不懂如何安装操作系统可以搜索如何安装CentOS 7虚拟机


参考官方文档,安装Wazuh indexer过程分为三个阶段。1.证书创建;2.节点安装;3.初始化。安装过程需要拥有root权限。

0.安装CentOS 7操作系统,IP地址为192.168.116.200

ip acat /etc/os-release

1.证书创建

下载wazuh-certs-tool.sh脚本和config.yml 配置文件

curl -sO https://packages.wazuh.com/4.3/wazuh-certs-tool.shcurl -sO https://packages.wazuh.com/4.3/config.yml

编辑config.yml配置文件,将节点名称和 IP 值并将其替换为相应的名称和 IP 地址。比如此处将节点名称修改成soc-demo,IP地址根据实际修改成192.168.116.200

nodes:  # Wazuh indexer nodes  indexer:    - name: soc-demo      ip: 192.168.116.200    # - name: node-2    #   ip: <indexer-node-ip>    # - name: node-3    #   ip: <indexer-node-ip>
  # Graylog server nodes # Use node_type only with more than one Wazuh manager   server:    - name: soc-demo      ip: 192.168.116.200 # node_type: master # - name: wazuh-2 # ip: <wazuh-manager-ip> # node_type: worker
# Wazuh dashboard node dashboard:    - name: soc-demo      ip: 192.168.116.200

vi /etc/hosts //修改hosts文件

ping soc-demo

运行./wazuh-certs-tool.sh脚本用于创建证书

bash ./wazuh-certs-tool.sh -A

以上步骤完成第一步证书创建。


2.节点安装

安装包依赖

yum install coreutils

添加Wazuh仓库

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUHecho -e '[wazuh]\ngpgcheck=1\ngpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH\nenabled=1\nname=EL-$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1' | tee /etc/yum.repos.d/wazuh.repo

安装Wazuh indexer

yum -y install wazuh-indexer

编辑Wazuh indexer配置文件

vi /etc/wazuh-indexer/opensearch.yml

以下需要修改network.host、node.name、cluster.initial_master_nodes、cluster.namediscovery.seed_hosts、node.max_local_storage_nodes等字段

network.host: "192.168.116.200"node.name: "soc-demo"cluster.initial_master_nodes:- "soc-demo"#- "node-2"#- "node-3"cluster.name: "soc-cluster"discovery.seed_hosts:  - "192.168.116.200"#  - "node-2-ip"#  - "node-3-ip"node.max_local_storage_nodes: "1"path.data: /var/lib/wazuh-indexerpath.logs: /var/log/wazuh-indexer

打包证书

tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .rm -rf ./wazuh-certificates

接下来部署证书

NODE_NAME=soc-demo //设置环境变量
mkdir /etc/wazuh-indexer/certstar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./admin.pem ./admin-key.pem ./root-ca.pemmv -n /etc/wazuh-indexer/certs/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pemmv -n /etc/wazuh-indexer/certs/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pemchmod 500 /etc/wazuh-indexer/certschmod 400 /etc/wazuh-indexer/certs/*chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs

完成证书部署之后,启动Wazuh indexer服务

systemctl daemon-reloadsystemctl enable wazuh-indexersystemctl start wazuh-indexer


查看Wazuh indexer状态

systemctl status wazuh-indexer

以上步骤完成第二步节点安装。


3.初始化

/usr/share/wazuh-indexer/bin/indexer-security-init.sh

以上步骤完成第三步初始化。

使用以下命令来检查是否正常运行

curl -k -u admin:admin https://192.168.116.200:9200/_cat/nodes?v



接下来安装wazuh dashboard,通过wazuh-dashboard提供图形化界面跟Wazuh indexer进行交互。

首先安装包依赖

yum install libcap

安装wazuh dashboard

yum -y install wazuh-dashboard

编辑配置文件

vi /etc/wazuh-dashboard/opensearch_dashboards.yml

接下来部署证书

NODE_NAME=soc-demo //设置环境变量//在有wazuh-certificates.tar文件的路径中执行以下命令(该证书是安装wazuh-indexer时生成的)mkdir /etc/wazuh-dashboard/certstar -xf ./wazuh-certificates.tar -C /etc/wazuh-dashboard/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pemmv -n /etc/wazuh-dashboard/certs/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pemmv -n /etc/wazuh-dashboard/certs/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pemchmod 500 /etc/wazuh-dashboard/certschmod 400 /etc/wazuh-dashboard/certs/*chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs

启动Wazuh dashboard服务

systemctl daemon-reloadsystemctl enable wazuh-dashboardsystemctl start wazuh-dashboard

安装完成之后,通过浏览器访问(如果主机存在防火墙需要放通连接)

https://192.168.116.200/app/login?nextUrl=%2F
默认账号密码admin/admin

登录之后通过左侧侧边栏切换菜单

通过Index Management查看当前索引信息


完成以上步骤之后,最初的架构逻辑图细化成下图所示

欢迎订阅收看下期开源SOC实现(二)-Garylog


文章来源: http://mp.weixin.qq.com/s?__biz=MzI3NDYwMzI4Mg==&mid=2247485698&idx=1&sn=1d2b80b95d3ed2e7baab811bf57f7d1b&chksm=eb10c57fdc674c69cbde9c491d41a33260a8fcc3459bb12332694481c204fa3805106d0cae1e#rd
如有侵权请联系:admin#unsafe.sh