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 不相容。
為此,我們將從 https://kernel.linux.club.tw/ 下載官方未修改的核心。下載完整的核心原始碼包及其簽名(“.sign”檔案),並確保其版本與您下載的 grsecurity 補丁版本匹配。在本說明文件中,版本為 3.2.50。所需的版本很可能不是最新的,因此您需要從 核心檔案 中獲取它。
| 對核心版本 2.6.32.61 的官方支援已於 2013 年底結束。 |
如果您打開了一個終端,您可以使用以下命令將核心原始碼和簽名都下載到當前工作目錄
$ wget https://kernel.linux.club.tw/pub/linux/kernel/v3.x/linux-3.2.50.tar.bz2 $ wget https://kernel.linux.club.tw/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) <spender@grsecurity.net>" 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) <spender@grsecurity.net>" 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) <spender@grsecurity.net>" 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) <spender@grsecurity.net>"
只要GPG報告簽名良好,您無需擔心關於金鑰未經可信簽名認證的警告。如果您使用自己的金鑰簽署了 grsecurity 金鑰,您將不會收到警告。如果任一檔案的驗證失敗(即,如果您收到“錯誤簽名”訊息),請重新下載有問題的檔案並重試。
Linux 核心原始碼包也已簽名。請按照 Linux 核心網站上的說明 來驗證核心原始碼包。
成功驗證下載的檔案後,您就可以配置 grsecurity 了。