Administrator
发布于 2026-08-24 / 35 阅读
0
0

Wazuh

一、简介

1. wazuh三大模块

(1)Wazuh Indexer(索引器)

  • 功能定位:这是一个高可扩展的全文搜索与分析引擎,负责对 Wazuh Server 生成的告警数据进行索引和存储。

  • 核心价值:它确保了海量安全日志和告警能够被快速检索、聚合和分析,是支撑后续可视化和深度调查的基础。可以理解为整个系统的“数据仓库”和“搜索引擎”。

(2)Wazuh Server(服务器)

  • 功能定位:这是整个平台的大脑,负责接收来自各个终端代理(Agent)的数据,并利用威胁情报、解码器和规则引擎进行分析处理。

  • 核心价值:单台服务器即可处理数千个代理的数据,支持集群化部署以实现弹性扩展。它还承担着远程管理代理、下发配置等任务,是实现集中化安全管控的核心。

(3)Wazuh Dashboard(仪表盘)

  • 功能定位:这是面向用户的 Web 图形界面,用于数据的可视化展示、分析和系统管理。

  • 核心价值:它内置了多种预置仪表板,覆盖合规性检查(如 PCI DSS、GDPR)、漏洞管理、文件完整性监控、配置评估、云基础设施事件等多个安全场景,让安全团队能直观地掌握整体安全态势并快速响应。

这三个组件协同工作:Server 负责“分析”,Indexer 负责“存储与检索”,Dashboard 负责“呈现与管理”,共同为用户提供从数据采集、威胁检测到可视化响应的端到端安全能力。Wazuh 作为一个开源的 XDR 和 SIEM 平台,广泛应用于企业级安全防护,尤其适合需要满足合规要求或希望构建统一安全监控体系的组织。

2.Wazuh 平台的核心能力矩阵

它强调通过一个统一的代理和平台架构,将传统上分散的安全功能整合起来,为公有云、私有云和本地数据中心提供全面保护

(1)端点安全

  • 配置评估:自动检查系统配置是否符合安全基线(如 CIS 标准),识别因错误配置导致的安全风险,比如主机是否配置弱口令,防火墙是否开启,用国内说的话就是等级保护方面,但是这个都是基于美国和欧洲的一些标准,暂时对中国的等级保护没进内置,不过它的规则是开源的,如果有兴趣,我们完全可以自己写一套符合等保要求的规则放进去,灵活性很高。

  • 恶意软件检测:通过文件哈希、行为分析和签名匹配等方式,实时检测并告警终端上的恶意程序,就是我们的‘杀毒软件’功能,不管是通过文件指纹(哈希)还是行为分析,只要发现病毒木马,立马报警。

  • 文件完整性监控:持续监控关键系统文件和目录的变更,一旦发现未经授权的修改(如被篡改的系统二进制文件),立即触发告警,专门防黑客‘留后门’。如果系统里的关键文件,比如 ls 命令或者系统配置文件,被偷偷改了,它能立刻发现并告诉你。

(2)威胁情报

  • 威胁狩猎:以前我们是等报警了再去看,现在是主动去‘搜’,分析师可以在海量数据里主动寻找那些还没触发报警、但看起来很可疑的隐蔽攻击。

  • 日志数据分析:这是基础功夫,不管是Windows日志、Linux日志还是防火墙日志,它全收进来,帮我们做关联分析,很多攻击单看一条日志看不出来,连起来看就知道是攻击链了。

  • 漏洞检测:它会自动扫描你服务器上装了什么软件,版本是多少,然后去跟全球漏洞库比对,比如你的 Apache 有个老漏洞没打补丁,它马上就能指出来。”

(3)安全运营

  • 事件响应:提供从告警触发、调查分析到处置响应的完整工作流支持,帮助安全团队快速遏制和恢复安全事件,就是出了事怎么办?它提供了一整套流程,从告警出来,到我们怎么调查,再到怎么处置,都有记录和支持,帮我们快速止损。

  • 法律合规性:内置针对 PCI DSS、GDPR、HIPAA、NIST 等主流法规的预置仪表板和报告,简化合规审计流程。

  • IT 卫生:监控和管理终端的健康状态,如补丁更新情况、不必要的服务运行状态等,从基础层面降低攻击面。其实就是‘打扫屋子’,看看哪些补丁没打、哪些不必要的服务在跑,把这些基础卫生搞好,黑客能钻的空子就少了。”

(4)云安全

  • 容器安全:专门针对 Docker、Kubernetes 等容器化环境,监控容器运行时行为、镜像漏洞和配置风险。

  • 态势管理:就是态势感知,功能挺大的,持续评估云基础设施(如 AWS、Azure、GCP)的安全配置,识别如公开 S3 存储桶、未加密数据库等高风险设置。

  • 工作负载保护:将安全防护能力延伸至云中的虚拟机、无服务器函数等动态工作负载,确保其在整个生命周期内受到保护。

3.Wazuh Agent 的跨平台兼容性

Wazuh 的核心组件之一:Agent。

很多安全工具最大的痛点就是‘挑系统’,Windows 用一套,Linux 用一套,老服务器还得单独找方案。但 Wazuh 主打的是 ‘Single universal agent’(单一通用代理)。

不管你的环境里是常见的 Windows 和 Mac,还是跑着关键业务的 Linux 服务器,甚至是比较古老的 Solaris、AIX 这种 Unix 系统,Wazuh 都能通过这就一个代理把安全防护做起来。这意味着我们在部署时,不需要为不同的机器准备不同的安装包,极大地简化了我们的管理工作。”

二、Wazuh 安装步骤

1.下载安转包和相关配置

1.1下载安装包

从任何具有互联网连接的Linux系统中运行以下命令,执行该脚本可在 x86_64 架构上下载离线安装所需的所有文件。

但以root用户去进行下载,下载时需要确保服务器能上网,如果安装环境上不了网,可以在本地下载下来以后传入服务器上。

 # 下载离线脚本
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh

# 添加权限
chmod 744 wazuh-install.sh

# 执行脚本
./wazuh-install.sh -dw deb
# 安装包会默认下载到当前用户root目录/root下
  • 结果图

下载完毕以后会在/root当前目录下产生wazuh-offline.tar.gz。

1.2 下载配置文件

这个配置文件是认证配置文件,它是通过OpenSearch 2.15.x下载,它各个节点是通过https去认证的,不管是通过openserch去查询还是维护,都是通过https,其实就是一个安全意识。

# 从官网下载配置文件
curl -sO https://packages.wazuh.com/4.7/config.yml
# 配置文件会下载到当前登录用户root目录/root下
  • 结果图

1.3生成安全通信证书

1.3.1编辑证书配置

注意:务必仔细检查,否则后续证书文件不可用,主要是证书里面的config name 要一致,后续证书的名字是以主机名,命名的,如果你是单机部署,那么只需要ip相同即可

Wazuh & ELK (以10.0.5.10为例) 被单独划在管理区。

这种“单机部署”会影响后续抓黑客吗?

完全不会。
虽然 Wazuh 的三个组件(Indexer, Server, Dashboard)都挤在 10.0.5.10 这一台机器里,但这只是服务端的部署方式,对于其他区域的机器来说,它们只看得到 Wazuh 的 Agent(探针)。
后续我们的布置流程是这样的:

  1. 安装 Agent:我们会去 10.0.1.10 (网站)、10.0.2.15 (HR电脑)、10.0.3.10 (域控) 上分别安装一个小小的 Wazuh Agent 软件。

  2. 统一汇报:这些 Agent 会通过网络,把日志全部发给 10.0.5.10。

  3. 上帝视角:我们在 10.0.5.10 的网页上,就能同时看到所有区域的报警。

这就好比:
虽然保安室(Wazuh Server)只有一个房间(10.0.5.10),但保安(Agent)是分布在大楼各个角落(VLAN 10/20/30/40)的,所以保安室小一点没关系,只要能收到所有保安的对讲机信号就行。

如果你是多点布置那么你就需要准备三台不同的机器,不同的IP,不同的名字

# 1.备份config.yml 文件
cp config.yml config.yml.bak

# 2.编辑config.yml 文件,将文件中的 indexer,server,dashbora 部分修改成实际环境IP或者主机名
nodes:
  # Wazuh indexer nodes (数据库)
  indexer:
    - name: inderxer      # 对应你的主机名
      ip: "真实IP"       # 【修正】这里填写真实IP

  # Wazuh server nodes (分析引擎)
  server:
    - name: wazuh-1         # 名字保持默认即可
      ip: "真实IP"       # 这里填 真是IP
      node_type: master     # 单机必须设为 master

  # Wazuh dashboard nodes (网页界面)
  dashboard:
    - name: dashboard       # 名字保持默认即可
      ip: "真实IP"       
  • 结果图

1.3.2 生成证书文件

这一步是生成 Wazuh 各组件间通信所需的 SSL/TLS 证书,是部署过程中不可或缺的安全前置步骤。

Wazuh 的三个核心组件(Indexer、Server、Dashboard)在启动后需要相互通信,比如 Server 要向 Indexer 写入告警数据,Dashboard 要从 Indexer 查询数据,为了防止数据在传输过程中被窃听或篡改,它们之间必须使用加密通道。

这个脚本 wazuh-certs-tool.sh 会根据你之前配置的 config.yml(里面包含了所有组件的名称和 IP),自动为每个组件签发专属的证书和密钥,并生成一个根证书(Root CA)来信任这些组件。最终生成的 wazuh-certificates 目录里,就包含了所有组件启动时需要的证书文件。

简单来说,这一步就是给 Wazuh 的“内部团队”发“工作证”,确保只有合法的成员才能互相沟通,防止外部攻击者伪装成组件窃取数据或注入恶意指令,这是企业级安全产品的基本安全要求,也是后续安装脚本能顺利运行的前提。

# 下载正式生成工具文件
curl -sO https://packages.wazuh.com/4.7/wazuh-certs-tool.sh

# 修改生成工具文件的权限
chmod 744 wazuh-certs-tool.sh

# 开始生成证书
./wazuh-certs-tool.sh --all
  • 结果图

2.解压安装包,并进行安装indexer

2.1解压文件

这一步,是解压 Wazuh 离线安装包,它的核心意义在于:

  • 为无网络环境准备完整安装资源

  • 分离出安装脚本与组件包,便于分步部署

  • 确保安装过程稳定可控,避免在线下载失败或版本不一致

这个压缩包本质上是一个“离线部署工具包”,里面包含了:

  • wazuh-install.sh —— 主安装脚本,负责自动化部署 Indexer、Server、Dashboard;

  • wazuh-packages/ —— 存放所有 RPM/DEB 安装包(如 Filebeat、Wazuh Manager、Indexer 等);

  • wazuh-files/ —— 存放配置文件模板、索引模板、GPG 密钥等辅助文件。

我们后续进入 wazuh-offline/wazuh-files/ 目录看到的 filebeat.yml、wazuh-template.json 等文件,正是安装脚本在部署过程中会自动调用的配置模板。比如:

  • filebeat.yml 会被复制到 /etc/filebeat/,用于定义日志采集规则;

  • wazuh-template.json 会被导入 Indexer,用于定义告警数据的存储结构。

这一步不是“可选操作”,而是离线部署的必要前提,如果我们跳过它,直接运行 wazuh-install.sh,脚本会尝试从互联网下载依赖包,在无网络或受限环境中必然失败。

tar xf wazuh-offline.tar.gz
  • 结果图

2.2开始安装inderxer

# 导入安装 认证KEY
sudo mkdir -p /etc/apt/trusted.gpg.d
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/wazuh-archive-keyring.gpg ./wazuh-offline/wazuh-files/GPG-KEY-WAZUH

# 离线安装inderxer
rpm -ivh ./wazuh-offline/wazuh-packages/wazuh-indexer_4.7.5-1_amd64.deb
  • 解析

sudo mkdir -p /etc/apt/trusted.gpg.d

  • 作用:创建目录 /etc/apt/trusted.gpg.d(如果它不存在)。

  • 为什么需要:这个目录是 APT 包管理器存放“受信任的 GPG 密钥环”的标准位置。现代 Ubuntu/Debian 系统推荐使用这个目录来管理第三方软件的签名密钥,而不是旧的 apt-key 方式(后者已逐渐被弃用)。

  • -p 参数表示“递归创建”,即使父目录不存在也不会报错。

sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/wazuh-archive-keyring.gpg ./wazuh-offline/wazuh-files/GPG-KEY-WAZUH

  • 作用:将 Wazuh 的 ASCII 格式 GPG 公钥文件(GPG-KEY-WAZUH)转换为二进制格式(.gpg),并保存到 APT 的信任密钥目录中。

  • 关键参数说明:

    • --dearmor:将文本格式的 GPG 密钥(通常是 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头)转换为二进制格式,这是 APT 能识别的格式。

    • -o [输出文件]:指定输出文件名,这里命名为 wazuh-archive-keyring.gpg,符合 APT 的命名规范。

    • [输入文件]:指向你之前解压出来的 Wazuh 离线包中的 GPG 密钥文件。

  • 结果图

2.3 配置证书

Wazuh Indexer(基于 OpenSearch)强制要求使用 SSL/TLS 加密通信,所以必须把证书文件放到指定位置并设置好权限,否则服务无法启动。

执行前必须注意的一个“坑”

文档中的命令使用了变量 $NODE_NAME,你需要先确认这个变量的值,或者直接用实际文件名替换它。

# 1. 定义变量(假设你的节点名是 indexer,请根据实际情况调整)
export NODE_NAME=indexer

# 2. 创建证书目录
mkdir -p /etc/wazuh-indexer/certs

# 3. 移动证书文件 (注意:确保你在 /root 目录下,且 wazuh-certificates 文件夹在这里)
mv -n wazuh-certificates/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
mv -n wazuh-certificates/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem

# 4. 移动管理员和根证书
mv -n wazuh-certificates/admin.pem /etc/wazuh-indexer/certs/
mv -n wazuh-certificates/admin-key.pem /etc/wazuh-indexer/certs/
mv -n wazuh-certificates/root-ca.pem /etc/wazuh-indexer/certs/

# 5. 设置权限(这一步非常关键,权限不对服务起不来)
chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs

2.4.启动

systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer
  • 结果图:浏览器中访问 https://ip,使用 admin/admin登录。首次访问若提示安全风险,点击"高级"->"继续访问"即可。


评论