03、Linux安装软件的几种方法

Linux 安装软件的几种方法与最小安装整改:rpm -ivh/-Uvh/-Fvh 与 rpm -qa/-ql/-qi 查询、yum/dnf install/update/history 与本地仓库配置、dpkg -i 与 deb 包安装、apt install/remove/purge 与 apt-cache policy、源码编译 tar/configure/make/make install 与 make uninstall、免安装解压即用软件的登记管理,以及 rpm -e –test 与 apt-get -s remove 依赖预演、包签名校验、与「最小安装」控制点的关联说明。

定位:等保「入侵防范——最小安装」控制点的配套参考。测评整改中经常需要在现场装卸软件包(清理多余组件、部署扫描 Agent、离线安装补丁),本文汇总各包管理器的常用操作。 配套文章:11、Linux操作系统加固手册(见"入侵防范-最小安装"节)。

使用说明:

  • 本文为加固操作手册:所有命令都会修改配置,可能中断服务、断开当前会话或需要重启。实施前必须完成变更审批、确认业务窗口、备份原配置(设备 savecopy running-configbackup startup-configuration,主机备份 /etc、注册表与关键业务数据),并准备可执行的回滚预案
  • 先在测试环境或单台设备灰度验证,确认无业务影响后再批量推广;每完成一项立即用文中「验证」命令核验生效——配置已下发不等于策略已生效(如 H3C 未 password-control enable、Linux 未对存量账户 chage、Windows 未 gpupdate /force)。
  • 示例中的地址、账户名、口令、路径均为演示值(如 PleaseChange@123192.168.10.20admin123),现场须替换为符合本单位口令策略与网络规划的真实值,严禁直接沿用文中示例口令;对外发布或归档时须对个人信息与内网管理地址脱敏。
  • 命令不存在、视图名或参数与本文不一致时,先用 display version / show version / winver 确认版本与部署形态,再查阅对应版本官方文档换用等效命令;版本差异不得直接作为「无法整改」的结论,须给出替代措施并评估其实际效果。
  • 涉及账户、锁定、超时、防火墙与端口收敛的变更存在锁死自身风险:务必保留一条已验证的恢复通道(Console 口、带外管理口、堡垒机会话或另一管理员账户)后再实施。
  • 加固完成后按「16、安全评估加固记录表3.0」逐项留痕(整改前后回显、操作人、时间、验证结论、回退情况),并纳入复测;测评判定口径以 GB/T 28448-2019 与《高风险判定指引》为准,本文的「加固要点」不构成最终测评结论。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点,并写明判定依据与承载该能力的上位组件。
  • 依据 GB/T 28448-2019「按测评对象实际承载功能与数据处理范围判定」原则:控制能力由统一认证平台、堡垒机、日志审计系统、终端管理系统、虚拟化平台或云托管平台承载时,应注明测评单元边界后判定不适用或转由上位组件核查,不得机械按缺失判不符合。
  • 产品版本确实不提供该能力(如老旧设备无 SNMPv3、无可信根、社区版无审计模块、已停止官方支持的操作系统)时,须核查替代措施并按替代措施的实际效果定档,不得直接判不适用;已停止支持的版本应同时提出升级或补偿控制建议。

一、rpm 包(RHEL / CentOS / openEuler / 麒麟等 RPM 系)

rpm -ivh soft-1.2.3-1.el7.x86_64.rpm     # 安装(i=install, v=详细, h=进度)
rpm -Uvh soft-1.2.3-2.el7.x86_64.rpm     # 升级安装
rpm -e soft                              # 卸载(用软件名,不是包文件名)
rpm -qa                                  # 查询所有已安装软件包
rpm -qa | grep -i openssh                # 按关键字查询
rpm -ql soft                             # 查看某包安装了哪些文件
rpm -qf /usr/bin/ssh                     # 反查文件属于哪个包
rpm -K soft-1.2.3-1.el7.x86_64.rpm       # 校验包签名(防加固时引入被篡改的安装包)
rpm -e soft --nodeps                     # 忽略依赖强制卸载(慎用,可能连带破坏其他组件)
rpm -e soft --test                       # 卸载预演,不实际执行

二、yum / dnf(在线仓库,自动解决依赖)

yum list installed                       # 已安装清单(最小安装清点常用)
yum provides /usr/bin/ssh                # 查询命令由哪个包提供
yum -y install soft                      # 安装
yum remove soft                          # 卸载
yum install --downloadonly --downloaddir=/tmp/pkg soft
                                         # 仅下载不安装,用于内网离线加固场景

RHEL 8+ / openEuler / 银河麒麟 V10 服务器版使用 dnf(命令与 yum 兼容):

dnf install soft
dnf remove soft
dnf history                              # 查看事务历史(出问题可回滚)
dnf history undo 12                      # 回滚某次事务
dnf autoremove                           # 清理无用依赖

三、deb 包与 dpkg(Debian / Ubuntu / 统信 UOS 桌面系)

dpkg -i soft-1.2.3-1.deb                 # 安装
dpkg -r soft                             # 卸载(保留配置)
dpkg -P soft                             # 卸载并删除配置文件
dpkg -l | grep -i soft                   # 查询
dpkg -L soft                             # 查看包文件清单

四、apt(在线仓库,Debian 系)

apt-cache search soft                    # 搜索
apt-get install soft                     # 安装
apt-get remove soft                      # 卸载(保留配置)
apt-get --purge remove soft              # 卸载并删除配置
apt-get autoremove                       # 清理无用依赖
apt-get autoclean && apt-get clean       # 清理缓存包
apt-get upgrade                          # 更新已安装包
apt list --installed                     # 已安装清单

简言之:dpkg 只能安装本地 deb 包;apt 能在线下载安装并自动处理依赖,二者关系同 rpm 与 yum/dnf。

五、源码编译安装(tar.gz / tar.bz2)

tar -xzvf soft.tar.gz                    # 解压解包(bz2 用 tar -xjvf)
cd soft
./configure                              # 检查编译环境,生成 Makefile
make                                     # 编译
make install                             # 安装(通常在 /usr/local 下)
make clean                               # 清理编译临时文件

卸载:仅当软件提供 make uninstall 时可用,否则需按 INSTALL/README 手工删除安装文件——这也是测评不建议生产环境使用源码安装的原因之一(升级与卸载不可控)。

六、免安装软件(解压即用)

tar -xzvf soft.tar.gz
chmod +x soft/bin/soft
ln -s /opt/soft/bin/soft /usr/local/bin/soft   # 可选:加入 PATH 方便调用

七、与"最小安装"的关联(测评视角)

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)(遵循最小安装原则,关闭不需要的系统服务与默认共享)、e)(应能发现可能存在的已知漏洞并及时修补,补丁与软件来源须可控)

加固要点:按业务需要最小化安装组件,卸载或禁用与业务无关的软件包与服务;软件与补丁来源必须可控——优先使用发行版官方仓库或厂商签名包,离线环境搭建本地镜像仓库并校验签名/GPG,禁止从不可信站点下载二进制直接部署;源码编译安装须留存来源、版本与编译参数记录并纳入资产与漏洞台账。卸载前先用 rpm -e --test / apt-get -s remove 预演依赖影响,避免连带移除业务组件。

验证方法rpm -qa / dpkg -l 导出已安装清单并与业务需要清单比对;yum repolist / apt-cache policy 确认仓库来源;rpm -K 包名 校验签名;yum history / dnf history/var/log/apt/history.log 查看安装与回滚记录;卸载预演输出与变更记录归档。

  • 核查方法rpm -qa | wc -lapt list --installed | wc -l 清点软件包数量,对照部署方案与业务清单,识别多余组件(如图形界面、编译工具链、示例程序);
  • 整改方法:卸载多余组件优先用包管理器(yum remove / apt purge);--nodeps 强制卸载前先 --test 预演,避免连带破坏依赖;
  • 离线加固:隔离网环境用 yum install --downloadonly 或官方离线包,安装前用 rpm -K 校验签名;
  • 判定口径:仅安装业务必需组件、无业务无关的应用程序即为符合;单纯"数量少"不是目的,关键是无多余可被利用的组件。

参考依据

  • GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》(8.1.4.4 入侵防范 a) 最小安装、e) 已知漏洞修补与软件来源可控):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF
  • GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》(测评对象边界认定、单元测评实施与结果判定:符合/部分符合/不符合/不适用):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C
  • GB/T 22240-2020《信息安全技术 网络安全等级保护定级指南》、GB/T 25070-2019《安全设计技术要求》、GB/T 28449-2018《测评过程指南》,可在全国标准信息公共服务平台检索:http://openstd.samr.gov.cn/bzgk/gb/
  • Red Hat Enterprise Linux 官方文档入口(Security Hardening / PAM / SELinux):https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
  • Linux man-pages(man7.org,rpm/yum/pam/sshd/auditctl 手册页):https://man7.org/linux/man-pages/
  • 《网络安全等级保护测评高风险判定指引》(中关村信息安全测评联盟团体标准)——高风险情形判定口径,站内对照表:22、高风险判定指引与加固对照表
  • 命令核验说明:包管理命令以 man7.org(rpm/yum/dnf/apt/dpkg 手册页)与各发行版官方文档核验(核验日期 2026-09-02)。五处须留意:① RHEL 8+/Fedora 中 yumdnf 的兼容软链,yum historydnf history 行为基本一致但插件与配置路径不同,Debian/UOS 系则完全没有 yum;② rpm -e 包名 会因依赖关系失败,须先 rpm -e --testrpm -q --whatrequires 包名 预演,禁止用 --nodeps 强行卸载(会破坏业务组件且难以恢复);③ Debian 系 apt-get remove 保留配置文件、purge 一并清除,整改留痕须写明所用动作;④ 源码编译安装不进入包管理数据库,漏扫与资产台账无法自动发现,须手工登记来源、版本、编译参数与安装路径,并确认是否提供 make uninstall;⑤ 离线环境安装前须校验包签名与摘要(rpm -K 包名dpkg-sig --verifydebsig-verifysha256sum 比对官方值),从不可信来源获取的二进制不得直接部署到生产主机。

关联文章