第三届全国技能大赛网络安全项目(模块A)复现与练习(三)—Wazuh 的部署
一、前言
1.1 文档用途
本文针对全国技能大赛网络安全项目中 “隔离网络环境下 Wazuh 部署” 场景,提供Wazuh 4.7.5 版本单节点离线部署全流程。适配大赛标准 Amazon Linux 2023 操作系统,解决无网络环境下的依赖安装、组件部署及通信加密问题,既可用于比赛场景复现,也可作为日常运维实践参考。

1.2 环境说明
|
项目 |
配置详情 |
|
复现平台 |
天枢一体化虚拟仿真靶场平台 |
|
操作系统 |
Amazon Linux 2023(x86_64 架构) |
|
Wazuh 版本 |
4.7.5 |
|
部署模式 |
单节点离线部署 |
|
核心依赖 |
curl(替换系统默认 curl-minimal) |
1.3 组件作用说明
|
组件名称 |
核心功能 |
|
Wazuh Indexer |
基于 OpenSearch 构建,负责日志数据的存储、检索与索引管理 |
|
Wazuh Manager |
核心管理组件,接收 Agent 上报数据、执行规则匹配、生成安全告警、管理 Agent |
|
Filebeat |
日志转发组件,将 Wazuh Manager 产生的告警日志同步至 Indexer 进行存储 |
|
Wazuh Dashboard |
可视化管理界面,支持告警查看、规则配置、Agent 监控、安全报表生成 |
二、前置准备
2.1 权限要求
- 必须使用root用户或具备sudo权限的账号执行所有操作,避免因权限不足导致文件创建、服务启动失败。
- 验证权限:执行whoami,输出root即满足要求;若为普通用户,需执行su - root切换至 root。
2.2 依赖冲突处理
Amazon Linux 2023 默认安装的curl-minimal与 Wazuh 下载脚本依赖的完整curl冲突,需先替换依赖包:
|
# 替换curl-minimal为curl dnf swap curl-minimal curl |
- 验证替换结果:执行curl --version查看是否替换成功。
三、在线下载离线资源(有网络环境执行)
若比赛环境无网络,需提前在有网络的相同系统环境中下载以下资源,再通过 U 盘、移动硬盘等介质拷贝至目标服务器。
3.1 下载 Wazuh 安装脚本与离线包
|
# 1. 下载Wazuh安装助手脚本 curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh # 2. 赋予脚本执行权限(744:所有者可执行,其他用户只读) chmod 744 wazuh-install.sh # 3. 下载离线安装包(-dw rpm:指定下载RPM格式包,适配Linux系统) ./wazuh-install.sh -dw rpm |
- 下载结果:离线包存储于wazuh-offline/目录,包含所有组件的 RPM 安装包)。
3.2 下载证书工具与配置模板
|
# 1. 下载节点配置模板(用于生成SSL证书) curl -sO https://packages.wazuh.com/4.7/config.yml # 2. 下载证书生成脚本 curl -sO https://packages.wazuh.com/4.7/wazuh-certs-tool.sh # 3. 赋予证书脚本执行权限 chmod 744 wazuh-certs-tool.sh |
四、离线部署 Wazuh(无网络环境执行)
4.1 配置文件修改(适配单节点)
修改修改config.yml文件将“<indexer-node-ip>”、“<wazuh-manager-ip>”、“<dashboard-node-ip>”替换为127.0.0.1,然后执行证书安装脚本。
|
# 编辑配置文件 cat config.yml |
修改后完整配置如下(注释多余节点,仅保留单节点配置):
|
nodes: # Wazuh Indexer节点配置 indexer: - name: node-1 ip: 127.0.0.1 # Wazuh Manager节点配置 server: - name: wazuh-1 ip: 127.0.0.1 # Wazuh Dashboard节点配置 dashboard: - name: dashboard ip: 127.0.0.1 |
- 注意:节点名称(name字段)需与后续证书部署时的环境变量完全一致,不可随意修改。
4.2 生成 SSL 证书(组件通信加密)
Wazuh 组件间通信需通过 SSL 证书加密,避免数据泄露,执行以下命令生成证书:
|
# --all参数:生成所有组件(Indexer、Manager、Dashboard、Admin)的证书 ./wazuh-certs-tool.sh --all |
- 执行结果:生成wazuh-certificates/目录,包含以下关键证书文件:
|
18/11/2025 07:46:31 INFO: Admin certificates created. 18/11/2025 07:46:31 INFO: Wazuh indexer certificates created. 18/11/2025 07:46:31 INFO: Wazuh server certificates created. 18/11/2025 07:46:32 INFO: Wazuh dashboard certificates created. |
4.3 解压离线安装包
|
# 解压离线包至当前目录(-xvf:显示解压过程,保留文件属性) tar -xvf wazuh-offline.tar.gz |
解压后生成wazuh-offline/目录,包含两个子目录:
- wazuh-packages/:Wazuh Indexer、Manager、Dashboard、Filebeat 的 RPM 安装包。
- wazuh-files/:GPG 密钥(验证安装包完整性)、Filebeat 配置文件、索引模板等。
4.4 安装 Wazuh Indexer(日志存储组件)
4.4.1 导入 GPG 密钥(验证安装包合法性)
|
# 导入Wazuh官方GPG密钥,确保安装包未被篡改 rpm --import ./wazuh-offline/wazuh-files/GPG-KEY-WAZUH |
4.4.2 安装 RPM 包
|
# 安装Indexer(*.rpm匹配所有Indexer安装包) rpm -ivh ./wazuh-offline/wazuh-packages/wazuh-indexer*.rpm |
- 成功标志:输出1:wazuh-indexer-4.7.5-1 ##############################[100%],无报错信息。
4.4.3 部署 SSL 证书
|
# 1. 声明环境变量(与config.yml中Indexer节点名称一致:node-1) NODE_NAME=node-1 # 2. 创建Indexer证书目录 mkdir /etc/wazuh-indexer/certs # 3. 移动Indexer节点证书至指定目录 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. 移动管理员证书与根证书(用于Indexer安全配置) mv wazuh-certificates/admin-key.pem /etc/wazuh-indexer/certs/ mv wazuh-certificates/admin.pem /etc/wazuh-indexer/certs/ cp 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 # 归属Indexer用户组 |
4.4.4 启动并验证 Indexer
|
# 1. 重新加载系统服务配置(让systemd识别新安装的服务) systemctl daemon-reload # 2. 设置Indexer开机自启(避免服务器重启后需手动启动) systemctl enable wazuh-indexer # 3. 启动Indexer服务 systemctl start wazuh-indexer # 4. 查看服务状态(确保Active: active (running)) systemctl status wazuh-indexer |
4.4.5 初始化 Indexer 安全配置
|
# 执行安全初始化脚本,配置Indexer集群认证、角色权限等 /usr/share/wazuh-indexer/bin/indexer-security-init.sh |
- 成功标志:输出Done with success,表示 Indexer 安全配置初始化完成。
4.4.6 验证 Indexer 服务可用性
|
# 通过API验证Indexer是否正常运行(默认账号:admin,密码:admin) # -k:忽略SSL证书验证(自签名证书);-u:指定认证账号密码 curl -XGET https://localhost:9200 -u admin:admin -k |
4.5 安装 Wazuh Manager(核心管理组件)
4.5.1 安装 RPM 包
|
# 安装Manager(*.rpm匹配所有Manager安装包) rpm --import ./wazuh-offline/wazuh-files/GPG-KEY-WAZUH rpm -ivh ./wazuh-offline/wazuh-packages/wazuh-manager*.rpm |
4.5.2 启动并验证 Manager
|
# 1. 重新加载系统服务配置 systemctl daemon-reload # 2. 设置Manager开机自启 systemctl enable wazuh-manager # 3. 启动Manager服务 systemctl start wazuh-manager # 4. 查看服务状态(确保所有子进程正常运行,如wazuh-apid、wazuh-analysisd) systemctl status wazuh-manager |
4.6 安装 Filebeat(日志转发组件)
4.6.1 安装 RPM 包
|
# 安装Filebeat(*.rpm匹配所有Filebeat安装包) rpm -ivh ./wazuh-offline/wazuh-packages/filebeat*.rpm |
4.6.2 拷贝配置文件与模板
|
# 1. 拷贝Filebeat主配置文件(覆盖默认配置) cp ./wazuh-offline/wazuh-files/filebeat.yml /etc/filebeat/ # 2. 拷贝Indexer索引模板(定义日志存储结构) cp ./wazuh-offline/wazuh-files/wazuh-template.json /etc/filebeat/ # 3. 赋予模板文件读取权限(其他用户可读取,确保Filebeat能加载) chmod go+r /etc/filebeat/wazuh-template.json |
4.6.3 调整索引分片配置(适配单节点)
单节点部署时,需将索引分片数从默认的 3 改为 1(多分片在单节点下会导致资源浪费):
|
# 编辑索引模板文件 vi /etc/filebeat/wazuh-template.json |
找到"index.number_of_shards"字段,修改为 1:
|
"settings": { "index.refresh_interval": "5s", "index.number_of_shards": "1", # 改为1(原默认3) "index.number_of_replicas": "0", ... } |
- 保存退出:按Esc,输入:wq,回车保存。
4.6.4 配置 Filebeat 密钥库(存储认证信息)
为避免明文存储 Indexer 的账号密码,通过 Filebeat 密钥库管理认证信息:
|
# 1. 创建Filebeat密钥库(若已存在,会提示覆盖) filebeat keystore create # 2. 添加Indexer用户名(admin)至密钥库(--stdin:从标准输入读取,避免明文显示) echo admin | filebeat keystore add username --stdin --force # 3. 添加Indexer密码(admin)至密钥库 echo admin | filebeat keystore add password --stdin --force |
- 验证密钥库:执行filebeat keystore list,输出username和password即配置成功。
4.6.5 安装 Wazuh Filebeat 模块
|
# 解压Wazuh Filebeat模块至Filebeat模块目录(/usr/share/filebeat/module) tar -xzf ./wazuh-offline/wazuh-files/wazuh-filebeat-0.3.tar.gz -C /usr/share/filebeat/module |
- 模块作用:提供 Wazuh 日志的专用解析规则,确保日志格式与 Indexer 兼容。
4.6.6 部署 SSL 证书
|
# 1. 声明环境变量(与config.yml中Manager节点名称一致:wazuh-1) NODE_NAME=wazuh-1 # 2. 创建Filebeat证书目录 mkdir /etc/filebeat/certs # 3. 移动Filebeat证书至指定目录 mv -n wazuh-certificates/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem mv -n wazuh-certificates/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem # 4. 拷贝根证书(用于验证Indexer证书合法性) cp wazuh-certificates/root-ca.pem /etc/filebeat/certs/ # 5. 设置证书权限 chmod 500 /etc/filebeat/certs chmod 400 /etc/filebeat/certs/* chown -R root:root /etc/filebeat/certs # Filebeat运行用户为root,归属root用户组 |
4.6.7 启动并验证 Filebeat
|
# 1. 重新加载系统服务配置 systemctl daemon-reload # 2. 设置Filebeat开机自启 systemctl enable filebeat # 3. 启动Filebeat服务 systemctl start filebeat # 4. 查看服务状态 systemctl status filebeat # 5. 验证Filebeat与Indexer连接(确保输出"talk to server... OK") filebeat test output |
4.7 安装 Wazuh Dashboard(可视化界面)
4.7.1 安装 RPM 包
|
# 导入GPG密钥(若已导入可跳过) rpm --import ./wazuh-offline/wazuh-files/GPG-KEY-WAZUH # 安装Dashboard(*.rpm匹配所有Dashboard安装包) rpm -ivh ./wazuh-offline/wazuh-packages/wazuh-dashboard*.rpm |
4.7.2 部署 SSL 证书
|
# 1. 声明环境变量(与config.yml中Dashboard节点名称一致:dashboard) NODE_NAME=dashboard # 2. 创建Dashboard证书目录 mkdir /etc/wazuh-dashboard/certs # 3. 移动Dashboard证书至指定目录 mv -n wazuh-certificates/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pem mv -n wazuh-certificates/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pem # 4. 拷贝根证书 cp wazuh-certificates/root-ca.pem /etc/wazuh-dashboard/certs/ # 5. 设置证书权限(归属Dashboard用户组) chmod 500 /etc/wazuh-dashboard/certs chmod 400 /etc/wazuh-dashboard/certs/* chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs |
4.7.3 启动并验证 Dashboard
|
# 1. 重新加载系统服务配置 systemctl daemon-reload # 2. 设置Dashboard开机自启 systemctl enable wazuh-dashboard # 3. 启动Dashboard服务 systemctl start wazuh-dashboard # 4. 查看服务状态(确保Active: active (running)) systemctl status wazuh-dashboard |
4.8 修改默认密码(安全加固)
Wazuh 默认管理员账号密码为admin:admin,安全性较低,需立即修改:
|
# 1. 进入Indexer密码工具目录 cd /usr/share/wazuh-indexer/plugins/opensearch-security/tools/ # 2. 执行密码修改脚本(-u:指定用户名,-p:指定新密码) # 新密码示例:Skills123.(需满足复杂度:8位以上,含大小写、数字、特殊符号) ./wazuh-passwords-tool.sh -u admin -p Skills123. # 3. 重启Filebeat和Dashboard,使新密码生效 systemctl restart filebeat wazuh-dashboard |
- 注意:新密码需牢记,若遗忘需重新执行脚本重置。
五、部署验证与访问
5.1 访问 Wazuh Dashboard
- 访问地址:打开浏览器,输入https://服务器IP(示例:https://10.0.8.2,服务器 IP 需替换为实际部署的 IP)。
- 证书提示处理:因使用自签名证书,浏览器会提示 “不安全”,点击 “高级”→“继续访问”(生产环境需替换为 CA 签发的可信证书)。
- 登录认证:
- 用户名:admin
- 密码:修改后的密码(示例:Skills123.)
5.2 验证部署成功
登录 Dashboard 后,确认以下状态即部署成功:

更多推荐

所有评论(0)