Sau*_*ode 13 security yum centos apt software-installation
我对使用 yum 安装软件包不是很熟悉。在前世,我使用了 apt。
目前,我正在查看一些运行说明
# yum install http://example.com/package.rpm
这显然会订阅一个特定的存储库,从中可以下载更多的包。这是一件安全的事情吗?
为了比较,我知道 apt 包有 gpg 签名,这意味着通过 http 下载不是问题。如此处所述。并且在使用apt下载主库外的包时,可以手动添加一个让apt接受的gpg密钥,以确保任何非标准包都具有相同的可信来源。
如果我运行上面的命令,yum 会在开始安装之前要求我接受 gpg 密钥,还是可以安装任何东西?
如果相关,我的/etc/yum.conf
文件包含gpgcheck=1
在该[main]
部分内。
Joe*_*ato 13
有一点需要解释你的问题。
首先,要了解是很重要的YUM
,并rpm
一起工作:
rpm
,用于安装各个 RPM 包。您可以将rpm
命令行工具视为类似于dpkg
命令行工具,因为两者都安装了没有依赖项的独立软件包。yum
是安装 RPM 包及其依赖项的高级程序。您可以认为该yum
命令类似于apt-get
两者都可以安装包及其所有依赖项。yum install
时应该使用包名,而不是 URL。例如:yum install package
,类似于您运行的方式:apt-get install package
。rpm -i https://url
,但如果您没有安装包的依赖项,则需要使用rpm -i
(痛苦的)或与yum
配置的存储库一一安装它们。现在,就 GPG 而言,需要了解一些适用于 Debian 和 RPM 打包系统的内容,但最重要的内容是:
至于 RPM 和 YUM GPG 签名:
gpgkey=https://example/gpg.key
或gpgkey=/usr/share/example/gpg.key
。如果需要多于 1 个,您可以指定多个 GPG 密钥。gpgcheck=1
和repo_gpgcheck=1
。第一个选项导致yum install
验证包本身的 GPG 签名,第二个选项验证存储库的 GPG 签名。理想情况下,您应该同时使用两者,但许多存储库没有正确配置以支持两者。yum install
,如果尚未导入,yum
将尝试导入 中列出的 GPG 密钥gpgkey
。系统将提示您接受或拒绝。pygpgme
在系统上安装该软件包才能验证 GPG 签名。在最新版本的 RHEL 和 CentOS 上,pygpgme
会自动安装 依赖项yum
,但您应该验证它是否已安装在您的系统上。apt-transport-https
,yum
可以开箱即用地通过 HTTPS 说话,但您应该确保yum
您使用的版本具有sslverify
默认启用的选项;有些版本yum
没有。如果您的版本没有,您应该将其设置为启用。验证 SSL 证书至关重要。即使在包和存储库上都有 GPG 签名,存储库仍然容易受到重放攻击;如果可能,您应该通过 HTTPS 访问您的存储库。对一次攻击的简短解释是,恶意攻击者可以在特定时间对存储库元数据和相关的 GPG 签名进行快照,并将该元数据和签名重放给请求它的客户端,从而防止客户端看到更新的包。由于未触及元数据,因此 GPG 签名将有效。然后,攻击者可以利用未更新的软件中的已知错误来攻击机器。您可以在本文中阅读有关对包管理器的攻击的更多信息。
我写了两篇关于GPG 和 YUM/rpm以及GPG 和 APT 的博文。
如果您还有其他问题我可以回答,请发表评论;包管理非常难以正确执行。
归档时间: |
|
查看次数: |
20077 次 |
最近记录: |