首页/安全/安全加固速查/包版本锁定与排除(versionlock/apt-mark)
补丁与漏洞管理50 条

包版本锁定与排除(versionlock/apt-mark)

业务系统对特定版本有兼容要求时,用版本锁定防止“顺带升级”:锁定的包必须登记理由与复核日期。

安全加固速查安全更新于 2026-10-13

版本锁定怎么用

业务系统对某个组件版本有兼容要求时,包管理器提供版本锁定来阻止“顺手升级”:RHEL 系用 versionlock 插件,Debian 系用 apt-mark hold。锁定的麻烦在于它同时挡住了安全补丁,所以每个锁定项都要登记理由、责任人与复核日期,而不是锁完就不管。

基本信息

加固项版本管理与补丁平衡
适用平台RHEL 系与 Debian 系
工具yum/dnf versionlock、apt-mark hold
登记要求锁定理由、责任人、复核日期
主要风险同时阻断安全更新
风险等级低

典型使用场景

  • 核心中间件兼容性约束:升级需要业务回归,先锁版本争取时间
  • 甲方交付要求:按指定版本交付并说明锁定范围
  • 紧急规避:某次更新引入回归问题时临时锁定相关包
  • 定期复核:在每个安全公告周期检查锁定项是否仍然必要
  • 报表口径:补丁合规统计里显式标注被排除的包

锁定与解除

锁定与解除
# RHEL 系:安装版本锁定插件并锁住指定包
yum install -y yum-plugin-versionlock
yum versionlock add nginx && yum versionlock list
# Debian 系:等价做法
apt-mark hold nginx && apt-mark showhold
# 评估后解除锁定
# yum versionlock delete nginx
# apt-mark unhold nginx

各发行版命令

环境锁定查看与解除
RHEL 系(yum)yum versionlock add 包名yum versionlock list / delete
RHEL 系(dnf)dnf versionlock add 包名dnf versionlock list / delete
Debian 系apt-mark hold 包名apt-mark showhold / unhold
Windows 环境不适用本项改用更新审批与分组策略
锁定会同时挡住安全更新:每次公告评估时单独判断“这个锁是否仍然必要”,否则容易锁着锁着漏了漏洞。
老写法在新系统上可能改名或需要安装对应的 dnf 插件,迁移时不要照抄旧文档。
锁定项如果不出现在补丁合规报表里,就会形成统计盲区,报告需要显式标注排除原因。

落地检查点

  • 为每个锁定项登记理由、责任人与复核日期
  • 把锁定清单同步给补丁合规报表,说明排除原因
  • 在每个安全公告周期复查一次,确认锁仍必要
  • 解除锁定前安排业务回归,明确可接受的影响窗口

易错点

  • 锁定后不复核:一个临时措施变成永久策略,安全补丁长期无法落地
  • 锁定不在报表里体现:合规率看起来正常,实际有一批包被静默排除
  • 锁定范围过大:把整个依赖链一起锁住,升级路径被堵死,后续修复代价更高
  • 换发行版本时沿用旧命令:插件名称与包名变化导致命令无效,操作者以为已锁定

数据来源与参考

  • Red Hat 文档:versionlock 插件
  • Debian 文档:apt-mark hold

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌