1.wazuh简介

Wazuh 是一个免费、开源和企业级的安全监控解决方案,用于威胁检测、完整性监控、事件响应和合规性。

Quartz监控插件_elasticsearch

github地址:

https://github.com/wazuh

Wazuh由部署到受监视系统的端点安全代理和管理服务器组成,管理服务器收集和分析代理收集的数据。此外,Wazuh已与Elastic Stack完全集成,提供了搜索引擎和数据可视化工具,使用户可以浏览其安全警报。

Wazuh提供的功能包括日志数据分析,入侵和恶意软件检测,文件完整性监视,配置评估,漏洞检测以及对法规遵从性的支持。

2. Wazuh平台的组件和体系结构

Wazuh平台主要包括三个主要组件,分别是Wazuh代理,Wazuh服务器和Elastic Stack。

Wazuh代理:它安装在端点上,例如笔记本电脑,台式机,服务器,云实例或虚拟机。它提供了预防,检测和响应功能。它确实支持Windows,Linux,macOS,HP-UX,Solaris和AIX平台。

Wazuh服务器:它分析从代理收到的数据,通过解码器和规则对其进行处理,并使用威胁情报来查找众所周知的危害指标(IOC)。一台服务器可以分析来自成百上千个代理的数据,并在设置为集群时水平扩展。该服务器还用于管理代理,在必要时进行远程配置和升级。

Elastic Stack:它索引和存储Wazuh服务器生成的警报。此外,Wazuh和Kibana之间的集成为数据的可视化和分析提供了强大的用户界面。该界面还可用于管理Wazuh配置并监视其状态。

Quartz监控插件_elastic_02

Wazuh架构图如下

1、整体的架构图

Quartz监控插件_elastic_03

(图片可点击放大查看)

2、Agent端的组件架构

Quartz监控插件_大数据_04

3、Server端的架构

Quartz监控插件_elastic_05

3.关于部署

本次将部署一套分布式Wazuh方案,实现其基本功能。其中:

  1. wazuh-master启用全功能组件;
  2. ElasticStack将使用官方基本授权,不启用X-pack和加密连接;
  3. Linux版本Agent将安装到Kibana主机和ElasticSearch主机上,不再额外安装示例主机;
  4. 各个功能组件采用单节点部署;
  5. Wazuh使用4.1.5版本,搭配官方指定7.11.2ElasticStack版本。

部署方案

  1. 部署拓扑
  2. 网络地址

系统角色

版本

网络地址

ElasticSearch

7.11.2

192.168.248.146

Kibana

7.11.2

192.168.248.145

WazuhMaster

4.1.5

192.168.248.150

WazuhAgent

4.1.5

192.168.248.1

部署实施

ElasticSearch的安装

# 安装前置软件
yum install -y zip unzip curl
# 导入秘钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 增加官方源
cat > /etc/yum.repos.d/elastic.repo << EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 安装软件
yum makecache
yum upgrade -y
yum install -y elasticsearch-7.11.2

# 导入配置文件
#discovery.seed_hosts: ["0.0.0.0"]在dalao的原文中没有,但是就我个人搭建,如果不添加这一行,就会导致服务无法启动。
mv /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml-bak
touch /etc/elasticsearch/elasticsearch.yml
cat > /etc/elasticsearch/elasticsearch.yml << EOF
cluster.name: elastic
node.name: elasticnode1
network.host: 0.0.0.0
cluster.initial_master_nodes: ["elasticnode1"]

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
discovery.seed_hosts: ["0.0.0.0"]
EOF

# 开通防火墙
firewall-cmd --permanent --add-service=elasticsearch 
firewall-cmd --reload

# 启动服务
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

# 校验服务
# 使用其他主机访问es环境
curl -XGET http://124.223.208.25:9200
#返回json
#124.223.208.25为我自己的服务器,部署时不要忘记更换
{
  "name" : "elasticnode1",
  "cluster_name" : "elastic",
  "cluster_uuid" : "ahjxhVEHREKNmBAfjcuyNw",
  "version" : {
    "number" : "7.11.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "3e5a16cfec50876d20ea77b075070932c6464c7d",
    "build_date" : "2021-03-06T05:54:38.141101Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

# 禁用软件源,避免非控升级组件
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.repo

        检验部署

Quartz监控插件_Elastic_06

        

Quartz监控插件_elasticsearch_07

(显然,这个也是使用http协议传递json数据的)

ps:ElasticSearch的简介(原链接)

Elasticsearch 是一个非常强大的搜索引擎。它目前被广泛地使用于各个 IT 公司。Elasticsearch 是由 Elastic 公司创建。它的代码位于 GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine。目前,Elasticsearch 是一个免费及开放(free and open)的项目。同时,Elastic 公司也拥有 Logstash 及 Kibana 开源项目。这个三个项目组合在一起,就形成了 ELK 软件栈。他们三个共同形成了一个强大的生态圈。简单地说,Logstash 负责数据的采集,处理(丰富数据,数据转换等),Kibana 负责数据展示,分析,管理,监督及应用。Elasticsearch 处于最核心的位置,它可以帮我们对数据进行快速地搜索及分析。  

Quartz监控插件_Elastic_08

2.Kibana的安装(可视化界面,web网页)

# 安装前置软件
yum install -y zip unzip curl
# 导入源秘钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 增加官方源
cat > /etc/yum.repos.d/elastic.repo << EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

# 安装软件
yum makecache
yum upgrade -y
yum install -y kibana-7.11.2

# 修改配置文件
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml-bak
cat >> /etc/kibana/kibana.yml << EOF
server.port: 5601
server.host: "localhost"
server.name: "kibana"
i18n.locale: "en"
elasticsearch.hosts: ["http://192.168.248.146:9200"]
kibana.index: ".kibana"
kibana.defaultAppId: "home"
EOF

# 创建数据目录
mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana

# 离线安装插件
wget https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.1.5_7.11.2-1.zip
cp ./wazuh_kibana-4.1.5_7.11.2-1.zip /tmp
cd /usr/share/kibana
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuh_kibana-4.1.5_7.11.2-1.zip

# 配置服务
systemctl daemon-reload
systemctl enable kibana
systemctl start kibana

# 禁用软件源,避免非控升级组件
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.repo

# 配置反向代理
yum install -y nginx
systemctl enable --now nginx
vim /etc/ngix/nginx.conf.default
# 在server{}中添加配置项
```
        proxy_redirect           off;
        proxy_set_header         X-Real-IP $remote_addr;
        proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header         Host $http_host;

        location / {
                proxy_pass http://localhost:5601/;
        }
```
nginx -s reload

# 登录kibana之后选择wazuh插件
# 返回控制台修改插件配置文件
sed -i ‘:s/localhost/192.168.248.150/g’ /usr/share/kibana/data/wazuh/config/wazuh.yml