一、简介
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(探针)。
后续我们的布置流程是这样的:
安装 Agent:我们会去
10.0.1.10(网站)、10.0.2.15(HR电脑)、10.0.3.10(域控) 上分别安装一个小小的 Wazuh Agent 软件。统一汇报:这些 Agent 会通过网络,把日志全部发给
10.0.5.10。上帝视角:我们在
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/certs2.4.启动
systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer结果图:浏览器中访问
https://ip,使用admin/admin登录。首次访问若提示安全风险,点击"高级"->"继续访问"即可。
