取消
显示结果 
搜索替代 
您的意思是: 
cancel
2489
查看次数
0
有帮助
0
评论
julianchen
Spotlight
Spotlight
步骤3 修复Lynis的审计警告
Lynis的审计输出并不总是带有警告。但是当你读到有警告部分的时候,你就会需要知道如何解决这些引发警告的根源。
警告一般罗列在结果部分的后面。每个警告都以警告性文本本身开始,并在同一行的括号中列出生成警告的测试项名称。而下一行则包含一个可能的建议性解决方案。最后一行是一个安全控制的URL,你可能从那里发现一些有关该警告的指导说明。不过,URL并不总能提供解释,因此你可能需要做一些进一步的研究。
以下输出源自在本文所涉服务器上执行过的一次Lynis审计的警告部分。让我们浏览一下每个警告,来看看如何对其进行解决或改正:
Output
Warnings (3):
----------------------------
! Version of Lynis is very old and should be updated [LYNIS]
https://cisofy.com/controls/LYNIS/

! Reboot of system is most likely needed [KRNL-5830]
- Solution : reboot
https://cisofy.com/controls/KRNL-5830/

! Found one or more vulnerable packages. [PKGS-7392]
https://cisofy.com/controls/PKGS-7392/
第一个警告是说Lynis需要被更新。这也意味着根据该审计所使用的Lynis版本,其结果可能并不完整。正如步骤2所示,如果我们事先执行了基本的版本检查,那么这是完全可以避免的。可见,此修复非常容易,就是更新Lynis
第二个警告表明服务器需要被重启。这可能是因为系统最近的更新里包含了内核的升级。这里的解决方案也就是直接重启系统。
在深究任何警告或是测试结果时,你可以通过查询LynisID来得到更多的关于测试的信息。其对应的命令形式为:
$ sudo lynis show details test-id
因此对于第二个IDKRNL-5830的警告,我们可以运行这样的命令:
$ sudo lynis show details KRNL-5830
如下是具体测试的输出,它能让你对Lynis的每个测试的执行过程有所认识。在此输出中,Lynis甚至为其警告项给出了一些具体的信息:
Output
2017-03-21 01:50:03 Performing test ID KRNL-5830 (Checking if system isrunning on the latest installed kernel)
2017-03-21 01:50:04 Test: Checking presence /var/run/reboot-required.pkgs
2017-03-21 01:50:04 Result: file /var/run/reboot-required.pkgs exists
2017-03-21 01:50:04 Result: reboot is needed, related to 5 packages
2017-03-21 01:50:04 Package: 5
2017-03-21 01:50:04 Result: /boot exists, performing more tests from here
2017-03-21 01:50:04 Result: /boot/vmlinuz not on disk, trying to find/boot/vmlinuz*
2017-03-21 01:50:04 Result: using 4.4.0.64 as my kernel version (stripped)
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-64-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-65-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-66-generic
2017-03-21 01:50:04 Action: checking relevant kernels
2017-03-21 01:50:04 Output: 4.4.0.64 4.4.0.65 4.4.0.66
2017-03-21 01:50:04 Result: Found 4.4.0.64 (= our kernel)
2017-03-21 01:50:04 Result: found a kernel (4.4.0.65) later than runningone (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.65
2017-03-21 01:50:04 Result: found a kernel (4.4.0.66) later than runningone (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.66
2017-03-21 01:50:04 Warning: Reboot of system is most likely needed[test:KRNL-5830] [details:] [solution:text:reboot]
2017-03-21 01:50:04 Hardening: assigned partial number of hardening points(0 of 5). Currently having 7 points (out of 14)
2017-03-21 01:50:04 Checking permissions of/usr/share/lynis/include/tests_memory_processes
2017-03-21 01:50:04 File permissions are OK
2017-03-21 01:50:04===---------------------------------------------------------------===
第三个警告PKGS-7392是关于软件漏洞包的,我们可以运行如下命令:
$ sudo lynis show details PKGS-7392
其输出为我们提供了有关需要升级的软件包的更多信息:
Output
2017-03-21 01:39:53 Performing test ID PKGS-7392 (Check for Debian/Ubuntusecurity updates)
2017-03-21 01:39:53 Action: updating repository with apt-get
2017-03-21 01:40:03 Result: apt-get finished
2017-03-21 01:40:03 Test: Checking if /usr/lib/update-notifier/apt-checkexists
2017-03-21 01:40:03 Result: found /usr/lib/update-notifier/apt-check
2017-03-21 01:40:03 Test: checking if any of the updates contain securityupdates
2017-03-21 01:40:04 Result: found 7 security updates via apt-check
2017-03-21 01:40:04 Hardening: assigned partial number of hardening points(0 of 25). Currently having 96 points (out of 149)
2017-03-21 01:40:05 Result: found vulnerable package(s) via apt-get(-security channel)
2017-03-21 01:40:05 Found vulnerable package: libc-bin
2017-03-21 01:40:05 Found vulnerable package: libc-dev-bin
2017-03-21 01:40:05 Found vulnerable package: libc6
2017-03-21 01:40:05 Found vulnerable package: libc6-dev
2017-03-21 01:40:05 Found vulnerable package: libfreetype6
2017-03-21 01:40:05 Found vulnerable package: locales
2017-03-21 01:40:05 Found vulnerable package: multiarch-support
2017-03-21 01:40:05 Warning: Found one or more vulnerable packages.[test:PKGS-7392] [details:-] [solution:-]
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:-]
2017-03-21 01:40:05 ===---------------------------------------------------------------===
对此警告的解决方案就是更新数据库和系统。
在修复了此项警告之后,你应该再次运行审计。后续的审计就不会再对此产生警告了,当然新的警告也可能会出现在他处。因此你不得不重复进行此步骤以解决所有的警告。
至此,你已经知道了如何读懂并修复Lynis所生成的警告,让我们来看看如何去实施那些Lynis所提供的建议吧。

步骤4 实现Lynis的审计建议
在警告部分的后面,你将会看到一系列的建议,如果实施它们,则会让你的服务器少受到恶意软件的攻击。在这个步骤中,Lynis在审计完成之后,对装有Ubuntu 16.04系统的服务器产生了一些建议,你将了解到如何去实施它们。此过程与前面一节中的步骤基本一致。
一条具体建议是由其建议本身和紧随其后的测试ID所组成。根据测试,其下一行会告诉你如何修改影响服务的配置文件。而最后一行是一个安全控制的URL,你可以通过它找到更多关于此主题的信息。
下面的例子是一个源自Lynis审计的建议部分,它显示了与SSH服务相关的建议:
Output
Suggestions (36):
----------------------------
* Consider hardening SSHconfiguration [SSH-7408]
- Details : ClientAliveCountMax (3 --> 2)
https://cisofy.com/controls/SSH-7408/

* Consider hardening SSHconfiguration [SSH-7408]
- Details : PermitRootLogin (YES --> NO)
https://cisofy.com/controls/SSH-7408/

* Consider hardening SSHconfiguration [SSH-7408]
- Details : Port (22 --> )
https://cisofy.com/controls/SSH-7408/

* Consider hardening SSHconfiguration [SSH-7408]
- Details : TCPKeepAlive (YES--> NO)
https://cisofy.com/controls/SSH-7408/

* Consider hardening SSHconfiguration [SSH-7408]
- Details : UsePrivilegeSeparation (YES --> SANDBOX)
https://cisofy.com/controls/SSH-7408/
...

根据你的运行环境,实施所有这些建议都是比较安全可靠的。但是,为了能做出决断,你必须知道每一个建议的具体意思。因为这些都隶属于SSH服务器,因此所有的更改必须体现在SSH守护进程的配置文件/etc/SSH/sshd_config中。如果你对Lynis给出的关于SSH的建议有任何疑问,请用man sshd_config指令来查看。当然这些信息也在网上找到。
其中的一条建议是要求更改SSH的默认22号端口。如果你要更改它,请相应地在防火墙上添加一条规则,让对于SSH的访问能从新的端口上通过。
和警告部分一样,你可以使用sudo lynis show details test-id来查询Lynis的测试ID,以获得更多有关建议的详细信息。
其他的建议则是要求你在服务器上安装额外的软件。如下例所示:
Output
* Harden the system by installing at least one malware scanner, to performperiodic file system scans [HRDN-7230]
- Solution : Install a tool likerkhunter, chkrootkit, OSSEC
https://cisofy.com/controls/HRDN-7230/
该建议是安装rkhunterchkrootkitOSSEC来满足加固测试(HRDN-7230)的要求。OSSEC是一个基于主机的入侵检测系统,它可以生成并发送警告。这是一个能够协助Lynis执行测试的一个很好的安全应用程序。关于此工具,你可以通过DigitalOcean的各个教程(https://www.digitalocean.com/community/tutorials?q=ossec)来进行更多的了解。但是,仅仅安装OSSEC并不能顺利地通过此测试,你还需要安装chkrootkit。这就是为什么有时候除了Lynis所给出的建议,你还要做更多的研究的原因。
让我们来看另一个例子。这是一个在文件完整性测试后显示的一个结果建议。
Output
* Install a file integrity tool to monitor changes to critical andsensitive files [FINT-4350]
https://cisofy.com/controls/FINT-4350/
该安全控制的URL所给出的建议并没有提到我们前面所及的那个OSSEC程序,但是如果安装它,则会保证我们能通过后续的审计测试。这就是为什么OSSEC是一个很好的文件完整性监控工具的原因。
你也可以忽略一些并不适合你的建议。这里同样也有一个例子:
Output
* To decrease the impact of a full /home file system, place /home on aseparated partition [FILE-6310]
https://cisofy.com/controls/FILE-6310/

* To decrease the impact of a full/tmp file system, place /tmp on a separated partition [FILE-6310]
https://cisofy.com/controls/FILE-6310/
传统,核心Linux文件系统,如/home/tmp/var/usr常被挂载到一个单独的分区里,以减少在整个服务器耗尽其磁盘空间时的影响。但是,这种耗尽的情况其实并不被经常看到,尤其是在那些云服务器上。这些文件系统如今只是作为一个目录被挂载到同一根分区里。但是如果你对这样的系统执行Lynis审计的话,你会得到一些类似于前面所提及的建议输出。除非你的确想实施的该建议,否则你很可能想通过配置Lynis来忽略它们,使它们将来不再执行此类审计。
使用Lynis来执行安全审计不仅仅涉及到修复警告和实施建议,它还包括识别出多余的测试。在接下来的步骤中,你将学习到如何定制缺省的概要文件来忽略此类测试。
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接