Grsecurity/获取 grsecurity
以下说明将引导您完成下载在系统上使用 grsecurity 所需的所有组件的过程。将每个组件下载到计算机上的同一目录中。
您需要
- 最新稳定版本的 grsecurity。
- 与 grsecurity 匹配的 gradm 版本,grsecurity 的管理实用程序。
- Linux 内核的完整源代码。
您还需要有必要的程序来构建、配置和安装系统上的自定义内核。首选方法和必需的工具取决于您使用的 Linux 发行版。如果您在配置或安装内核时遇到问题,请参阅发行版的文档。
将您的浏览器指向 http://grsecurity.net/。单击“下载”链接,然后选择“稳定”或“测试”补丁(自 2015 年 9 月 9 日起,grsecurity 的稳定补丁仅对商业客户提供)。在本说明文档中,我们将安装最新的稳定 grsecurity 版本,适用于内核 3.2.50。因此,补丁文件将被称为“grsecurity-2.9.1-3.2.50-201308052151.patch”。
所有 grsecurity 软件包的名称中都包含一个版本字符串。它包含版本本身的版本和它所针对的内核版本。例如,版本字符串 2.9.1-3.2.50-201308052151 告诉我们此 grsecurity 版本的版本是 2.9.1,它适用于内核版本 3.2.50。版本中的最后一部分是一个时间戳。 |
在本例中,我们下载了以下文件
- grsecurity-2.9.1-3.2.50-201308052151.patch
- grsecurity-2.9.1-3.2.50-201308052151.patch.sig - 这是此版本的 数字签名。
下载时gradm,grsecurity 的基于角色的访问控制系统的管理实用程序,您必须下载与您下载的 grsecurity 补丁版本匹配的版本。Gradm位于与 grsecurity 相同的下载页面上。
在本例中,我们下载了以下文件
- gradm-2.9.1-201308021745.tar.gz
- gradm-2.9.1-201308021745.tar.gz.sig - 这是此版本的数字签名。
grsecurity 补丁只能应用于 原始 内核。许多发行版使用额外的补丁修改官方内核,这意味着通过其软件包管理器获取的任何内核源代码软件包很可能与 grsecurity 不兼容。
为此,我们将从 http://www.kernel.org/ 下载官方未修改的内核。下载完整的内核源代码包及其签名(“.sign”文件),并确保其版本与您下载的 grsecurity 补丁版本匹配。在本说明文档中,版本为 3.2.50。所需的版本很可能不是最新的,因此您需要从 内核档案 中获取它。
对内核版本 2.6.32.61 的官方支持已于 2013 年底结束。 |
如果您打开了一个终端,您可以使用以下命令将内核源代码和签名都下载到当前工作目录
$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.50.tar.bz2 $ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.50.tar.sign
注意:grsecurity 补丁和内核的版本必须完全匹配。
grsecurity 和 gradm 软件包已使用加密方式签名,以便用户可以验证源代码自打包以来是否被修改。您可以在与 grsecurity 相同的下载页面上找到用于签署它们的公钥。向下滚动页面,直到看到一个标题,标题为“使用 GPG 验证这些下载内容”。标题下方是公钥的链接。将密钥下载到您放置 grsecurity 的目录中。
在您验证下载内容之前,您需要使用 GNU Privacy Guard (GPG) 将 grsecurity 密钥导入您的公钥环。如果您不熟悉 GPG 并想了解更多信息,请参考 GNU Privacy 手册。
要导入密钥,请在下载 grsecurity 及其密钥的目录中运行以下命令。
$ gpg --import spender-gpg-key.asc gpg: key 4245D46A: public key "Bradley Spengler (spender) <[email protected]>" imported gpg: Total number processed: 1 gpg: imported: 1
导入密钥后,通过在您的 grsecurity 目录中运行以下命令来验证已下载的 grsecurity 和 gradm 软件包
$ gpg --verify grsecurity-2.9.1-3.2.50-201308052151.patch.sig gpg: Signature made Mon 05 Aug 2013 06:55:44 PM PDT using DSA key ID 4245D46A gpg: Good signature from "Bradley Spengler (spender) <[email protected]>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 9F74 393D 7E7F FF3C 6500 E778 9879 B649 4245 D46A $ gpg --verify gradm-2.9.1-201308021745.tar.gz.sig gpg: Signature made Fri 02 Aug 2013 02:45:37 PM PDT using DSA key ID 4245D46A gpg: Good signature from "Bradley Spengler (spender) <[email protected]>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 9F74 393D 7E7F FF3C 6500 E778 9879 B649 4245 D46A
以下是一个签名验证失败的示例。补丁文件被有意修改以使验证失败。
$ gpg --verify grsecurity-2.9.1-3.2.50-201308052151.patch.sig gpg: Signature made Mon 05 Aug 2013 06:55:44 PM PDT using DSA key ID 4245D46A gpg: BAD signature from "Bradley Spengler (spender) <[email protected]>"
只要GPG报告签名良好,您无需担心关于密钥未经可信签名认证的警告。如果您使用自己的密钥签署了 grsecurity 密钥,您将不会收到警告。如果任一文件的验证失败(即,如果您收到“错误签名”消息),请重新下载有问题的文件并重试。
Linux 内核源代码包也已签名。请按照 Linux 内核网站上的说明 来验证内核源代码包。
成功验证下载的文件后,您就可以配置 grsecurity 了。