1 背景
Apache Log4j2漏洞报出以来都在加班赶点地处理这个漏洞,生产环境中有20台服务器,报出的都是相同的一个漏洞。
CloudResetPwdUpdateAgent
CloudrResetPwdAgent
一键式重置密码功能。弹性云服务器的密码丢失或过期时,如果提前安装了一键式重置密码插件,则可以应用一键式重置密码功能,给弹性云服务器设置新密码。
内部要求本周必须处理了,某云厂家给反馈说从防火墙上统一处理过了,从某云的后台管理界面中扫描log4j2的漏洞已经没有了,但是使用工具从服务器上检测,还是有的。再次跟某云沟通他们说后续还会统一处理,这个一边是公司内部要求时限,一边是某云的没有时间节点的空头支票。
本篇是在上一篇《Apache Log4j2漏洞修复》单机修复基础上进行的,批量修复建议先使用一台服务器确认修复正常后,使用批量修复。修复前备份原log4j2。
2 环境
项目 | 版本 | 说明 |
---|---|---|
Centos | 7.6 | 服务器操作系统 |
ansible | 2.9.9 | 运维工具 |
log4j2 | 2.17.0 | 升级程序 |
log4j2_check | 0.0.3 | log4j2漏洞检测工具 |
3 修复步骤
3.1 安装ansible
在云服务器内部找一台服务器安装ansible
创建目录
mkdir -p /home/package/
将升级包和检测软件上传至该服务器上/home/package/目录,ansible离线版可以参考之前的文章去下载
安装
tar -xzvf ansible_v2.9.9_install.tar.gz # 解压安装包,
cd ansible_v2.9.9_install # 进入解压目录
chmod +x ansible_v2.9.9_install.sh # 赋权执行权限
sh ansible_v2.9.9_install.sh # 安装执行
配置ansible
修改配置文件/etc/ansible/hosts
非连续IP设置
[tyy]
192.168.0.2 ansible_ssh_user=root ansible_ssh_pass=xxxxxx
192.168.0.4 ansible_ssh_user=root ansible_ssh_pass=xxxxxx
......
连续IP设置
192.168.0.2至192.168.0.21
[tyy]
192.168.0.[2:21]
[hlw:vars]
ansible_ssh_user=root
ansible_ssh_pass=XXXXXXXX
测试配置
ansible tyy -m ping
3.2 升级修复
执行如下语句
进入到/home/package
cd /home/package
ansible tyy -m copy -a "src=log4j-api2.16.0.jar dest=/CloudResetPwdUpdateAgent/lib/"
ansible tyy -m copy -a "src=log4j-core-2.16.0.jar dest=/CloudPesetUpdateAgent/lib/"
ansible tyy -m copy -a "src=log4j-api-2.16.0.jar dest=/CloudrRestPwdAgent/lib/"
ansible tyy -m copy -a "src=log4j-core-2.16.0.jar dest=/CloudrPresetPwdAgent/lib/"
删除旧文件
ansible tyy -m shell -a "chdir=/CloudResetPwdUpdateAgent/lib/ rm -rf log4j-api-2.8.2.jar"
ansible tyy -m shell -a "chdir=/CloudResetPwdUpdateAgent/lib/ rm -rf log4j-core-2.8.2.jar"
ansible tyy -m shell -a "chdir=/CloudrPresetPwdAgent/lib/ rm -rf log4j-api-2.8.2.jar"
ansible tyy -m shell -a "chdir=/CloudrPresetPwdAgent/lib/ rm -rf log4j-core-2.8.2.jar"
执行
ansible tyy -m shell -a "chdir=/home/ ./log4j2check_linux_amd64"
3.3 验证
验证是每次操作中检验操作最有效的方法,没有验证就不知道以上操作的有效性,所以验证是一个收尾阶段必不可少的一个环节。
本次修复的漏洞为某云平台一键式重置密码功能使用,
登陆某云的服务平台,找到修复后的任意一台服务器,使用一键重置密码,修改新的密码,然后使用新密码进行登陆测试,确认修复功能是否正常使用。