Ubuntu进行lynis审计

Lynis,一个介绍

审计,系统强化,合规性测试

Lynis是一款经过实战考验的安全工具,适用于运行Linux,macOS或基于Unix的操作系统的系统。它对您的系统执行广泛的运行状况扫描,以支持系统强化和一致性测试。该项目是具有GPL许可证的开源软件,自2007年起可用。

由于Lynis具有灵活性,因此可用于多种不同用途。Lynis的典型用例包括:

  • 安全审计
  • 一致性测试(例如PCI,HIPAA,SOx)
  • 渗透测试
  • 漏洞检测
  • 系统强化

怎么运行的

Lynis扫描是机会主义的。这意味着它只会使用它可以找到的东西,比如可用的工具或库。好处是不需要安装其他工具,因此您可以保持系统清洁。

通过使用此扫描方法,该工具几乎不依赖于运行。此外,它发现的越多,审计就越广泛。换句话说:Lynis将始终执行为您的系统定制的扫描,并且不会进行相同的审计!

示例:当Lynis检测到您正在运行Apache时,它将执行第一轮Apache相关测试。然后,当它执行特定的Apache测试时,它也可能会发现SSL / TLS配置。然后,它会根据该步骤执行其他审计步骤。一个很好的例子是收集任何发现的证书,以便稍后扫描它们。

审核步骤

这是Lynis典型扫描期间发生的情况:

  1. 初始化和基本检查
  2. 确定操作系统和工具
  3. 搜索可用的系统实用程序
  4. 检查Lynis更新
  5. 运行已启用的插件
  6. 每个类别运行安全测试
  7. 执行自定义测试
  8. 报告安全扫描的状态

除了屏幕上显示的报告和信息外,有关扫描的所有技术细节都存储在日志文件(lynis.log)中。警告和建议等结果存储在单独的报告文件(lynis-report.dat)中。

Lynis测试

Lynis执行数百次单独测试。每个测试都有助于确定系统的安全状态。大多数测试都是用shell脚本编写的,并且有一个唯一的标识符(例如KRNL-6000)。

有兴趣了解有关测试的更多信息吗?看看Lynis控件和个别测试。

灵活性

使用唯一标识符可以调整安全扫描。例如,如果测试对您的扫描需求过于严格,则只需将其禁用即可。这样,您就可以获得适合您环境的最佳系统审计。

Lynis是模块化的,允许运行自己创建的测试。您甚至可以使用其他脚本或编程语言创建它们。

Lynis插件

插件是Lynis的模块化扩展。它们允许该工具执行其他测试并收集更多数据。该Lynis插件是有超过10个系统的环境中尤其有用。

支持的标准

其他工具通常使用相同的数据文件来执行测试。Lynis不仅限于特定的Linux发行版,因此它使用来自各种来源的10年以上的知识。它可以帮助您自动化或测试来自以下来源的安全最佳实践:

  • CIS基准
  • NIST
  • NSA
  • OpenSCAP数据
  • 供应商指南和建议(例如Debian Gentoo,Red Hat)

步骤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页面。

转载于:http://netsecurity.51cto.com/art/201705/539162.htm

你可能感兴趣的:(Ubuntu进行lynis审计)