首頁 > 軟體

在Ubuntu 16.04上安裝使用Lynis執行安全審計

2020-06-16 17:15:00

Lynis是一個基於主機的、開源的安全審計應用程式,它可以評估安全性組態檔、Linux和其他類UNIX作業系統的安全態勢。在本教學中,你將學會安裝Lynis,並用它在一台Ubuntu 16.04伺服器上執行安全審計。然後,你將會探究一個審計樣本的結果,並通過設定Lynis來忽略那些與你的需求所不相關的各種測試。

Lynis不會自動執行任何系統的加固,但它能提供一些建議,以向你展示如何去自行加固系統。因此, 如果你有Linux系統安全方面的基本知識的話,它將對你很有幫助。你還應該對你所計劃執行審計的機器上的那些正在執行服務有所熟悉,例如各種web伺服器、資料庫和其他Lynis可能會預設掃描到的服務。這將有助於你去識別出那些能夠被安全地忽略掉的結果。

注意:執行安全審計是需要時間和耐心的。你可能需要在安裝Lynis和用它來審計你的伺服器之前,花上一些時間來仔細地閱讀本文全部內容。

先決條件

為了吃透本文,你需要有:一台Ubuntu 16.04伺服器,並設定了一個具有sudo特權的非根使用者和防火牆,你可以參考《用Ubuntu 16.04來初始化伺服器的設定》教學來實現。

步驟1 在你的伺服器上安裝Lynis

安裝Lynis可以有多種方法。你可以從原始碼來編譯它,下載並複製其二進位制檔案到系統上的一個適當的位置;或者你可以用包管理器來安裝它。使用包管理器是安裝並更新Lynis的最簡便的方法,所以我們在此將使用該方法。

不過,在Ubuntu 16.04上,資源庫裡所提供的版本並非是最新的。為了獲得其最新的特性,我們將從其專案的官方資源庫來安裝Lynis。

Lynis的軟體資源庫使用的是HTTPS協定,因此我們首先需要確保支援HTTPS的包管理器已被安裝。你可以使用以下的命令來進行檢查:

  1. $ dpkg -s apt-transport-https | grep -i status 

如果已安裝,該命令的輸出結果應該是:

  1. Output 
  2. Status: install ok installed 

如果輸出結果顯示未安裝,則可用sudo apt-get install apt-transport-https來安裝。

掃清並安裝了這個唯一的依賴性之後,我們就可以來安裝Lynis了。為了觸發此過程,我們要新增庫的鍵值:

  1. $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F 

你將能看到如下的輸出結果,它表明鍵值已被新增成功:

  1. Output 
  2. Executing: /tmp/tmp.AnVzwb6Mq8/gpg.1.sh --keyserver 
  3. keyserver.ubuntu.com 
  4. --recv-keys 
  5. C80E383C3DE9F082E01391A0366C67DE91CA5D5F 
  6. gpg: requesting key 91CA5D5F from hkp server keyserver.ubuntu.com 
  7. gpg: key 91CA5D5F: public key "CISOfy Software (signed software packages) " imported 
  8. gpg: Total number processed: 1 
  9. gpg: imported: 1 (RSA: 1) 

然後是將Lynis的資源庫新增到那些對軟體包管理器可用的列表之中:

  1. $ sudo add-apt-repository "deb [arch=amd64] https://packages.cisofy.com/community/lynis/deb/ xenial main" 

為了使這些新附加的資源庫能為系統所用,我們需更新包的資料庫:

  1. $ sudo apt-get update 

最後再來安裝Lynis:

  1. $ sudo apt-get install lynis 

在安裝完成後,你將可以存取到lynis的命令其子命令集。接下來讓我們來看看如何使用Lynis。

步驟2 執行審計

在安裝完畢後,你就可以使用Lynis來對系統執行安全審計了。讓我們從檢視Lynis所能執行的操作列表開始吧。請執行如下命令:

  1. $ lynis show commands 

你會看到如下的輸出:

  1. Output 
  2. Commands: 
  3. lynis audit 
  4. lynis configure 
  5. lynis show 
  6. lynis update 
  7. lynis upload-only 

Lynis在審計時一般用到的是概要檔案(profiles),它們就像組態檔一樣通過設定來控制Lynis的審計。你可以使用如下命令來檢視預設概要檔案的設定:

  1. $ lynis show settings 

你將會看到如下的輸出:

  1. Output 
  2. # Colored screen output 
  3. colors=1 
  4. # Compressed uploads 
  5. compressed-uploads=0 
  6. # Use non-zero exit code if one or more warnings were found 
  7. error-on-warnings=0 
  8. ... 
  9. # Upload server (ip or hostname) 
  10. upload-server=[not configured] 
  11. # Data upload after scanning 
  12. upload=no 
  13. # Verbose output 
  14. verbose=0 
  15. Add --brief to hide descriptions, --configured-only to show configured items only, or --nocolors to remove colors 

在執行審計之前去驗證一下是否有新版本可用是一個很好的習慣,因為這樣你將能得到最新的建議和資訊。你可以通過以下命令來檢查更新:

$ lynis update info

你將得到類似於如下的輸出,它會顯示出Lynis的最新版本:

  1. Output 
  2. == Lynis == 
  3. Version : 2.4.8 
  4. Status : Up-to-date 
  5. Release date : 2017-03-29 
  6. Update location : https://cisofy.com/lynis/ 
  7. 2007-2017, CISOfy - https://cisofy.com/lynis/ 

或者,你可以輸入lynis update check,來產生如下的一行輸出:

  1. Output 
  2. status=up-to-date 

如果當前版本確實需要更新,那麼你可以使用包管理器來執行更新操作。

你可使用lynis audit system命令,在系統上執行一次審計。當然,你可以選擇用特權或是非特權(滲透測試)模式來執行Lynis。對於後者的模式,一些需要root特權的測試會被忽略。因此,你應該使用sudo來將審計執行在特權模式之下。請使用如下命令來執行你的第一次審計:

$ sudo lynis audit system

驗證完成之後,Lynis將執行它的測試並將結果顯示在你的螢幕上。Lynis的一次審計通常只需要一分鐘或更短的時間。

在Lynis執行審計的過程中,它會用到各種型別的多種測試。在每次審計完成後,各種測試結果、偵錯資訊、和對系統的加固建議都被寫到標準的輸出中(即螢幕)。而更為詳細的資訊則被記錄在/var/log/lynis.log裡;同時,報告資料被儲存到/var/log/lynis-report.dat中。報告資料通常只包含有關伺服器和應用程式本身的資訊,所以你只需要關注的是紀錄檔檔案。每次審計都會清除(覆蓋)紀錄檔檔案,因此先前的審計結果是不會被下一次所保留下來的。

審計完成後,你應該對結果、警告和建議進行複查,然後有選擇的採納實施相關建議。

讓我們來看看執行在本教學中的裝置上的一次Lynis審計結果。它也許和你自己的審計結果有所不同,但是你應該能從中領會到一些重點。

Lynis審計輸出中的第一個重要部分是其純資訊的部???。它會按類別分組的形式告訴你每個測試的結果。分類的關鍵字有NONE, WEAK, DONE, FOUND, NOT_FOUND, OK, 和 WARNING。

  1. Output 
  2. [+] Boot and services 
  3. ------------------------------------ 
  4. - Service Manager [ systemd ] 
  5. - Checking UEFI boot [ DISABLED ] 
  6. - Checking presence GRUB [ OK ] 
  7. - Checking presence GRUB2 [ FOUND ] 
  8. - Checking for password protection [ WARNING ] 
  9. .. 
  10. [+] File systems 
  11. ------------------------------------ 
  12. - Checking mount points 
  13. - Checking /home mount point [ SUGGESTION ] 
  14. - Checking /tmp mount point [ SUGGESTION ] 
  15. - Checking /var mount point [ OK ] 
  16. - Query swap partitions (fstab) [ NONE ] 
  17. - Testing swap partitions [ OK ] 
  18. - Testing /proc mount (hidepid) [ SUGGESTION ] 
  19. - Checking for old files in /tmp [ OK ] 
  20. - Checking /tmp sticky bit [ OK ] 
  21. - ACL support root file system [ ENABLED ] 
  22. - Mount options of / [ OK ] 
  23. - Checking Locate database [ FOUND ] 
  24. - Disable kernel support of some filesystems 
  25. - Discovered kernel modules: udf 
  26. ... 
  27. [+] Hardening 
  28. ------------------------------------ 
  29. - Installed compiler(s) [ FOUND ] 
  30. - Installed malware scanner [ NOT FOUND ] 
  31. - Installed malware scanner [ NOT FOUND ] 
  32. ... 
  33. [+] Printers and Spools 
  34. ------------------------------------ 
  35. - Checking cups daemon [ NOT FOUND ] 
  36. - Checking lp daemon [ NOT RUNNING ] 

雖然Lynis在“開箱即用”的狀態下會執行200多種測試,但不是所有的都對你的伺服器是必要的。那麼如何來判斷哪些測試是必要的,而哪些不是呢?這就依靠於伺服器上到底執行著什麼服務了。舉個例子,如果你檢查一個典型的Lynis審計的結果部分,你會發現在Printers and Spools類別下有兩個測試:

  1. Output 
  2. [+] Printers and Spools 
  3. ------------------------------------ 
  4. - Checking cups daemon [ NOT FOUND ] 
  5. - Checking lp daemon [ NOT RUNNING ] 

你真的在Ubuntu 16.04伺服器上執行著列印伺服器嗎?除非你正在執行一個基於雲的列印伺服器,不然你是沒有必要讓Lynis每次執行該測試的。

雖然這是一個在測試中篩選忽略的完美例子,但其他的可能就沒那麼顯而易見了。請看下面這個例子。例如:

  1. Output 
  2. [+] Insecure services 
  3. ------------------------------------ 
  4. - Checking inetd status [ NOT ACTIVE ] 

該輸出指明它希望在Ubuntu 16.04伺服器上使用到的inetd並未被啟用。但實際上Ubuntu早已將systemd取代了inetd。知道了這個,你就可以在對伺服器進行審計測試時標記出來,讓Lynis不去執行。

隨著對每個測試結果的複查,你會在測試中圈出更多的多餘專案。有了這樣的列表,你就可以客製化出在未來的審計中有所忽略的Lynis了。你會在步驟5中了解到如何完成這些操作。

在下一節裡,我們將瀏覽Lynis審計輸出的其他不同部分,這樣你會對如何正確運用Lynis來審計你的系統有一個更好的理解。那麼就讓我們來首先看看如何處理Lynis所發出的警告吧。

步驟3 修復Lynis的審計警告

Lynis的審計輸出並不總是帶有警告。但是當你讀到有警告部分的時候,你就會需要知道如何解決這些引發警告的根源。

警告一般羅列在結果部分的後面。每個警告都以警告性文字本身開始,並在同一行的括號中列出生成警告的測試項名稱。而下一行則包含一個可能的建議性解決方案。最後一行是一個安全控制的URL,你可能從那裡發現一些有關該警告的指導說明。不過,URL並不總能提供解釋,因此你可能需要做一些進一步的研究。

以下輸出源自在本文所涉及伺服器上執行過的一次Lynis審計的警告部分。讓我們瀏覽一下每個警告,來看看如何對其進行解決或改正:

  1. Output 
  2.  
  3. Warnings (3): 
  4.  
  5. ---------------------------- 
  6.  
  7. ! Version of Lynis is very old and should be updated [LYNIS] 
  8.  
  9. https://cisofy.com/controls/LYNIS/ 
  10.  
  11. ! Reboot of system is most likely needed [KRNL-5830] 
  12.  
  13. - Solution : reboot 
  14.  
  15. https://cisofy.com/controls/KRNL-5830/ 
  16.  
  17. ! Found one or more vulnerable packages. [PKGS-7392] 
  18.  
  19. https://cisofy.com/controls/PKGS-7392/ 

第一個警告是說Lynis需要被更新。這也意味著根據該審計所使用的Lynis版本,其結果可能並不完整。正如步驟2所示,如果我們事先執行了基本的版本檢查,那麼這是完全可以避免的。可見,此修復非常容易,就是更新Lynis。

第二個警告表明伺服器需要被重新啟動。這可能是因為系統最近的更新裡包含了核心的升級。這裡的解決方案也就是直接重新啟動系統。

在深究任何警告或是測試結果時,你可以通過查詢Lynis的ID來得到更多的關於測試的資訊。其對應的命令形式為:

  1. $ sudo lynis show details test-id 

因此對於第二個ID為KRNL-5830的警告,我們可以執行這樣的命令:

  1. $ sudo lynis show details KRNL-5830 

如下是具體測試的輸出,它能讓你對Lynis的每個測試的執行過程有所認識。在此輸出中,Lynis甚至為其警告項給出了一些具體的資訊:

  1. Output 
  2. 2017-03-21 01:50:03 Performing test ID KRNL-5830 (Checking if system is running on the latest installed kernel) 
  3. 2017-03-21 01:50:04 Test: Checking presence /var/run/reboot-required.pkgs 
  4. 2017-03-21 01:50:04 Result: file /var/run/reboot-required.pkgs exists 
  5. 2017-03-21 01:50:04 Result: reboot is needed, related to 5 packages 
  6. 2017-03-21 01:50:04 Package: 5 
  7. 2017-03-21 01:50:04 Result: /boot exists, performing more tests from here 
  8. 2017-03-21 01:50:04 Result: /boot/vmlinuz not on disk, trying to find /boot/vmlinuz* 
  9. 2017-03-21 01:50:04 Result: using 4.4.0.64 as my kernel version (stripped) 
  10. 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-64-generic 
  11. 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-65-generic 
  12. 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-66-generic 
  13. 2017-03-21 01:50:04 Action: checking relevant kernels 
  14. 2017-03-21 01:50:04 Output: 4.4.0.64 4.4.0.65 4.4.0.66 
  15. 2017-03-21 01:50:04 Result: Found 4.4.0.64 (= our kernel) 
  16. 2017-03-21 01:50:04 Result: found a kernel (4.4.0.65) later than running one (4.4.0.64) 
  17. 2017-03-21 01:50:04 Result: Found 4.4.0.65 
  18. 2017-03-21 01:50:04 Result: found a kernel (4.4.0.66) later than running one (4.4.0.64) 
  19. 2017-03-21 01:50:04 Result: Found 4.4.0.66 
  20. 2017-03-21 01:50:04 Warning: Reboot of system is most likely needed [test:KRNL-5830] [details:] [solution:text:reboot] 
  21. 2017-03-21 01:50:04 Hardening: assigned partial number of hardening points (0 of 5). Currently having 7 points (out of 14) 
  22. 2017-03-21 01:50:04 Checking permissions of /usr/share/lynis/include/tests_memory_processes 
  23. 2017-03-21 01:50:04 File permissions are OK 
  24. 2017-03-21 01:50:04 ===---------------------------------------------------------------=== 

第三個警告PKGS-7392是關於軟體漏洞包的,我們可以執行如下命令:

  1. $ sudo lynis show details PKGS-7392 

其輸出為我們提供了有關需要升級的軟體包的更多資訊:

  1. Output 
  2. 2017-03-21 01:39:53 Performing test ID PKGS-7392 (Check for Debian/Ubuntu security updates) 
  3. 2017-03-21 01:39:53 Action: updating repository with apt-get 
  4. 2017-03-21 01:40:03 Result: apt-get finished 
  5. 2017-03-21 01:40:03 Test: Checking if /usr/lib/update-notifier/apt-check exists 
  6. 2017-03-21 01:40:03 Result: found /usr/lib/update-notifier/apt-check 
  7. 2017-03-21 01:40:03 Test: checking if any of the updates contain security updates 
  8. 2017-03-21 01:40:04 Result: found 7 security updates via apt-check 
  9. 2017-03-21 01:40:04 Hardening: assigned partial number of hardening points (0 of 25). Currently having 96 points (out of 149) 
  10. 2017-03-21 01:40:05 Result: found vulnerable package(s) via apt-get (-security channel) 
  11. 2017-03-21 01:40:05 Found vulnerable package: libc-bin 
  12. 2017-03-21 01:40:05 Found vulnerable package: libc-dev-bin 
  13. 2017-03-21 01:40:05 Found vulnerable package: libc6 
  14. 2017-03-21 01:40:05 Found vulnerable package: libc6-dev 
  15. 2017-03-21 01:40:05 Found vulnerable package: libfreetype6 
  16. 2017-03-21 01:40:05 Found vulnerable package: locales 
  17. 2017-03-21 01:40:05 Found vulnerable package: multiarch-support 
  18. 2017-03-21 01:40:05 Warning: Found one or more vulnerable packages. [test:PKGS-7392] [details:-] [solution:-] 
  19. 2017-03-21 01:40:05 Suggestion: Update your system with apt-get update, apt-get upgrade, apt-get dist-upgrade and/or unattended-upgrades [test:PKGS-7392] [details:-] [solution:-] 
  20. 2017-03-21 01:40:05 ===---------------------------------------------------------------=== 

對此警告的解決方案就是更新資料庫和系統。

在修復了此項警告之後,你應該再次執行審計。後續的審計就不會再對此產生警告了,當然新的警告也可能會出現在他處。因此你不得不重複進行此步驟以解決所有的警告。

至此,你已經知道了如何讀懂並修復Lynis所生成的警告,讓我們來看看如何去實施那些Lynis所提供的建議吧。

步驟4 實現Lynis的審計建議

在警告部分的後面,你將會看到一系列的建議,如果實施它們,則會讓你的伺服器少受到惡意軟體的攻擊。在這個步驟中,Lynis在審計完成之後,對裝有Ubuntu 16.04系統的伺服器產生了一些建議,你將了解到如何去實施它們。此過程與前面一節中的步驟基本一致。

一條具體建議是由其建議本身和緊隨其後的測試ID所組成。根據測試,其下一行會告訴你如何修改影響服務的組態檔。而最後一行是一個安全控制的URL,你可以通過它找到更多關於此主題的資訊。

下面的例子是一個源自Lynis審計的建議部分,它顯示了與SSH服務相關的建議:

  1. Output 
  2. Suggestions (36): 
  3. ---------------------------- 
  4. * Consider hardening SSH configuration [SSH-7408] 
  5. - Details : ClientAliveCountMax (3 --> 2) 
  6. https://cisofy.com/controls/SSH-7408/ 
  7. * Consider hardening SSH configuration [SSH-7408] 
  8. - Details : PermitRootLogin (YES --> NO) 
  9. https://cisofy.com/controls/SSH-7408/ 
  10. * Consider hardening SSH configuration [SSH-7408] 
  11. - Details : Port (22 --> ) 
  12. https://cisofy.com/controls/SSH-7408/ 
  13. * Consider hardening SSH configuration [SSH-7408] 
  14. - Details : TCPKeepAlive (YES --> NO) 
  15. https://cisofy.com/controls/SSH-7408/ 
  16. * Consider hardening SSH configuration [SSH-7408] 
  17. - Details : UsePrivilegeSeparation (YES --> SANDBOX) 
  18. https://cisofy.com/controls/SSH-7408/ 
  19.  
  20. ... 

根據你的執行環境,實施所有這些建議都是比較安全可靠的。但是,為了能做出決斷,你必須知道每一個建議的具體意思。因為這些都隸屬於SSH伺服器,因此所有的更改必須體現在SSH守護行程的組態檔/etc/SSH/sshd_config中。如果你對Lynis給出的關於SSH的建議有任何疑問,請用man sshd_config指令來檢視。當然這些資訊在網上可以找到。

其中的一條建議是要求更改SSH的預設22號埠。如果你要更改它,請相應地在防火牆上新增一條規則,讓對於SSH的存取能從新的埠上通過。

和警告部分一樣,你可以使用sudo lynis show details test-id來查詢Lynis的測試ID,以獲得更多有關建議的詳細資訊。

其他的建議則是要求你在伺服器上安裝額外的軟體。如下例所示:

  1. Output 
  2.  
  3. * Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230] 
  4.  
  5. - Solution : Install a tool like rkhunter, chkrootkit, OSSEC 
  6.  
  7. https://cisofy.com/controls/HRDN-7230/ 

該建議是安裝rkhunter、chkrootkit或OSSEC來滿足加固測試(HRDN-7230)的要求。OSSEC是一個基於主機的入侵檢測系統,它可以生成並行送警告。這是一個能夠協助Lynis執行測試的一個很好的安全應用程式。關於此工具,你可以通過DigitalOcean的各個教學(https://www.digitalocean.com/community/tutorials?q=ossec)來進行更多的了解。但是,僅僅安裝OSSEC並不能順利地通過此測試,你還需要安裝chkrootkit。這就是為什麼有時候除了Lynis所給出的建議,你還要做更多的研究的原因。

讓我們來看另一個例子。這是一個在檔案完整性測試後顯示的一個結果建議。

  1. Output 
  2.  
  3. * Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350] 
  4.  
  5. https://cisofy.com/controls/FINT-4350/ 

該安全控制的URL所給出的建議並沒有提到我們前面的那個OSSEC程式,但是如果安裝它,則會保證我們能通過後續的審計測試。這就是為什麼OSSEC是一個很好的檔案完整性監控工具的原因。

你也可以忽略一些並不適合你的建議。這裡同樣也有一個例子:

  1. Output 
  2.  
  3. To decrease the impact of a full /home file system, place /home on a separated partition [FILE-6310] 
  4.  
  5. https://cisofy.com/controls/FILE-6310/ 
  6.  
  7. To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310] 
  8.  
  9. https://cisofy.com/controls/FILE-6310/ 

傳統上,核心Linux檔案系統,如/home、/tmp、/var和/usr常被掛載到一個單獨的分割區裡,以減少在整個伺服器耗盡其磁碟空間時的影響。但是,這種耗盡的情況其實並不被經常看到,尤其是在那些雲伺服器上。這些檔案系統如今只是作為一個目錄被掛載到同一根分割區裡。但是如果你對這樣的系統執行Lynis審計的話,你會得到一些類似於前面所提及的建議輸出。除非你的確想實施該建議,否則你很可能想通過設定Lynis來忽略它們,使它們將來不再執行此類審計。

使用Lynis來執行安全審計不僅僅涉及到修復警告和實施建議,它還包括識別出多餘的測試。在接下來的步驟中,你將學習到如何客製化預設的概要檔案來忽略此類測試。

步驟5 客製化Lynis安全審計

在本節中,你將了解到如何客製化Lynis,使之只執行那些對你的伺服器必要的測試。用於控制審計如何執行的概要檔案,在/etc/lynis目錄中常被擴充套件名為.prf的各種檔案所定義。其中預設的概要檔案被恰當地命名為default.prf。你沒有必要直接編輯該預設的概要檔案。相反,你可以新增任何你想要的資訊到相同目錄的custom.prf之中,作為概要檔案的定義。

你可以使用文字編輯器來建立一個新的名為/etc/lynis/custom.prf的檔案:

  1. $ sudo nano /etc/lynis/custom.prf 

讓我們通過該檔案來告訴Lynis需要忽略的一些測試吧。下面就是我們想忽略的測試專案:

· FILE-6310:用來檢查分割區的間隔。

·HTTP-6622:用來測試web伺服器上Nginx的安裝。

·HTTP-6702:用來檢查web伺服器上Apache的安裝。該測試和上述Nginx測試一樣都是預設執行的。因此,如果你只安裝了Nginx和而非Apache的話,你就需要跳過Apache的測試。

·PRNT-2307和PRNT-2308:用來檢查列印伺服器。

·TOOL-5002:用來檢查諸如Puppet和Salt這樣的自動化工具。如果你在伺服器上沒有此類工具的話,那麼你完全可以跳過對此的測試。

·SSH-7408:tcpkeepalive:幾個Lynis的測試可以被組合到一個測試ID之下。如果你想忽略屬於某個ID的測試,下面便是如何設定的方法。

要想忽略某個測試,你可以通過skip-test指令來傳遞你想要忽略的測試ID,每行一個。將下面的程式碼新增到你的檔案之中:

  1. /etc/lynis/custom.prf 
  2.  
  3. # Lines starting with "#" are comments 
  4.  
  5. # Skip a test (one per line) 
  6.  
  7. # This will ignore separation of partitions test 
  8.  
  9. skip-test=FILE-6310 
  10.  
  11. Is Nginx installed? 
  12.  
  13. skip-test=HTTP-6622 
  14.  
  15. Is Apache installed? 
  16.  
  17. skip-test=HTTP-6702 
  18.  
  19. # Skip checking print-related services 
  20.  
  21. skip-test=PRNT-2307 
  22.  
  23. skip-test=PRNT-2308 
  24.  
  25. # If a test id includes more than one test use this form to ignore a particular test 
  26.  
  27. skip-test=SSH-7408:tcpkeepalive 

儲存並關閉該檔案。

當你下一次執行審計時,Lynis將忽略那些匹配上了你在客製化概要檔案中設定好的測試ID。而其審計輸出也會省略掉相應的測試結果部分和建議部分。

/etc/lynis/custom.prf檔案允許你修改概要檔案中的任何設定。要做到這一點,你可以將/etc/lynis/default.prf複製為/etc/lynis/custom.prf,並修改之。你只需要修改這些設定就行了,因此你可以集中更多的精力在尋找測試中可以忽略的地方。

接下來,讓我們來看看什麼是Lynis裡所謂的加固指數。

步驟6 解析加固指數

在每個Lynis審計輸出的底部,也就是建議部分的下面,你會發現一個看起來像下面輸出文字的部分:

  1. Output 
  2.  
  3. Lynis security scan details: 
  4.  
  5. Hardening index : 64 [############ ] 
  6.  
  7. Tests performed : 206 
  8.  
  9. Plugins enabled : 0 

這個輸出會告訴你它進行了多少種測試,並且配有一個加固指數,Lynis提供該數值讓你對伺服器的安全態勢有所了解。該數值為Lynis所獨有。該加固指數將會隨著你針對警告修復和針對建議的實施而作出相應的調整。通過Lynis對新的Ubuntu 16.04伺服器所做的初次審計,得出了上述該輸出,它表明本系統具有64的加固指數。

在修復了警告並實施了大部分的建議之後, 審計給出了如下新的輸出。你可以看到加固指數略微升高了:

  1. Output 
  2.  
  3. Lynis security scan details: 
  4.  
  5. Hardening index : 86 [################# ] 
  6.  
  7. Tests performed : 205 
  8.  
  9. Plugins enabled : 0 

加固指數並非是對伺服器安全程度的一個準確評估,而只是一個基於Lynis所執行的測試後伺服器在安全設定(或加固)方面的衡量。正如你所看到的,該指數為越高越好。Lynis安全審計的目的不僅僅是為了獲得高的加固指數,更是為了修復各種它所產生的警告和建議。

結論

在本教學中,你已安裝了Lynis,用它對Ubuntu 16.04伺服器執行了安全審計,探究了如何修復它生成的警告和建議,以及如何客製化Lynis所執行的各種測試。

這雖然需要花費一些額外的時間和精力,但是為了讓你的機器更加安全,和使得Lynis的審計過程更加順利,這是完全值得投入的。

關於Lynis的更多資訊,請參考《開始使用Lynis》這個官方文件。Lynis是一個開源的專案,因此如果你樂於奉獻的話,請存取該專案的GitHub頁面

使用Lynis 檢查系統是否夠安全 http://www.linuxidc.com/Linux/2014-02/96895.htm


IT145.com E-mail:sddin#qq.com