自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Ubuntu 16.04上用Lynis執(zhí)行安全審計(jì)

譯文
安全 網(wǎng)站安全
在本教程中,你將學(xué)會(huì)安裝Lynis,并用它在一臺(tái)Ubuntu 16.04服務(wù)器上執(zhí)行安全審計(jì)。

【51CTO.com快譯】Lynis是一個(gè)基于主機(jī)的、開(kāi)源的安全審計(jì)應(yīng)用程序,它可以評(píng)估安全性配置文件、Linux和其他類(lèi)UNIX操作系統(tǒng)的安全態(tài)勢(shì)。在本教程中,你將學(xué)會(huì)安裝Lynis,并用它在一臺(tái)Ubuntu 16.04服務(wù)器上執(zhí)行安全審計(jì)。然后,你將會(huì)探究一個(gè)審計(jì)樣本的結(jié)果,并通過(guò)配置Lynis來(lái)忽略那些與你的需求所不相關(guān)的各種測(cè)試。

[[190768]]

Lynis不會(huì)自動(dòng)執(zhí)行任何系統(tǒng)的加固,但它能提供一些建議,以向你展示如何去自行加固系統(tǒng)。因此, 如果你有Linux系統(tǒng)安全方面的基本知識(shí)的話,它將對(duì)你很有幫助。你還應(yīng)該對(duì)你所計(jì)劃執(zhí)行審計(jì)的機(jī)器上的那些正在運(yùn)行服務(wù)有所熟悉,例如各種web服務(wù)器、數(shù)據(jù)庫(kù)和其他Lynis可能會(huì)默認(rèn)掃描到的服務(wù)。這將有助于你去識(shí)別出那些能夠被安全地忽略掉的結(jié)果。

注意:執(zhí)行安全審計(jì)是需要時(shí)間和耐心的。你可能需要在安裝Lynis和用它來(lái)審計(jì)你的服務(wù)器之前,花上一些時(shí)間來(lái)仔細(xì)地閱讀本文全部?jī)?nèi)容。

先決條件

為了吃透本文,你需要有:一臺(tái)Ubuntu 16.04服務(wù)器,并配置了一個(gè)具有sudo特權(quán)的非根用戶和防火墻,你可以參考《用Ubuntu 16.04來(lái)初始化服務(wù)器的設(shè)置》教程來(lái)實(shí)現(xiàn)。

步驟1 在你的服務(wù)器上安裝Lynis

安裝Lynis可以有多種方法。你可以從源代碼來(lái)編譯它,下載并復(fù)制其二進(jìn)制文件到系統(tǒng)上的一個(gè)適當(dāng)?shù)奈恢?或者你可以用包管理器來(lái)安裝它。使用包管理器是安裝并更新Lynis的最簡(jiǎn)便的方法,所以我們?cè)诖藢⑹褂迷摲椒ā?/p>

不過(guò),在Ubuntu 16.04上,資源庫(kù)里所提供的版本并非是最新的。為了獲得其最新的特性,我們將從其項(xiàng)目的官方資源庫(kù)來(lái)安裝Lynis。

Lynis的軟件資源庫(kù)使用的是HTTPS協(xié)議,因此我們首先需要確保支持HTTPS的包管理器已被安裝。你可以使用以下的命令來(lái)進(jìn)行檢查:

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

如果已安裝,該命令的輸出結(jié)果應(yīng)該是:

  1. Output 
  2. Status: install ok installed 

如果輸出結(jié)果顯示未安裝,則可用sudo apt-get install apt-transport-https來(lái)安裝。

掃清并安裝了這個(gè)唯一的依賴性之后,我們就可以來(lái)安裝Lynis了。為了觸發(fā)此過(guò)程,我們要添加庫(kù)的鍵值:

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

你將能看到如下的輸出結(jié)果,它表明鍵值已被添加成功:

  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的資源庫(kù)添加到那些對(duì)軟件包管理器可用的列表之中:

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

為了使這些新附加的資源庫(kù)能為系統(tǒng)所用,我們需更新包的數(shù)據(jù)庫(kù):

  1. $ sudo apt-get update 

最后再來(lái)安裝Lynis:

  1. $ sudo apt-get install lynis 

在安裝完成后,你將可以訪問(wèn)到lynis的命令其子命令集。接下來(lái)讓我們來(lái)看看如何使用Lynis。

步驟2 執(zhí)行審計(jì)

在安裝完畢后,你就可以使用Lynis來(lái)對(duì)系統(tǒng)執(zhí)行安全審計(jì)了。讓我們從查看Lynis所能執(zhí)行的操作列表開(kāi)始吧。請(qǐng)執(zhí)行如下命令:

  1. $ lynis show commands 

你會(huì)看到如下的輸出:

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

Lynis在審計(jì)時(shí)一般用到的是概要文件(profiles),它們就像配置文件一樣通過(guò)設(shè)置來(lái)控制Lynis的審計(jì)。你可以使用如下命令來(lái)查看默認(rèn)概要文件的設(shè)置:

  1. $ lynis show settings 

你將會(huì)看到如下的輸出:

  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 

在執(zhí)行審計(jì)之前去驗(yàn)證一下是否有新版本可用是一個(gè)很好的習(xí)慣,因?yàn)檫@樣你將能得到最新的建議和信息。你可以通過(guò)以下命令來(lái)檢查更新:

$ lynis update info

你將得到類(lèi)似于如下的輸出,它會(huì)顯示出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,來(lái)產(chǎn)生如下的一行輸出:

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

如果當(dāng)前版本確實(shí)需要更新,那么你可以使用包管理器來(lái)執(zhí)行更新操作。

你可使用lynis audit system命令,在系統(tǒng)上運(yùn)行一次審計(jì)。當(dāng)然,你可以選擇用特權(quán)或是非特權(quán)(滲透測(cè)試)模式來(lái)運(yùn)行Lynis。對(duì)于后者的模式,一些需要root特權(quán)的測(cè)試會(huì)被忽略。因此,你應(yīng)該使用sudo來(lái)將審計(jì)運(yùn)行在特權(quán)模式之下。請(qǐng)使用如下命令來(lái)執(zhí)行你的第一次審計(jì):

$ sudo lynis audit system

驗(yàn)證完成之后,Lynis將運(yùn)行它的測(cè)試并將結(jié)果顯示在你的屏幕上。Lynis的一次審計(jì)通常只需要一分鐘或更短的時(shí)間。

在Lynis執(zhí)行審計(jì)的過(guò)程中,它會(huì)用到各種類(lèi)型的多種測(cè)試。在每次審計(jì)完成后,各種測(cè)試結(jié)果、調(diào)試信息、和對(duì)系統(tǒng)的加固建議都被寫(xiě)到標(biāo)準(zhǔn)的輸出中(即屏幕)。而更為詳細(xì)的信息則被記錄在/var/log/lynis.log里;同時(shí),報(bào)告數(shù)據(jù)被保存到/var/log/lynis-report.dat中。報(bào)告數(shù)據(jù)通常只包含有關(guān)服務(wù)器和應(yīng)用程序本身的信息,所以你只需要關(guān)注的是日志文件。每次審計(jì)都會(huì)清除(覆蓋)日志文件,因此先前的審計(jì)結(jié)果是不會(huì)被下一次所保留下來(lái)的。

審計(jì)完成后,你應(yīng)該對(duì)結(jié)果、警告和建議進(jìn)行復(fù)查,然后有選擇的采納實(shí)施相關(guān)建議。

讓我們來(lái)看看運(yùn)行在本教程中的設(shè)備上的一次Lynis審計(jì)結(jié)果。它也許和你自己的審計(jì)結(jié)果有所不同,但是你應(yīng)該能從中領(lǐng)會(huì)到一些重點(diǎn)。

Lynis審計(jì)輸出中的第一個(gè)重要部分是其純信息的部分。它會(huì)按類(lèi)別分組的形式告訴你每個(gè)測(cè)試的結(jié)果。分類(lèi)的關(guān)鍵字有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在“開(kāi)箱即用”的狀態(tài)下會(huì)執(zhí)行200多種測(cè)試,但不是所有的都對(duì)你的服務(wù)器是必要的。那么如何來(lái)判斷哪些測(cè)試是必要的,而哪些不是呢?這就依靠于服務(wù)器上到底運(yùn)行著什么服務(wù)了。舉個(gè)例子,如果你檢查一個(gè)典型的Lynis審計(jì)的結(jié)果部分,你會(huì)發(fā)現(xiàn)在Printers and Spools類(lèi)別下有兩個(gè)測(cè)試:

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

你真的在Ubuntu 16.04服務(wù)器上運(yùn)行著打印服務(wù)器嗎?除非你正在運(yùn)行一個(gè)基于云的打印服務(wù)器,不然你是沒(méi)有必要讓Lynis每次運(yùn)行該測(cè)試的。

雖然這是一個(gè)在測(cè)試中篩選忽略的完美例子,但其他的可能就沒(méi)那么顯而易見(jiàn)了。請(qǐng)看下面這個(gè)例子。例如:

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

該輸出指明它希望在Ubuntu 16.04服務(wù)器上使用到的inetd并未被激活。但實(shí)際上Ubuntu早已將systemd取代了inetd。知道了這個(gè),你就可以在對(duì)服務(wù)器進(jìn)行審計(jì)測(cè)試時(shí)標(biāo)記出來(lái),讓Lynis不去執(zhí)行。

隨著對(duì)每個(gè)測(cè)試結(jié)果的復(fù)查,你會(huì)在測(cè)試中圈出更多的多余項(xiàng)目。有了這樣的列表,你就可以定制出在未來(lái)的審計(jì)中有所忽略的Lynis了。你會(huì)在步驟5中了解到如何完成這些操作。

在下一節(jié)里,我們將瀏覽Lynis審計(jì)輸出的其他不同部分,這樣你會(huì)對(duì)如何正確運(yùn)用Lynis來(lái)審計(jì)你的系統(tǒng)有一個(gè)更好的理解。那么就讓我們來(lái)首先看看如何處理Lynis所發(fā)出的警告吧。

步驟3 修復(fù)Lynis的審計(jì)警告

Lynis的審計(jì)輸出并不總是帶有警告。但是當(dāng)你讀到有警告部分的時(shí)候,你就會(huì)需要知道如何解決這些引發(fā)警告的根源。

警告一般羅列在結(jié)果部分的后面。每個(gè)警告都以警告性文本本身開(kāi)始,并在同一行的括號(hào)中列出生成警告的測(cè)試項(xiàng)名稱。而下一行則包含一個(gè)可能的建議性解決方案。最后一行是一個(gè)安全控制的URL,你可能從那里發(fā)現(xiàn)一些有關(guān)該警告的指導(dǎo)說(shuō)明。不過(guò),URL并不總能提供解釋,因此你可能需要做一些進(jìn)一步的研究。

以下輸出源自在本文所涉及服務(wù)器上執(zhí)行過(guò)的一次Lynis審計(jì)的警告部分。讓我們?yōu)g覽一下每個(gè)警告,來(lái)看看如何對(duì)其進(jìn)行解決或改正:

  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/ 

第一個(gè)警告是說(shuō)Lynis需要被更新。這也意味著根據(jù)該審計(jì)所使用的Lynis版本,其結(jié)果可能并不完整。正如步驟2所示,如果我們事先執(zhí)行了基本的版本檢查,那么這是完全可以避免的。可見(jiàn),此修復(fù)非常容易,就是更新Lynis。

第二個(gè)警告表明服務(wù)器需要被重啟。這可能是因?yàn)橄到y(tǒng)最近的更新里包含了內(nèi)核的升級(jí)。這里的解決方案也就是直接重啟系統(tǒng)。

在深究任何警告或是測(cè)試結(jié)果時(shí),你可以通過(guò)查詢Lynis的ID來(lái)得到更多的關(guān)于測(cè)試的信息。其對(duì)應(yīng)的命令形式為:

  1. $ sudo lynis show details test-id 

因此對(duì)于第二個(gè)ID為KRNL-5830的警告,我們可以運(yùn)行這樣的命令:

  1. $ sudo lynis show details KRNL-5830 

如下是具體測(cè)試的輸出,它能讓你對(duì)Lynis的每個(gè)測(cè)試的執(zhí)行過(guò)程有所認(rèn)識(shí)。在此輸出中,Lynis甚至為其警告項(xiàng)給出了一些具體的信息:

  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 ===---------------------------------------------------------------=== 

第三個(gè)警告PKGS-7392是關(guān)于軟件漏洞包的,我們可以運(yùn)行如下命令:

  1. $ sudo lynis show details PKGS-7392 

其輸出為我們提供了有關(guān)需要升級(jí)的軟件包的更多信息:

  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 ===---------------------------------------------------------------=== 

對(duì)此警告的解決方案就是更新數(shù)據(jù)庫(kù)和系統(tǒng)。

在修復(fù)了此項(xiàng)警告之后,你應(yīng)該再次運(yùn)行審計(jì)。后續(xù)的審計(jì)就不會(huì)再對(duì)此產(chǎn)生警告了,當(dāng)然新的警告也可能會(huì)出現(xiàn)在他處。因此你不得不重復(fù)進(jìn)行此步驟以解決所有的警告。

至此,你已經(jīng)知道了如何讀懂并修復(fù)Lynis所生成的警告,讓我們來(lái)看看如何去實(shí)施那些Lynis所提供的建議吧。

步驟4 實(shí)現(xiàn)Lynis的審計(jì)建議

在警告部分的后面,你將會(huì)看到一系列的建議,如果實(shí)施它們,則會(huì)讓你的服務(wù)器少受到惡意軟件的攻擊。在這個(gè)步驟中,Lynis在審計(jì)完成之后,對(duì)裝有Ubuntu 16.04系統(tǒng)的服務(wù)器產(chǎn)生了一些建議,你將了解到如何去實(shí)施它們。此過(guò)程與前面一節(jié)中的步驟基本一致。

一條具體建議是由其建議本身和緊隨其后的測(cè)試ID所組成。根據(jù)測(cè)試,其下一行會(huì)告訴你如何修改影響服務(wù)的配置文件。而最后一行是一個(gè)安全控制的URL,你可以通過(guò)它找到更多關(guān)于此主題的信息。

下面的例子是一個(gè)源自Lynis審計(jì)的建議部分,它顯示了與SSH服務(wù)相關(guān)的建議:

  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. ... 

根據(jù)你的運(yùn)行環(huán)境,實(shí)施所有這些建議都是比較安全可靠的。但是,為了能做出決斷,你必須知道每一個(gè)建議的具體意思。因?yàn)檫@些都隸屬于SSH服務(wù)器,因此所有的更改必須體現(xiàn)在SSH守護(hù)進(jìn)程的配置文件/etc/SSH/sshd_config中。如果你對(duì)Lynis給出的關(guān)于SSH的建議有任何疑問(wèn),請(qǐng)用man sshd_config指令來(lái)查看。當(dāng)然這些信息在網(wǎng)上可以找到。

其中的一條建議是要求更改SSH的默認(rèn)22號(hào)端口。如果你要更改它,請(qǐng)相應(yīng)地在防火墻上添加一條規(guī)則,讓對(duì)于SSH的訪問(wèn)能從新的端口上通過(guò)。

和警告部分一樣,你可以使用sudo lynis show details test-id來(lái)查詢Lynis的測(cè)試ID,以獲得更多有關(guān)建議的詳細(xì)信息。

其他的建議則是要求你在服務(wù)器上安裝額外的軟件。如下例所示:

  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來(lái)滿足加固測(cè)試(HRDN-7230)的要求。OSSEC是一個(gè)基于主機(jī)的入侵檢測(cè)系統(tǒng),它可以生成并發(fā)送警告。這是一個(gè)能夠協(xié)助Lynis執(zhí)行測(cè)試的一個(gè)很好的安全應(yīng)用程序。關(guān)于此工具,你可以通過(guò)DigitalOcean的各個(gè)教程(https://www.digitalocean.com/community/tutorials?q=ossec)來(lái)進(jìn)行更多的了解。但是,僅僅安裝OSSEC并不能順利地通過(guò)此測(cè)試,你還需要安裝chkrootkit。這就是為什么有時(shí)候除了Lynis所給出的建議,你還要做更多的研究的原因。

讓我們來(lái)看另一個(gè)例子。這是一個(gè)在文件完整性測(cè)試后顯示的一個(gè)結(jié)果建議。

  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所給出的建議并沒(méi)有提到我們前面的那個(gè)OSSEC程序,但是如果安裝它,則會(huì)保證我們能通過(guò)后續(xù)的審計(jì)測(cè)試。這就是為什么OSSEC是一個(gè)很好的文件完整性監(jiān)控工具的原因。

你也可以忽略一些并不適合你的建議。這里同樣也有一個(gè)例子:

  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/ 

傳統(tǒng)上,核心Linux文件系統(tǒng),如/home、/tmp、/var和/usr常被掛載到一個(gè)單獨(dú)的分區(qū)里,以減少在整個(gè)服務(wù)器耗盡其磁盤(pán)空間時(shí)的影響。但是,這種耗盡的情況其實(shí)并不被經(jīng)常看到,尤其是在那些云服務(wù)器上。這些文件系統(tǒng)如今只是作為一個(gè)目錄被掛載到同一根分區(qū)里。但是如果你對(duì)這樣的系統(tǒng)執(zhí)行Lynis審計(jì)的話,你會(huì)得到一些類(lèi)似于前面所提及的建議輸出。除非你的確想實(shí)施該建議,否則你很可能想通過(guò)配置Lynis來(lái)忽略它們,使它們將來(lái)不再執(zhí)行此類(lèi)審計(jì)。

使用Lynis來(lái)執(zhí)行安全審計(jì)不僅僅涉及到修復(fù)警告和實(shí)施建議,它還包括識(shí)別出多余的測(cè)試。在接下來(lái)的步驟中,你將學(xué)習(xí)到如何定制缺省的概要文件來(lái)忽略此類(lèi)測(cè)試。

步驟5 定制Lynis安全審計(jì)

在本節(jié)中,你將了解到如何定制Lynis,使之只運(yùn)行那些對(duì)你的服務(wù)器必要的測(cè)試。用于控制審計(jì)如何運(yùn)行的概要文件,在/etc/lynis目錄中常被擴(kuò)展名為.prf的各種文件所定義。其中默認(rèn)的概要文件被恰當(dāng)?shù)孛麨閐efault.prf。你沒(méi)有必要直接編輯該默認(rèn)的概要文件。相反,你可以添加任何你想要的信息到相同目錄的custom.prf之中,作為概要文件的定義。

你可以使用文本編輯器來(lái)創(chuàng)建一個(gè)新的名為/etc/lynis/custom.prf的文件:

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

讓我們通過(guò)該文件來(lái)告訴Lynis需要忽略的一些測(cè)試吧。下面就是我們想忽略的測(cè)試項(xiàng)目:

· FILE-6310:用來(lái)檢查分區(qū)的間隔。

·HTTP-6622:用來(lái)測(cè)試web服務(wù)器上Nginx的安裝。

·HTTP-6702:用來(lái)檢查web服務(wù)器上Apache的安裝。該測(cè)試和上述Nginx測(cè)試一樣都是默認(rèn)執(zhí)行的。因此,如果你只安裝了Nginx和而非Apache的話,你就需要跳過(guò)Apache的測(cè)試。

·PRNT-2307和PRNT-2308:用來(lái)檢查打印服務(wù)器。

·TOOL-5002:用來(lái)檢查諸如Puppet和Salt這樣的自動(dòng)化工具。如果你在服務(wù)器上沒(méi)有此類(lèi)工具的話,那么你完全可以跳過(guò)對(duì)此的測(cè)試。

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

要想忽略某個(gè)測(cè)試,你可以通過(guò)skip-test指令來(lái)傳遞你想要忽略的測(cè)試ID,每行一個(gè)。將下面的代碼添加到你的文件之中:

  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 

保存并關(guān)閉該文件。

當(dāng)你下一次執(zhí)行審計(jì)時(shí),Lynis將忽略那些匹配上了你在定制概要文件中配置好的測(cè)試ID。而其審計(jì)輸出也會(huì)省略掉相應(yīng)的測(cè)試結(jié)果部分和建議部分。

/etc/lynis/custom.prf文件允許你修改概要文件中的任何設(shè)置。要做到這一點(diǎn),你可以將/etc/lynis/default.prf復(fù)制為/etc/lynis/custom.prf,并修改之。你只需要修改這些設(shè)置就行了,因此你可以集中更多的精力在尋找測(cè)試中可以忽略的地方。

接下來(lái),讓我們來(lái)看看什么是Lynis里所謂的加固指數(shù)。

步驟6 解析加固指數(shù)

在每個(gè)Lynis審計(jì)輸出的底部,也就是建議部分的下面,你會(huì)發(fā)現(xiàn)一個(gè)看起來(lái)像下面輸出文字的部分:

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

這個(gè)輸出會(huì)告訴你它進(jìn)行了多少種測(cè)試,并且配有一個(gè)加固指數(shù),Lynis提供該數(shù)值讓你對(duì)服務(wù)器的安全態(tài)勢(shì)有所了解。該數(shù)值為L(zhǎng)ynis所獨(dú)有。該加固指數(shù)將會(huì)隨著你針對(duì)警告修復(fù)和針對(duì)建議的實(shí)施而作出相應(yīng)的調(diào)整。通過(guò)Lynis對(duì)新的Ubuntu 16.04服務(wù)器所做的初次審計(jì),得出了上述該輸出,它表明本系統(tǒng)具有64的加固指數(shù)。

在修復(fù)了警告并實(shí)施了大部分的建議之后, 審計(jì)給出了如下新的輸出。你可以看到加固指數(shù)略微升高了:

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

加固指數(shù)并非是對(duì)服務(wù)器安全程度的一個(gè)準(zhǔn)確評(píng)估,而只是一個(gè)基于Lynis所執(zhí)行的測(cè)試后服務(wù)器在安全配置(或加固)方面的衡量。正如你所看到的,該指數(shù)為越高越好。Lynis安全審計(jì)的目的不僅僅是為了獲得高的加固指數(shù),更是為了修復(fù)各種它所產(chǎn)生的警告和建議。

結(jié)論

在本教程中,你已安裝了Lynis,用它對(duì)Ubuntu 16.04服務(wù)器執(zhí)行了安全審計(jì),探究了如何修復(fù)它生成的警告和建議,以及如何定制Lynis所執(zhí)行的各種測(cè)試。

這雖然需要花費(fèi)一些額外的時(shí)間和精力,但是為了讓你的機(jī)器更加安全,和使得Lynis的審計(jì)過(guò)程更加順利,這是完全值得投入的。

關(guān)于Lynis的更多信息,請(qǐng)參考《開(kāi)始使用Lynis》這個(gè)官方文檔。Lynis是一個(gè)開(kāi)源的項(xiàng)目,因此如果你樂(lè)于奉獻(xiàn)的話,請(qǐng)?jiān)L問(wèn)該項(xiàng)目的GitHub頁(yè)面。

原文標(biāo)題:How to Perform Security Audits With Lynis on Ubuntu 16.04,作者:Imesh Gunaratne

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 51CTO.com
相關(guān)推薦

2017-05-24 10:59:29

網(wǎng)絡(luò)安全精選文章

2018-02-23 14:50:30

2017-08-02 15:15:55

UbuntuNoSQLOrientDB

2018-02-25 11:03:00

LinuxUbuntuEncryptpad

2017-06-02 14:30:51

UbuntuOTRSLinux

2017-02-22 10:06:11

UbuntuCeph存儲(chǔ)

2018-04-03 13:31:53

LinuxUbuntu 16.0msmtp

2019-08-02 15:30:42

UbuntuMongoDB命令

2016-07-28 13:30:49

UbuntuQQWine

2016-09-22 08:48:52

UbuntuFedoraXFCE 桌面

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2018-10-15 15:23:50

UbuntupipPython

2024-01-04 11:50:00

UbuntuDocker

2023-08-08 12:38:52

2015-11-24 12:53:32

LinuxUbuntuGFI

2020-10-16 16:20:38

LynisLinux審計(jì)工具

2015-12-07 14:47:15

UbuntuGIMP 2.8.16Linux

2017-08-09 13:13:25

LinuxUbuntuZabbix

2015-10-16 10:07:22

Justniffer安裝Ubuntu

2014-06-30 09:27:17

UbuntuTomcat集群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)