當前位置:
首頁 > 知識 > 如何閱讀 Lynis 報告提高 Linux 安全性

如何閱讀 Lynis 報告提高 Linux 安全性

導讀:使用 Lynis 的掃描和報告來發現和修復 Linux 安全問題。                     

本文字數:6960,閱讀時長大約:8分鐘

https://linux.cn/article-12697-1.html

作者:Alan Formy-duval

譯者:Xingyu.Wang

當我讀到 Gaurav Kamathe 的文章《使用 Lynis 掃描 Linux 安全性》時,讓我想起了我在美國勞工部擔任系統管理員的日子。我那時的職責之一是保證我們的 Unix 伺服器的安全。每個季度,都會有一個獨立的核查員來審查我們伺服器的安全狀態。每次在核查員預定到達的那一天,我都會運行 Security Readiness Review(SRR),這是一個掃描工具,它使用一大套腳本來識別和報告任何安全線索。SRR 是開源的,因此我可以查看所有源碼腳本及其功能。這使我能夠查看其代碼,確定具體是什麼問題,並迅速修復它發現的每個問題。

什麼是 Lynis?

Lynis

是一個開源的安全審計工具,它的工作原理和 SRR 很像,它會掃描 Linux 系統,並提供它發現的任何弱點的詳細報告。同樣和 SRR 一樣,它也是由一大套腳本組成的,每個腳本都會檢查一個特定的項目,例如,最小和最大密碼時間要求。

運行 Lynis 後,你可以使用它的報告來定位每個項目的腳本,並了解 Lynis 是如何檢查和報告每個問題的。你也可以使用相同的腳本代碼來創建新的代碼來自動解決。

如何閱讀 Lynis 報告

由於 Gaurav 的文章介紹了 Lynis 的安裝和使用,在本文中,我將展示一些如何閱讀和使用其報告的例子。

請從運行一次審計開始:

完成後,完整的報告將顯示在你的屏幕上。在底部,「Suggestions」 部分列出了所有可能需要修復以更好地加固系統的項目,以及每個項目的 TEST-ID。

要想加固系統並減少列表的大小,請開始解決每個項目。在 「Suggestions」 部分的描述可能包含了你需要採取的全部行動。如果沒有,你可以使用??命令。

例如,在我的系統中,有一條建議是:

找不到??所需的資料庫,運行??或??來創建這個文件。[FILE-6410]

看起來我只需要運行??命令就行,但如果我想確定一下,我可以使用 Lynis 的??選項。

這些細節表明 Lynis 無法找到各種文件。這個情況描述的非常清楚。我可以運行??命令,然後重新檢查這個測試。

重新檢查細節時,會顯示它發現哪個文件滿足了測試:

深入挖掘

Lynis 的許多建議並不像這個建議那樣直接。如果你不確定某個發現或建議指的是什麼,就很難知道如何解決問題。假設你在一個新的 Linux 伺服器上運行 Lynis,有幾項與 SSH 守護進程有關的內容,其中一項是關於??的設置:

要解決這個問題,你需要知道 SSH 配置文件的位置。一個經驗豐富的 Linux 管理員可能已經知道在哪裡找到它們,但如果你不知道,有一個方法可以看到 Lynis 在哪裡找到它們。

定位 Lynis 測試腳本

Lynis 支持多種操作系統,因此你的安裝位置可能有所不同。在 Red Hat Enterprise Linux 或 Fedora Linux 系統中,使用??命令來查找測試文件:

這將列出所有測試文件,並報告它們在??目錄下的位置。在這個目錄下搜索你想知道的 TEST-ID(本例中為 SSH-7408):

查找 SSH 問題

名為??的文件中包含了 TEST-ID,在這裡可以找到與 SSH 相關的掃描函數。看看這個文件,就可以看到 Lynis 掃描器調用的各種函數。第一部分在一個名為??的變數中定義了一個目錄列表。下面幾節負責檢查 SSH 守護進程的狀態、定位它的配置文件,並識別它的版本。我在 SSH-7404 測試中找到了查找配置文件的代碼,描述為 「確定 SSH 守護進程配置文件位置」。這段代碼包含一個??循環,在列表中的項目中搜索一個名為??的文件。我可以用這個邏輯來自己進行搜索:

進一步探索這個文件,就會看到尋找 SSH-7408 的相關代碼。這個測試涵蓋了??和其他一些設置。現在我可以在 SSH 配置文件中找到該變數:

修復法律橫幅問題

Lynis 還報告了一個與登錄系統時顯示的法律橫幅有關的發現。在我的家庭桌面系統上(我並不希望有很多其他人登錄),我沒有去改變默認的??文件。企業或政府的系統很可能被要求包含一個法律橫幅,以警告用戶他們的登錄和活動可能被記錄和監控。Lynis 用 BANN-7126 測試和 BANN-7130 測試報告了這一點:

我在運行 Fedora 32 工作站的系統上沒有發現什麼:

我可以添加一些諸如 「keep out」 或 「don"t break anything」 之類的內容,但測試的描述並沒有提供足夠的信息來解決這個問題,所以我又看了看 Lynis 的腳本。我注意到??目錄下有一個叫??的文件;這似乎是一個很好的地方。在??的幫助下,我看到了相關的測試:

在檢查了測試文件中的相關代碼後,我發現這兩個測試都是通過一個??循環來迭代一些預定義的法律術語:

這些法律術語存儲在文件頂部定義的變數??中。向後滾動到頂部可以看到完整的清單:

我最初的建議(「keep out」 或 「don"t break anything」)不會滿足這個測試,因為它們不包含這個列表中的任何單詞。

下面這條橫幅信息包含了幾個必要的詞,因此,它將滿足這個測試,並防止 Lynis 報告它:

Attention, by continuing to connect to this system, you consent to the owner storing a log of all activity. Unauthorized access is prohibited.

請注意,這條信息必須被添加到??和??中。

使其可重複

你可以手動進行這些編輯,但你可能要考慮自動化。例如,可能有許多設置需要更改,或者你可能需要在許多伺服器上定期進行這些編輯。創建一個加固腳本將是簡化這個過程的好方法。對於 SSH 配置,在你的加固腳本中的一些??命令可以解決這些發現。或者,你可以使用??語句來添加合法的橫幅。

自動化使你能夠創建一個可重複的腳本,可以在你的基礎設施中保存和管理。你也可以在你的初始伺服器配置中加入這個腳本。

加固你的系統

這種類型的練習可以提高你的腳本技能,既可以跟著現有的代碼走,也可以寫自己的腳本。因為 Lynis 是開源的,所以你可以很容易地看到你的系統是如何被檢查的,以及它的報告意味著什麼。最終的結果將是一個完善的系統,你可以在審計人員來的時候隨時向他們炫耀。

via:https://opensource.com/article/20/8/linux-lynis-security

作者:Alan Formy-Duval選題:lujun9972譯者:wxy校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

如何在 Linux 中擴展/增加 LVM 大小
構建一個即時消息應用(六):僅用於開發的登錄