在 Linux 上安全下载软件的 5 种方法

Linux 上没有病毒是一种常见的误解。 事实是:它们确实存在。 尽管您可以检查程序文件以找到受感染的文件,但您可能需要几个月的时间才能意识到您的 Linux 系统已被入侵。

信任是一件微妙的事情,你不应该轻易放弃它。 仅仅因为互联网上提供了某些东西并不意味着您可以信任它。 您需要采取某些步骤来保护您的操作系统和您自己。

疏忽的安全风险范围从信息盗窃和感染病毒到未经授权的用户访问您的 Linux 机器。 因此,本文列出了在 Linux 上下载软件的安全方法。

1.检查哈希值

哈希值(或校验和)是在某些数据通过加密函数时产生的字母数字字符串。 它充当您文件的数字签名。

为确保您没有下载损坏的文件,许多开源网站通常会提供您在完成下载文件后应该获得的预期哈希值。 让我们来一个 example.

假设您正在下载 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

你应该得到上面提到的哈希值。 如果您得到不同的值,则意味着您的下载已损坏,您需要立即将其删除。

在这个特殊的 example,我们使用的散列函数是sha512。 那是因为这是 Apache Tomcat 基金会决定使用它来保护其下载的完整性。

其他站点可能使用不同的散列函数,例如流行的 sha256 和 sha384 函数。

如果网站使用其他散列函数,您需要做的就是用散列函数替换命令的名称。

sha256sum filename-of-download
sha384sum filename-of-download

还值得注意的是,我们使用的文件是 柏油 文件(即存档文件)。 但是,如果您下载的是二进制文件呢? 好消息是,在 Linux 上,无论文件类型如何,您都会得到相同的哈希结果。

Linux 上散列函数的默认模式是文本。 因此,要切换到二进制模式,请使用 -b 选项如下:

sha256sum -b filename

2. 使用安全站点

从安全站点下载可大大降低感染恶意软件的风险。 根据经验,您应该始终使用您希望下载的软件的官方下载站点。 如果由于某种原因您无法找到官方网站,请考虑使用受信任的网站。

下载网站如 文件马源锻造 是您可以访问的受信任站点的示例。 这些网站已经存在了很长时间,并赢得了用户的信任。

3. 自己编译源代码

开源社区存在的最大原因之一是您不必信任大型软件公司并希望他们不会在您的 PC 上做任何未经授权的事情。

当你下载二进制文件时,你已经赋予了编译代码的人一些权力。 但是,如果您可以访问源代码,则可以将权力重新掌握在自己手中。

使用开源,您可以独立验证该软件是否完全按照作者所说的进行。 唯一的缺点是您需要具备高于平均水平的编程技能。 您还需要在给定的主题领域中充分学习。

您还可以决定具有战略意义,只检查感兴趣的关键文件。

作为一个 example,假设您从 GitHub 存储库中克隆了一些 C 源代码。 以下是您自己编译它的方法。

运行以下命令安装 构建必备 包裹。 该软件包包含在 Linux 上构建软件时所必需的重要工具。

sudo apt-get install build-essential

现在使用 gcc 编译器编译 C 代码。

gcc program-name.c -o program-name

编译后,您可以通过键入以下命令运行程序:

./program-name

4.使用官方包管理器

安装、更新和卸载软件的最简单方法是使用包管理器。 其中有许多,例如 pacman、dpkg、DNF 和 APT。 包管理器直接与官方软件存储库和应用商店合作。

包管理器为您做了很多繁重的工作。 他们处理标准操作,例如管理软件所需的依赖关系、确保下载的完整性和真实性以及管理版本控制。

另一个好处是你的发行版通常预装了一个包管理器。 为了 exampleDebian 10 带有 APT,而基于 Arch 的系统带有 pacman。

5. 个人研究

软件世界是一个不断变化的地方,跟上安全趋势是保护自己的一个关键方面。 您可以在不同的场景中选择多个安装选项。 为了 example,在虚拟机上安装软件或使用应用程序容器化。

应用程序容器化是一个特别令人兴奋的趋势,因为它确保您的应用程序在不同的执行环境中以相同的方式运行。

能够将软件核心和依赖项的执行与底层基础设施隔离开来,提供了前所未有的安全性。 为了 example,您只需要担心一次验证依赖项的安全性,然后期望它在不同的环境中产生共鸣。

查看软件评论并关注 GitHub 上的讨论也是一个很好的做法。 软件评论可以让您清楚地了解下载后的预期、用户可能观察到的意外行为以及他们的建议。

GitHub 讨论还可以让您了解在软件安装之后/期间应该采取哪些主动措施。 您还可以获得官方文档中未包含的许多其他安全注意事项。

您还应该注意在 GitHub 上有许多贡献者的分叉。 可能会发生协议更改,而您无法及时了解这些更新将危及您的安全。

建议和良好实践

在下载任何主要软件之前首先更新系统的软件包和存储库列表始终是一个好习惯。 Arch Linux 中的每个包管理器,pacman example,为您提供安装、更新和删除软件包的选项。

确保安装的软件包是最新的后,您可以继续下载所需的软件。 只要有可能,如果您可以使用包管理器下载包,那么就这样做。 这是在 Linux 上安装和更新软件的最简单、最安全的方法。