保持您的发行版安全更新为最新
在您的桌面或服务器环境中,使 Linux 成为并保持一流角色的关键要素之一是确保其安全补丁是最新的。您采取措施在网络和硬件级别解决安全问题,但只需要一个安全漏洞就可能危及您的整个环境。所有用户,无论是商业用户、非营利用户还是家庭用户,都必须知道如何更新他们的系统和应用程序,并且他们必须定期这样做。
保持系统清洁的关键步骤有两个:知道何时更新和实际执行更新。第一个问题可以通过监控您特定发行版的安全公告邮件列表来解决。第二个问题可以通过多种方式通过图形和命令行工具来解决。一些发行版还包括自动升级软件实用程序,可以帮助您监控您的系统。
我承认,当提到从一个软件包版本移动到另一个版本时,我互换使用术语“更新”和“升级”。这些本质上意味着相同的事情。您还希望在更新软件时小心,以免安装您不打算安装的软件包版本。软件包的开发版本通常带有不同的版本系列。如果版本差异太大,请检查是否有不同的更新。
本文调查了命令行和 GUI 工具,用于保持您的 Linux 系统最新。我们特别关注 Debian 3.0 (Woody)、Mandrake 10.0、SuSE 9.1 和 Fedora Core 2。
那么您如何知道何时应该更新呢?一个好的方法是订阅您的发行版提供的安全公告。在线资源提供了本文涵盖的发行版及其各自安全邮件列表的 URL。这些通常是低流量邮件列表,用于提醒您与安全相关的补丁或更新。它们通常还提供直接链接以下载更新的软件包和 MD5 校验和,以确保您拥有干净的软件包。您可以手动以这种方式安装软件包。如果需要,您可能还需要获取任何依赖项。
另一种知道何时更新的方法是使用脚本或应用程序轮询任何更新。SuSE 9.1 和 Fedora Core 2 包括使用 GUI 工具自动更新当前软件的简便方法。Debian 和 Mandrake 也都具有简便的 GUI 工具,并且可以编写脚本在半夜下载软件包,让您稍后升级。
我必须对在无人值守的情况下升级软件提出警告。例如,我大量配置了 Apache Web 服务器。当我升级时,它总是询问我是否要替换我的配置文件。我通常运行diff看看更改会做什么,但我很少让他们覆盖我的配置文件。如果您有任何关键应用程序,请确保您注意升级的软件版本中的任何更改。始终备份您的关键应用程序配置文件。
RPM 命令行工具是手动且可靠的升级 RPM 安全更新的方法。rpm 命令有很多用于各种选项的开关,但对于升级软件包,您应该运行
# rpm -Uv package.rpm
对于 RPM 文件,您可以指定本地文件名,甚至 FTP 或 HTTP 位置。如果您的安全邮件列表包含软件包更新的直接 URL,则命令行更新非常简单。有关 rpm 命令行工具的更多信息,请查看 RPM 网站或 man 手册。
Debian 和其他基于 Debian 的发行版使用 dpkg 作为其软件包管理系统。它曾经代表 Debian GNU/Linux 软件包管理器。dpkg FAQ 页面指出,它不再代表任何东西,因为它在非 Debian 和非 Linux 环境中使用。此软件包管理器为 APT(高级软件包工具)和 GUI 工具(如 Synaptic)执行中级工作。与 RPM 非常相似,dpkg 包括大量的命令行开关,但我们专注于简单的升级开关
# dpkg -i package.deb
高级软件包工具 (APT) 是您可能在 Debian 中完成大部分命令行软件包管理的地方。APT 使用可用软件包的存储库列表。如果存储库的软件包列表中有较新的软件包版本,APT 将下载该软件包并将该过程移交给 dpkg。首先,确保您的 sources.conf 文件中具有安全更新源。它应该读取
deb http://security.debian.org/ stable/updates main
您可能会使用 woody 而不是单词 stable,但两者都可以。编辑 sources.conf 文件后,您还需要更新您的可用软件包列表。要更新然后升级它们,请运行 apt-get 两步
# apt-get update # apt-get upgrade
这仅升级不需要修改其他软件包的软件包。要升级需要某种依赖关系的软件包,请运行
# apt-get update # apt-get -u dist-upgrade
-u 开关精确显示哪些软件包将被升级、新安装或删除。您可以设置这些行从 crontab 运行,并让您的机器下载,但不安装,您需要的最新软件包。要放入您的 crontab 文件中的命令可能如下所示
(apt-get update && apt-get -dy upgrade) \ | mail -s "`hostname` update" root
此命令下载最新软件包的列表,如果成功,则下载需要更新的软件包。它通过电子邮件将结果发送给 root 用户。根据需要替换您的用户名或电子邮件地址。当您收到电子邮件通知您有更新时,您可以运行
# apt-get upgrade
这会安装先前下载的软件包,允许您在控制台或终端上进行操作。一些软件包升级需要额外的用户输入,因此运行完全自动化的升级解决方案可能不明智。
在 GUI 方面,对于 Debian 用户,Synaptic 是 dpkg 的完整前端。要运行 Synaptic,请转到桌面环境中的 Debian 菜单,然后选择应用程序→系统→Synaptic 软件包管理器。Synaptic 的工作方式与 APT 非常相似。要更新您的可用软件包列表,请单击窗口左上角的“重新加载”按钮。镜像位置的窗口列表会更新您有关软件包列表下载状态的信息。当 Synaptic 完成下载软件包列表时,您可以查看所有可用的升级。需要升级的软件包具有绿色框和一个向上箭头。新提供的软件包在框上有一个黄色星号。已安装的软件包具有绿色框,而未安装的软件包具有白色框。
要下载和安装所有软件包更新,请单击“应用”按钮。然后,将弹出一个窗口,详细说明哪些软件包将被升级、安装、保留或删除(图 1)。保留意味着该软件包需要未明确声明的其他依赖项。单击“应用”开始下载更新。在下载过程之后,更新将在类似终端的文本框中安装,允许您在需要时回答问题。完成后,单击“关闭”按钮(图 2)。
安装 Mandrake 10.0 时,首次登录之前的最后步骤之一是检查是否有任何关键更新。如果您是从头开始安装此发行版,这将是一个很好的步骤。但是,现在 Mandrake 已经安装,并且您需要针对安全漏洞的补丁,您该怎么办呢?
Mandrake 10.0 用户有一个不错的 GUI 软件包管理应用程序,称为 rpmdrake。您可以通过单击 KDE 星形菜单并选择系统→配置→软件包→Mandrake 更新来找到它。您也可以运行rpmdrake作为 root 用户在命令行上。回答几个问题,然后您将看到一个需要更新的软件包列表,因为安全更新(图 3)。要更新所有这些软件包,请单击“全部”行上的框,然后按“安装”按钮,并拿上您最喜欢的饮料!
下载并安装所有更新后,您将看到一个对话框,告知您所有内容都已安装。就这么简单。
命令行 urpmi 软件包与我的 Mandrake 10.0 默认安装一起安装。urpmi 的作用很像 APT,允许您使用多个源来更新软件包。可以通过 CD-ROM、本地 RPM 目录或 FTP 或 HTTP Internet 源访问这些存储库。为了安装安全更新的目的,我们希望运行类似于以下命令的操作
# urpmi.addmedia --update updates \ ftp://example.com/Mandrake10.0/RPMS \ with ../base/hdlist.cz
这会将来自 FTP 镜像的安全更新添加到您的源列表中。您需要将 ftp:// URL 替换为真实的镜像。网站 Easy urpmi 为您提供了一个不错的 Web 界面,用于选择您最近的镜像、您的架构以及您要从中下载更新的源池。
要更新可用软件包的列表,然后安装所有软件包更新,请执行 urpmi 两步
# urpmi.update -a # urpmi --auto-select
然后,系统将提示您安装更新的软件包和任何依赖项(如果需要)。
SuSE 9.1 有类似的方法使用 YaST2 在线更新 (YOU) GUI 工具安装更新。您可以通过单击 SuSE 图标,然后单击系统→YaST 来找到它。输入您的 root 密码后,单击“软件”,然后单击“在线更新”。您可以选择您的安装源或手动添加新服务器(图 4)。此外,您可以配置 YOU 在每天的指定时间自动下载和/或安装更新。单击“下一步”下载信息,告诉您需要更新哪些软件包。更新此列表后,我们将看到软件包列表、补丁描述和磁盘使用情况(图 5)。在补丁列表中,红线表示安全更新,蓝线表示推荐更新,黑线表示可选更新。要执行升级,请单击“接受”。更新完成后,单击“完成”,这将配置一些系统服务。除了 YOU 系统之外,您还可以从命令行使用 rpm 命令。

图 4. YaST2 在线更新的镜像选择过程
Red Hat 更新代理 up2date 已经存在了几个 Red Hat 版本,并且存在于 Fedora Core 2 中。要在 Fedora Core 2 中检查新的软件更新,请右键单击系统托盘中的红色感叹号,然后选择“检查更新”。要下载并安装最新的更新,请右键单击红色感叹号,然后选择“启动 up2date”。您可以选择默认设置。首次运行 up2date 时,系统会询问您是否要安装 Red Hat GPG 密钥签名。我在我的系统上选择了“是”。
在“频道”菜单中,您可以订阅两个频道或存储库,其中保留了更新,fedora-core-2 和 updates-released-fc2。up2date 中的频道类似于 APT 或 urpmi 中的存储库。系统会要求您注意您要跳过的任何软件包。我已经列出的软件包是内核升级。单击“前进”将为您提供可用软件更新的列表(图 6)。要选择所有更新,请单击“选择所有软件包”旁边的复选框。
单击“前进”开始检索软件包。同样,此时休息一下,喝您最喜欢的饮料会很好。当下载过程完成后,单击“前进”开始安装过程。当安装过程完成后,您将获得一个很好的摘要,准确说明安装了哪些软件包及其版本(图 7)。
Fedora Core 2 也基于 RPM 系统,这允许您在终端中使用 rpm 命令。
另一个已获得声誉的软件包管理前端是 Yellow dog Updater Modified 或 Yum。Yum 与 APT 非常相似,但它有作者在 Yum 网站上解释的几个不同之处。本质上,Yum 的作用类似于 urpmi 或 APT,在处理软件包存储库方面,然后它将实际的软件包安装交给 RPM。anaconda 安装程序使用用于 RPM 访问的 Python 绑定,因此您可以指望 Python 支持会一直存在。
棒球界有一句谚语:“你的水平只和你最后一次击球一样好。” 这个原则在计算机应用中的意思是,您的系统安全程度仅与您上次更新一样好。花哨的网络防火墙和磁条服务器机房门钥匙是很好的安全措施,但是如果您不保持 Linux 系统为最新,运行过时的 Apache 或 OpenSSH 可能会使您的系统陷入停顿。
本文的资源: /article/7862。
Jeremy Turner 是一位 Linux 用户超过五年,并且热衷于帮助用户学习开源软件。他编写 PHP,唱第一男高音,看太多棒球,并定期查看他的电子邮件 (jeremy@linuxwebguy.com)。