近期安全扫描发现我们的生产环境存在多个系统漏洞,需要紧急升级相关安装包。然而,生产服务器部署在内网隔离环境中,无法直接访问外部软件仓库。面对这一挑战,团队同事推荐了一个高效的解决方案:使用yum install --downloadonly命令进行离线包外下内部。今天,我将分享一种高效的方法:利用yum install --downloadonly功能在外网环境下载所需RPM包,然后在内网环境中进行安全部署。
🛠️downloadonly:离线包管理的利器
- 命令解析
# 基本语法 yum install --downloadonly --downloaddir=/home/offline-packages vsftpd -y # 参数说明 --downloadonly # 仅下载,不安装 --downloaddir # 指定下载目录 -y # 自动 yes⬇️ 离线包下载流程
- 单包下载
# 下载单个包及其依赖 yum install --downloadonly --downloaddir=/home/offline-packages/ vsftpd -y # 如果已安装,使用reinstall参数 yum reinstall --downloadonly --downloaddir=/home/offline-packages/ vsftpd -y- 批量下载多个包
# 创建需要升级的包列表 cat > package-list.txt << EOF openssl openssh-server kernel vsftpd EOF # 批量下载 while read pkg; do yum install --downloadonly --downloaddir=/home/offline-packages/ $pkg -y done < package-list.txt- 下载特定版本
# 下载指定版本的包 yum install --downloadonly --downloaddir=/home/offline-packages/ vsftpd-3.0.3 -y⏳依赖处理
- 检查下载完整性
# 查看下载的包 ls -lh /home/offline-packages/*.rpm # 统计数量 find /home/offline-packages/ -name "*.rpm" | wc -l # 生成包列表(用于审计) rpm -qip /home/offline-packages/*.rpm | grep -E "Name|Version|Release" > package-info.txt💻内网部署
- 传输包到内网
# 打包压缩 tar -czf offline-packages.tar.gz -C /home/offline-packages/ . # 将此问文件通过介质传输到内网,在内网服务器操作 # 1. 创建本地仓库目录 mkdir -p /opt/local-repo # 2. 解压传输的包 tar -xzf offline-packages.tar.gz -C /opt/local-repo/- 内网服务器使用rpm直接安装
# 直接安装所有下载的rpm包 rpm -Uvh /opt/local-repo/*.rpm # 或者按需安装 rpm -Uvh /opt/local-repo/vsftpd*.rpm /opt/local-repo/openssl*.rpm🚀总结
通过yum install --downloadonly命令,我们可以轻松构将升级部署包在外网下载,然后传输到内网升级。这种方法不仅适用于安全升级,还可用于:
新建内网服务器的快速部署
多服务器批量更新
特定版本软件的标准化部署
紧急漏洞的快速响应
掌握这一技能,你将能够在内网环境中游刃有余地管理Linux服务器的软件包,既保证了安全性,又不失灵活性。
❗温馨提示:生产环境操作前,请务必在测试环境充分验证,并制定详细的回滚方案。安全无小事,谨慎每一步!