2020-09-11

wazuh是一个开源的项目,有进行漏洞检测,安全侦测等功能

下面是这个项目,服务端给客户端升级的代码执行步骤:

 

wpk包升级流程:

1、服务端:
bin目录下,升级脚本:agent_upgrade

升级命令举例:/var/ossec/bin/agent_upgrade -a 001 -f /var/ossec/var/upgrade/up.wpk -x upgrade.sh

脚本agent_upgrade,主要运行命令:
/var/ossec/framework/python/bin/python3 /var/ossec/framework/scripts/agent_upgrade.py -a 144 -f /var/ossec/var/upgrade/up.wpk -x upgrade.sh

所以升级程序主要看agent_upgrade.py

agent_upgrade.py中,根据是否有file判断是执行指定升级包还是指定版本号下载。因为指定版本号下载是网上版本的升级方式,本次举例采用指定升级包的方式。

在这里使用的agent.upgrade_custom()的升级方式。进入到代码文件agent.py的函数upgrade_custom

函数upgrade_custom主要做了两件事情:

  1. 发送升级包:_send_custom_wpk_file
  2. 发送安装命令:s = OssecSocket(common.REQUEST_SOCKET)msg = "{0} com upgrade {1} {2}".format(str(self.id).zfill(3), sending_result[1], installer)s.send(msg.encode())

          2、客户端

 

Agentd.c的函数AgentdStart开始,进入到线程req_receiver
命令为com类型,进入到函数wcom_dispatch
wcom_open打开文件,
wcom_write写入文件,(安装包接收)

           wcom_upgrade进行升级。

wcom_upgrade函数的升级步骤:

a_unsign 解签;

b_uncompress解压;

cClean up upgrade folder

dUnmerge

eInstaller executable file安装执行文件;

fExecute执行升级操作 :源代码里的upgrade.sh

          . /etc/ossec-init.conf 2> /dev/null || exit 1

(sleep 5 && chmod +x $DIRECTORY/var/upgrade/src/init/*.sh && $DIRECTORY/var/upgrade/src/init/pkg_installer.sh) >/dev/null 2>&1 &

pkg_installer.sh包含了install.sh的执行。实际上就是安装脚本的更新步骤

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值