尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Wazuh 卸载指南:Linux、macOS 与 Windows 下彻底移除 Server 与 Agent 的完整操作

Wazuh 卸载指南:Linux、macOS 与 Windows 下彻底移除 Server 与 Agent 的完整操作 Wazuh 卸载指南Linux、macOS 与 Windows 下彻底移除 Server 与 Agent 的完整操作【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh本篇技术指南基于 Wazuh 官方参考文档 docs/ref/uninstall.md系统讲解 Wazuh server 与 agent 在 Debian/Red Hat/SUSE Linux、macOS 和 Windows 平台上的卸载方法与命令差异并结合当前仓库中的包维护脚本prerm/postrm、macOS 卸载脚本 packages/macos/uninstall.sh 和一键清除脚本 tools/purge_wazuh.sh 深入说明卸载过程的底层行为。读完本篇你可以针对不同发行版选择保留或清除配置文件的卸载方式理解“remove”与“purge”的本质区别并在包管理器之外完成对服务单元、用户组、挂载点和残留目录的深度清理。卸载总体流程先停服务再删包官方文档指出Wazuh 的卸载流程会在移除包之前自动停止服务。这一行为并非文档的口头描述而是写在包维护脚本中的。以 Debian 包为例wazuh-manager 的 prerm 脚本 在收到remove参数时会依次执行检测 systemd若wazuh-manager单元处于活动状态执行systemctl stop wazuh-manager否则回退到 SysV通过service wazuh-manager status判断后执行service wazuh-manager stop最后再兜底调用安装目录内的控制脚本/var/wazuh-manager/bin/wazuh-manager-control stop。也就是说无论包管理器底层走哪条路径守护进程都会被先行停止避免在进程仍持锁读写queue/、var/等运行时目录时删除文件。理解“remove”与“purge”的差异是选择卸载命令的关键操作Debian (dpkg)Red Hat (rpm)结果仅移除包dpkg --remove pkgrpm -e pkg卸载程序文件保留/改名配置文件便于重装时沿用彻底清除dpkg --purge pkgrpm -e pkgrpm 无独立 purge 语义删包即删文件删除包及其用户、组、安装目录等绝大部分痕迹从 wazuh-manager 的 postrm 脚本 可以印证这一机制在remove分支中脚本会把/var/wazuh-manager/etc/下未被包管理的文件重命名为.save后缀API 配置文件同样被改名保留实现“删包留配置”而在purge分支中脚本执行deluser wazuh-manager、delgroup wazuh-manager并rm -rf /var/wazuh-manager将安装目录与系统用户一并清除。卸载 Wazuh ServerDebian 系平台彻底清除含配置与用户sudo dpkg --purge wazuh-manager仅移除包但保留配置文件sudo dpkg --remove wazuh-manager从源码结构看选择--remove后 prerm 还会把etc/client.keys、etc/wazuh-manager-internal-options.conf、etc/wazuh-manager.conf、etc/shared/default/agent.conf以及api/configuration/api.yaml备份到${DIR}/tmp/conffiles目录随后由 postrm 在移除包文件后把它们恢复到etc/并加上.save后缀。因此执行--remove后在/var/wazuh-manager/etc/中看到的*.save文件正是官方设计用于重装或手工比对的历史配置。Red Hat 系平台sudo rpm -e wazuh-managerRPM 的-e选项移除包及其全部文件没有 Debian 式的 conffiles 保留语义等效于“purge 级别”的移除。卸载 Wazuh AgentLinux 平台Debian 系平台彻底清除sudo dpkg --purge wazuh-agent仅移除包、保留配置sudo dpkg --remove wazuh-agentagent 的安装目录为/var/ossec。从 wazuh-agent 的 postrm 脚本 可以看到除通用的配置.save改名逻辑外remove 分支还有一个容易被忽略的清理动作删除 audit 子系统对接插件——若存在/etc/audit/plugins.d/af_wazuh.conf或/etc/audisp/plugins.d/af_wazuh.conf会被一并移除。如果此前启用过内核审计日志采集audisp 插件卸载 agent 包后不应再假设该插件仍然生效。purge 分支则删除wazuh用户与组并执行rm -rf /var/ossec/*清空安装目录。Red Hat 系与 SUSE 系平台两个平台使用相同的命令sudo rpm -e wazuh-agentSUSE 文档单列一节的原因在于其包管理入口zypper最终同样落到 rpm 层官方文档为读者区分了发行版习惯命令本身保持一致。macOSmacOS 上的 Wazuh agent 通过 launchd 管理卸载需按“停服务 → 删文件 → 删用户组 → 注销包记录”四步进行。第一步停止 agent 服务sudo launchctl bootout system /Library/LaunchDaemons/com.wazuh.agent.plist第二步删除程序目录与启动项sudo rm -rf /Library/Ossec sudo rm -f /Library/LaunchDaemons/com.wazuh.agent.plist sudo rm -rf /Library/StartupItems/WAZUH第三步删除 wazuh 用户与组sudo dscl . -delete /Users/wazuh sudo dscl . -delete /Groups/wazuh第四步从 pkgutil 中注销包记录sudo pkgutil --forget com.wazuh.pkg.wazuh-agent仓库中的 packages/macos/uninstall.sh 是官方构建流程自带的等价卸载脚本可以从中补充两个文档未逐条列出的细节脚本在删文件前先调用/Library/Ossec/bin/wazuh-control stop优雅停止所有 agent 进程launchd 之外多一道保险pkgutil --forget除了com.wazuh.pkg.wazuh-agent还会注销com.wazuh.pkg.wazuh-agent-etc这一等价的等份记录此外若 agent 曾通过 Puppet 的 pkgdmg provider 安装脚本还会清理标记文件/var/db/.puppet_pkgdmg_installed_wazuh-agent避免 Puppet 状态与系统实际状态不一致。WindowsWindows 端卸载有三种方式按适用场景任选其一。方式一使用原始安装包静默卸载要求安装包文件位于当前工作目录msiexec.exe /x wazuh-agent-*.msi /qn/x指定卸载、/qn指定无界面静默模式。方式二不依赖安装包文件通过注册表定位已安装的 MSI 产品代码后卸载Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* , HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like *Wazuh Agent* } | ForEach-Object { msiexec.exe /x $_.PSChildName /qn }该命令同时扫描 64 位Software与 32 位重定向视图WOW6432Node两个安装注册表位置以DisplayName模糊匹配 “Wazuh Agent”取出PSChildName即产品 GUID逐个调用 msiexec 卸载适合忘记原始 msi 文件名的场景。方式三基于 PowerShell 包提供程序Package Provider的等价 CLI 方式Get-Package -Name Wazuh Agent | Uninstall-Package -Force -ErrorAction SilentlyContinue -WarningAction SilentlyContinue-Force强制卸载-ErrorAction/-WarningAction SilentlyContinue则抑制卸载过程中常见的“无权限读取某些注册表项”类告警保证命令在多数环境下单次执行完成。偏好图形化操作时也可以直接通过 Windows 的 “Add or Remove Programs”添加/删除程序功能进行交互式卸载。执行上述任一方式后Wazuh agent 即从 Windows 端点上完全移除。深度清理一键清除脚本与包卸载的边界包管理器卸载覆盖的是“由包安装的”组件。对于源码编译安装或需要连服务单元、挂载点、用户组一并扫尾的场景仓库提供了 tools/purge_wazuh.sh 作为统一的清除入口sudo ./purge_wazuh.sh从脚本实现tools/purge_wazuh.sh 的main流程看其行为分为两条路径检测到已安装的包通过dpkg-query或rpm -qa判断按包管理器分级清除——apt 下执行apt-get purgeautoremoveautocleandnf/yum 下执行removezypper 下执行remove -u裸 rpm 下执行rpm -e --nodeps随后仍会执行下面的全量系统清理未检测到包源码/手工安装跳过删包步骤直接执行全量清理。全量清理阶段由 tools/purge_wazuh.sh 的cleanup_system串联完成覆盖包卸载可能遗漏的残留停止服务L85-L113先systemctl stop/disablewazuh-manager、wazuh-agent、wazuh-local三个单元再回退到service命令然后逐个安装目录调用wazuh-manager-control/wazuh-control最后以pkill -9兜底杀掉wazuh-manager-analysisd、wazuh-agentd、wazuh-syscheckd等残留进程卸载 dev/proc 挂载若安装目录下存在挂载中的proc目录mountpoint检测执行umount避免目录删除失败确定安装目录默认包含/var/wazuh-manager与/var/ossecL15-L16并额外解析WAZUH_HOME环境变量以及 systemd/init.d 服务文件中的ExecStart/WAZUH_HOME定义从而覆盖非默认路径的自定义安装删除服务单元清理/etc/rc.local中的启动行、/etc/init.d与rc*.d下的 SysV 脚本与 S/K 链接并在 systemd 下删除三个单元文件后执行daemon-reload与reset-failed删除残留文件与账号移除/etc/ossec-init.conf安装/注册时留下的记录文件删除wazuh与wazuh-manager用户和同名组。卸载后的验证建议执行卸载后可按以下清单确认清理是否到位包状态Debian 系下dpkg -l | grep wazuh应无wazuh-manager/wazuh-agent条目RPM 系下rpm -qa | grep wazuh应无输出进程与端口ps aux | grep -E wazuh-(manager-)?(analysisd|agentd|remoted|syscheckd|logcollector)无对应进程目录残留/var/ossecagent与/var/wazuh-managerserver应已不存在若只执行了dpkg --remove目录中会保留*.save配置文件属预期行为可手工确认后删除账号清理id wazuh、id wazuh-manager应报用户不存在macOS 上dscl . -read /Users/wazuh与dscl . -read /Groups/wazuh应无记录审计插件如曾启用 audisp确认/etc/audit/plugins.d/af_wazuh.conf与/etc/audisp/plugins.d/af_wazuh.conf已随 agent 包卸载被删除。小结日常卸载按平台选择dpkg --purge/rpm -e、macOS 四步法或 Windows msiexec 命令即可服务停止由包维护脚本自动完成dpkg --remove适合需要保留wazuh-manager.conf、api.yaml等历史配置的重装场景对于源码安装或多组件混合部署环境用 tools/purge_wazuh.sh 做一次全量扫尾是最稳妥的收尾手段。【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表