在 Linux 上安全下载软件的 5 种方法
即使您的 Linux 计算机也容易受到病毒和恶意软件的攻击。除非您知道应该从哪里下载软件。
Linux 上没有病毒是一个常见的误解。事实是:它们确实存在。尽管您可以检查程序文件以找到受感染的文件,但您可能需要几个月的时间才能意识到您的 Linux 系统已受到损害。
信任是一件微妙的事情,你不应该轻易放弃它。仅仅因为互联网上提供了某些内容并不意味着您可以信任它。您需要采取某些措施来保护您的操作系统和您自己。
疏忽造成的安全风险包括信息被盗和感染病毒,以及未经授权的用户访问您的 Linux 计算机。因此,本文列出了在 Linux 上下载软件的安全方法。
1. 检查哈希值
哈希值(或校验和)是某些数据通过加密函数传递时产生的字母数字字符串。它充当您的文件的数字签名。
为了确保您没有下载损坏的文件,许多开源站点通常会提供一个预期的哈希值,您在下载完文件后应该获得该哈希值。让我们举个例子。
假设您正在下载 Tomcat 10,这是一种流行的 Web 服务器。 Tomcat 版本 10.0.6 的哈希值为:
3d39b086b6fec86e354aa4837b1b55e6c16bfd5ec985a82a5dd71f928e3fab5370b2964a
5a1098cfe05ca63d031f198773b18b1f8c7c6cdee6c90aa0644fb2f2 *apache-tomcat-10.0.6.tar.gz
*apache-tomcat-10.0.6.tar.gz 部分只是文件名。 3d39...2f2 中的值构成哈希值。
要获取此值,您需要转到下载存档文件的目录并运行以下命令:
sha512sum apache-tomcat-10.0.6.tar.gz
您应该获得上面提到的哈希值。如果您得到不同的值,则意味着您的下载已损坏,您需要立即将其删除。
在这个特定的示例中,我们使用的哈希函数是 sha512。这是因为 Apache Tomcat 基金会决定使用此功能来保护其下载的完整性。
其他网站可能使用不同的哈希函数,例如流行的 sha256 和 sha384 函数。
如果网站使用其他哈希函数,您只需将命令名称替换为哈希函数即可。
sha256sum filename-of-download
sha384sum filename-of-download
还值得注意的是,我们使用的文件是 TAR 文件(即存档文件)。但是如果您下载的是二进制文件怎么办?好消息是,在 Linux 上,无论文件类型如何,您都会获得相同的哈希结果。
Linux 上哈希函数的默认模式是文本。因此,要切换到二进制模式,请使用 -b 选项,如下所示:
sha256sum -b filename
2. 使用安全网站
从安全站点获取下载可以大大降低感染恶意软件的风险。根据经验,您应该始终使用您想要下载的软件的官方下载网站。如果由于某种原因您无法找到官方网站,请考虑使用受信任的网站。
FileHorse 和 SourceForge 等下载站点是您可以访问的受信任站点的示例。这些网站已经存在很长时间并赢得了用户的信任。
3. 自行编译源代码
开源社区存在的最大原因之一是您不必信任大型软件公司,并希望他们不会在您的 PC 上做任何未经授权的事情。
当您下载二进制文件时,您就向编译代码的人授予了一些权力。但如果您有权访问源代码,您就可以将权力重新掌握在自己手中。
通过开源,您可以独立验证该软件是否完全按照其作者的说法运行。唯一的缺点是您需要具备高于平均水平的编程技能。您还需要在给定的学科领域有很好的学识。
您还可以决定采取战略性措施,仅检查感兴趣的关键文件。
举个例子,假设您从 GitHub 存储库克隆了一些 C 源代码。以下是您自己编译的方法。
运行以下命令来安装build-essential软件包。该软件包包含在 Linux 上构建软件时所需的重要工具。
sudo apt-get install build-essential
现在使用 gcc 编译器编译 C 代码。
gcc program-name.c -o program-name
编译后,您可以通过键入以下内容来运行该程序:
./program-name
4.使用官方包管理器
安装、更新和卸载软件的最简单方法是使用包管理器。其中有很多,例如 pacman、dpkg、DNF 和 APT。包管理器直接与官方软件存储库和应用程序商店合作。
包管理器为您做了很多繁重的工作。它们处理标准操作,例如管理软件所需的依赖项、确保下载的完整性和真实性以及管理版本控制。
另一个好处是您的发行版通常预装了包管理器。例如,Debian 10 附带 APT,基于 Arch 的系统附带 pacman。
5. 个人研究
软件世界是一个不断变化的地方,跟上安全趋势是保护自己的一个关键方面。有多种安装选项,您可以在不同的场景中进行选择。例如,在虚拟机上安装软件或使用应用程序容器化。
应用程序容器化是一个特别令人兴奋的趋势,因为它确保您的应用程序在不同的执行环境中以相同的方式运行。
能够将软件核心的执行和依赖项与底层基础设施隔离,提供了前所未有的安全性。例如,您只需要担心验证依赖项的安全性一次,然后期望这会在不同的环境中产生共鸣。
查看软件评论并关注 GitHub 上的讨论也是一个很好的做法。软件评论可以让您很好地了解下载后的预期结果、用户可能观察到的意外行为以及他们的建议。
GitHub 讨论还可以让您了解在软件安装之后/期间应该采取哪些主动措施。您还可以获得官方文档中未包含的许多其他安全注意事项。
您还应该注意 GitHub 上有许多贡献者的分叉。协议可能会发生变化,如果您无法及时了解这些更新,将会危及您的安全。
建议和良好实践
在下载任何主要软件之前,首先更新系统的软件包和存储库列表始终是一个好习惯。每个包管理器(例如 Arch Linux 中的 pacman)都为您提供安装、更新和删除包的选项。
确保安装的软件包是最新的后,您可以继续下载所需的软件。只要有可能,如果您可以使用包管理器下载包,那么就这样做。这是在 Linux 上安装和更新软件的最简单、最安全的方法。