使用 Haveged 添加熵以提高雲服務器隨機性

介紹

Havaged 是開源且易於安裝的軟件,用於向雲服務器添加熵和提高隨機性。 不可預測的隨機數生成器利用計算機內部硬件的易變狀態來生成隨機數。 它不是基於其他系統用於熵的標準收集技術。 相反,它使用 HAVEGE(硬件揮發性熵收集和擴展)。

對於基於雲的服務器,大部分熵生成來自磁盤和網絡活動。 由於服務器沒有生成更多隨機數據的物理鍵盤或視頻卡等專用硬件,因此它們在特定時間內的熵量有限。 因此,這會減慢服務器啟動和其他需要加密的操作,因為它們必須等待系統收集額外的熵。

另一方面,haveged 使用處理器中代碼執行時間的變化來生成隨機性。 它還使用其他硬件事件,例如緩存、內存轉換錶等。 更多地依賴於不受監控的內部狀態使得 haveged 適用於用戶交互較少的系統,例如雲服務器。

本指南向您展示如何安裝 haveged onUbuntu22.04, CentOS 9 和紅帽企業 Linux (RHEL)。 對於本文中介紹的其他版本的 Linux 發行版,這些命令幾乎相同。

如何在 Ubuntu 22.04 上安裝 haveged

本節適用於德比安和Ubuntu

以前的要求

  • 運行 Ubuntu 22.04 LTS 的雲服務器

  • 須藤用戶

  • 訪問命令行或終端窗口

第 1 步 - 登錄到 Ubuntu 22.04 LTS 服務器

以 sudo 用戶身份使用 SSH 連接到您的服務器。

句法 ssh [email protected]

第 2 步 – 更新和升級服務器

使用以下命令更新已安裝的軟件包並確保您的服務器運行最新的軟件和安全補丁。

                      
                        $ sudo apt update && sudo apt upgrade -y

                      
                    

第三步:在Ubuntu 22.04雲服務器上安裝haveged

運行以下命令來安裝 haveged。

                      
                        $ sudo apt install haveged

                      
                    

傢伙 y 出現提示時繼續。 如果您希望安裝在沒有提示的情況下自動繼續,請添加 y 命令標誌。 在這種情況下,你跑,

                      
                        $ sudo apt -y install haveged

                      
                    

請注意,您還可以使用 apt-get 任何一個 aptitude 相當 apt 安裝 haveged .

使用這些命令的語法是相同的。 例如使用 apt-get 運行以下命令。

                      
                            $ sudo apt-get install haveged      

                      
                    

第四步:啟動haveged服務

                      
                        $ sudo systemctl start haveged

                      
                    

第五步:查看haveged狀態

以下命令顯示 haveged 的​​狀態。

                      
                        $ sudo systemctl status haveged.service

                      
                    

示例輸出

                      
                            haveged.service - Entropy Daemon based on the HAVEGE algorithm

           Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)

           Active: active (running) since Fri 2023-01-13 10:23:38 UTC; 1min 21s ago

             Docs: man:haveged(8)

                     https://www.issihosts.com/haveged/

         Main PID: 1411 (haveged)

            Tasks: 1 (limit: 1129)

           Memory: 3.2M

              CPU: 187ms

           CGroup: /system.slice/haveged.service

               └─1411 /usr/sbin/haveged --Foreground --verbose=1 1024

                      
                    

輸出顯示 haveged 處於活動狀態(正在運行)。 它包括其他詳細信息,例如它開始運行的日期和時間。

第 6 步:測試隨機性的質量

安裝 haveged 後,您可以使用 rng-tools 公用事業。 要安裝測試工具,請運行以下命令。

                      
                        $ sudo apt install rng-tools

                      
                    

您現在可以使用以下命令測試隨機性。

                      
                         $ sudo cat /dev/random | rngtest -c 1000

                      
                    

示例輸出

                      
                            rngtest 2.2

    Copyright (c) 2004 by Henrique de Moraes Holschuh

    This is free software; see the source for copying conditions. There is NO

    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



    rngtest: starting FIPS tests...

    rngtest: bits received from input: 20000032

    rngtest: FIPS 140-2 successes: 999

    rngtest: FIPS 140-2 failures: 1

    rngtest: FIPS 140-2(2001-10-10) Monobit: 0

    rngtest: FIPS 140-2(2001-10-10) Poker: 1

    rngtest: FIPS 140-2(2001-10-10) Runs: 0

    rngtest: FIPS 140-2(2001-10-10) Long run: 0

    rngtest: FIPS 140-2(2001-10-10) Continuous run: 0

    rngtest: input channel speed: (min=62.742; avg=2313.901; max=19073.486)Mibits/s

    rngtest: FIPS tests speed: (min=107.154; avg=156.436; max=161.640)Mibits/s

    rngtest: Program run time: 134652 microseconds

                      
                    

安裝 haveged 的成功次數應該在 1000 左右。但是,可能存在一些錯誤,並且您每次運行測試可能不會達到 1000 次成功。 但是,998-1000 次成功是可以接受的,這表明 haveged 工作正常。 沒有 haveged,成功的次數遠低於 1000。

第七步:設置haveged在啟動時加載

要允許 haveged 在服務器啟動時自動啟動,請運行以下命令。

                      
                        $ sudo update-rc.d haveged defaults

                      
                    

如何在 CentOS 和 RHEL 上安裝 haveged

本節適用於 CentOS 和 RHEL

以前的要求

  • 運行 CentOS 9 的雲服務器

  • 須藤用戶

  • 訪問命令行或終端窗口

第一步:登錄服務器

使用 ssh 以 sudo 用戶身份連接到 CentOS 9。

句法 ssh [email protected]

在 CentOS 上安裝 haveged 的命令對於 RHEL 是相同的。 但是,在安裝之前,您必須啟用 Extra Packages for Enterprise Linux (EPEL) 存儲庫,如下所示。

第 2 步:啟用 EPEL

                      
                        $ sudo yum -y install epel-release

                      
                    

通過運行更新存儲庫

                      
                        $ sudo yum repolist

                      
                    

服務器現在已準備好進行受保護的安裝。

第 3 步:安裝 haveged

要在 CentOS 9 上安裝 haveged,運行

                      
                        $ sudo yum install haveged

                      
                    

出現提示時鍵入“y”繼續。

第 4 步:開始擁有

                      
                        $ sudo systemctl enable haveged.service

                      
                    

第五步:查看haveged狀態

                      
                        $ sudo systemctl status haveged.service

                      
                    

示例輸出

                      
                            ● haveged.service - Entropy Daemon based on the HAVEGE algorithm

         Loaded: loaded (/usr/lib/systemd/system/haveged.service; enabled; preset: disabled)

         Active: active (running) since Fri 2023-01-13 11:20:12 UTC; 15s ago

           Docs: man:haveged(8)

                    https://www.issihosts.com/haveged/

       Main PID: 89460 (haveged)

          Tasks: 1 (limit: 5924)

         Memory: 3.3M

            CPU: 187ms

         CGroup: /system.slice/haveged.service                

                 └─89460 /usr/sbin/haveged -w 1024 -v 1 --Foreground -v 64



    Jan 13 11:20:12 vultr.guest systemd[1]: Started Entropy Daemon based on the HAVEGE algorithm.

    Jan 13 11:20:12 vultr.guest haveged[89460]: haveged: command socket is listening at fd 3

    Jan 13 11:20:12 vultr.guest haveged[89460]: haveged: fills: 1, generated: 512 K bytes, RNDADDENTROPY: 256

                      
                    

第 6 步:使用 CentOS 進行測試

要在 CentOS 或 RHEL 上測試 haveged,首先安裝 rng-tools .

                      
                        $ sudo yum install rng-tools.

                      
                    

第 7 步:測試隨機性的質量

測試CentOS服務器執行的隨機性質量,

                      
                        $ sudo cat /dev/random | rngtest -c 1000

                      
                    

第 8 步 – 配置啟動

要將系統配置為在啟動時自動加載 haveged,請運行

                      
                        $ sudo chkconfig haveged on

                      
                    

概括

Hasged 軟件有助於增加更多的熵,從而提高加密的隨機性。 它適用於使用 SSL、TLS 和其他依賴加密的服務的雲服務器。 除了提高隨機性外,由於生成過程更快,haveged 還提高了服務器速度。

文章標題 名稱(可選) 電子郵件(可選) 描述

發送建議

相關文章