使用 Lynis 扫描 Linux 安全性

使用这个全面的开源安全审计工具检查你的 Linux 机器的安全性。

使用这个全面的开源安全审计工具检查你的 Linux 机器的安全性。

使用 Lynis 扫描 Linux 安全性

你有没有想过你的 Linux 机器到底安全不安全?Linux 发行版众多,每个发行版都有自己的默认设置,你在上面运行着几十个版本各异的软件包,还有众多的服务在后台运行,而我们几乎不知道或不关心这些。

要想确定安全态势(指你的 Linux 机器上运行的软件、网络和服务的整体安全状态),你可以运行几个命令,得到一些零碎的相关信息,但你需要解析的数据量是巨大的。

如果能运行一个工具,生成一份关于机器安全状况的报告,那就好得多了。而幸运的是,有一个这样的软件:Lynis。它是一个非常流行的开源安全审计工具,可以帮助强化基于 Linux 和 Unix 的系统。根据该项目的介绍:

“它运行在系统本身,可以进行深入的安全扫描。主要目标是测试安全防御措施,并提供进一步强化系统的提示。它还将扫描一般系统信息、易受攻击的软件包和可能的配置问题。Lynis 常被系统管理员和审计人员用来评估其系统的安全防御。”

安装 Lynis

你的 Linux 软件仓库中可能有 Lynis。如果有的话,你可以用以下方法安装它:

“`
dnf install lynis

“`

“`
apt install lynis

“`

然而,如果你的仓库中的版本不是最新的,你最好从 GitHub 上安装它。(我使用的是 Red Hat Linux 系统,但你可以在任何 Linux 发行版上运行它)。就像所有的工具一样,先在虚拟机上试一试是有意义的。要从 GitHub 上安装它:

“`
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.8 (Maipo)
$
$ uname -r
3.10.0-1127.el7.x86_64
$
$ git clone https://github.com/CISOfy/lynis.git
Cloning into ‘lynis’…
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 12566 (delta 15), reused 8 (delta 0), pack-reused 12536
Receiving objects: 100% (12566/12566), 6.36 MiB | 911.00 KiB/s, done.
Resolving deltas: 100% (9264/9264), done.
$

“`

一旦你克隆了这个版本库,那么进入该目录,看看里面有什么可用的。主要的工具在一个叫 lynis 的文件里。它实际上是一个 shell 脚本,所以你可以打开它看看它在做什么。事实上,Lynis 主要是用 shell 脚本来实现的:

“`
$ cd lynis/
$ ls
CHANGELOG.md CONTRIBUTING.md db developer.prf FAQ include LICENSE lynis.8 README SECURITY.md
CODEOFCONDUCT.md CONTRIBUTORS.md default.prf extras HAPPY_USERS.md INSTALL lynis plugins README.md
$
$ file lynis
lynis: POSIX shell script, ASCII text executable, with very long lines
$

“`

运行 Lynis

通过给 Lynis 一个 -h 选项来查看帮助部分,以便有个大概了解:

“`
$ ./lynis -h

“`

你会看到一个简短的信息屏幕,然后是 Lynis 支持的所有子命令。

接下来,尝试一些测试命令以大致熟悉一下。要查看你正在使用的 Lynis 版本,请运行:

“`
$ ./lynis show version
3.0.0
$

“`

要查看 Lynis 中所有可用的命令:

“`
$ ./lynis show commands

Commands:
lynis audit
lynis configure
lynis generate
lynis show
lynis update
lynis upload-only

$

“`

审计 Linux 系统

要审计你的系统的安全态势,运行以下命令:

“`
$ ./lynis audit system

“`

这个命令运行得很快,并会返回一份详细的报告,输出结果可能一开始看起来很吓人,但我将在下面引导你来阅读它。这个命令的输出也会被保存到一个日志文件中,所以你可以随时回过头来检查任何可能感兴趣的东西。

Lynis 将日志保存在这里:

“`
Files:
– Test and debug information : /var/log/lynis.log
– Report data : /var/log/lynis-report.dat

“`

你可以验证是否创建了日志文件。它确实创建了:

“`
$ ls -l /var/log/lynis.log
-rw-r–. 1 root root 638 Apr 30 05:55 /var/log/lynis-report.dat
$

“`

探索报告

Lynis 提供了相当全面的报告,所以我将介绍一些重要的部分。作为初始化的一部分,Lynis 做的第一件事就是找出机器上运行的操作系统的完整信息。之后是检查是否安装了什么系统工具和插件:

“`
[+] Initializing program

  • Detecting OS… [ DONE ]
  • Checking profiles… [ DONE ]

<<截断>>

[+] System Tools

  • Scanning available tools…
  • Checking system binaries…

[+] Plugins (phase 1)

Note: plugins have more extensive tests and may take several minutes to complete

  • Plugin: pam
    [..]
  • Plugin: systemd
    […………….]

“`

接下来,该报告被分为不同的部分,每个部分都以 [+] 符号开头。下面可以看到部分章节。(哇,要审核的地方有这么多,Lynis 是最合适的工具!)

“`
[+] Boot and services
[+] Kernel
[+] Memory and Processes
[+] Users, Groups and Authentication
[+] Shells
[+] File systems
[+] USB Devices
[+] Storage
[+] NFS
[+] Name services
[+] Ports and packages
[+] Networking
[+] Printers and Spools
[+] Software: e-mail and messaging
[+] Software: firewalls
[+] Software: webserver
[+] SSH Support
[+] SNMP Support
[+] Databases
[+] LDAP Services
[+] PHP
[+] Squid Support
[+] Logging and files
[+] Insecure services
[+] Banners and identification
[+] Scheduled tasks
[+] Accounting
[+] Time and Synchronization
[+] Cryptography
[+] Virtualization
[+] Containers
[+] Security frameworks
[+] Software: file integrity
[+] Software: System tooling
[+] Software: Malware
[+] File Permissions
[+] Home directories
[+] Kernel Hardening
[+] Hardening
[+] Custom tests

“`

Lynis 使用颜色编码使报告更容易解读。

  • 绿色。一切正常
  • 黄色。跳过、未找到,可能有个建议
  • 红色。你可能需要仔细看看这个

在我的案例中,大部分的红色标记都是在 “Kernel Hardening” 部分找到的。内核有各种可调整的设置,它们定义了内核的功能,其中一些可调整的设置可能有其安全场景。发行版可能因为各种原因没有默认设置这些,但是你应该检查每一项,看看你是否需要根据你的安全态势来改变它的值:

“`
[+] Kernel Hardening

  • Comparing sysctl key pairs with scan profile
    • fs.protectedhardlinks (exp: 1) [ OK ]
    • fs.protectedsymlinks (exp: 1) [ OK ]
    • fs.suiddumpable (exp: 0) [ OK ]
    • kernel.coreusespid (exp: 1) [ OK ]
    • kernel.ctrl-alt-del (exp: 0) [ OK ]
    • kernel.dmesgrestrict (exp: 1) [ DIFFERENT ]
    • kernel.kptrrestrict (exp: 2) [ DIFFERENT ]
    • kernel.randomizevaspace (exp: 2) [ OK ]
    • kernel.sysrq (exp: 0) [ DIFFERENT ]
    • kernel.yama.ptracescope (exp: 1 2 3) [ DIFFERENT ]
    • net.ipv4.conf.all.acceptredirects (exp: 0) [ DIFFERENT ]
    • net.ipv4.conf.all.acceptsourceroute (exp: 0) [ OK ]
    • net.ipv4.conf.all.bootprelay (exp: 0) [ OK ]
    • net.ipv4.conf.all.forwarding (exp: 0) [ OK ]
    • net.ipv4.conf.all.logmartians (exp: 1) [ DIFFERENT ]
    • net.ipv4.conf.all.mcforwarding (exp: 0) [ OK ]
    • net.ipv4.conf.all.proxyarp (exp: 0) [ OK ]
    • net.ipv4.conf.all.rpfilter (exp: 1) [ OK ]
    • net.ipv4.conf.all.sendredirects (exp: 0) [ DIFFERENT ]
    • net.ipv4.conf.default.acceptredirects (exp: 0) [ DIFFERENT ]
    • net.ipv4.conf.default.acceptsourceroute (exp: 0) [ OK ]
    • net.ipv4.conf.default.logmartians (exp: 1) [ DIFFERENT ]
    • net.ipv4.icmpechoignorebroadcasts (exp: 1) [ OK ]
    • net.ipv4.icmpignoreboguserrorresponses (exp: 1) [ OK ]
    • net.ipv4.tcpsyncookies (exp: 1) [ OK ]
    • net.ipv4.tcptimestamps (exp: 0 1) [ OK ]
    • net.ipv6.conf.all.acceptredirects (exp: 0) [ DIFFERENT ]
    • net.ipv6.conf.all.acceptsourceroute (exp: 0) [ OK ]
    • net.ipv6.conf.default.acceptredirects (exp: 0) [ DIFFERENT ]
    • net.ipv6.conf.default.acceptsourceroute (exp: 0) [ OK ]

“`

看看 SSH 这个例子,因为它是一个需要保证安全的关键领域。这里没有什么红色的东西,但是 Lynis 对我的环境给出了很多强化 SSH 服务的建议:

“`
[+] SSH Support

  • Checking running SSH daemon [ FOUND ]
    • Searching SSH configuration [ FOUND ]
    • OpenSSH option: AllowTcpForwarding [ SUGGESTION ]
    • OpenSSH option: ClientAliveCountMax [ SUGGESTION ]
    • OpenSSH option: ClientAliveInterval [ OK ]
    • OpenSSH option: Compression [ SUGGESTION ]
    • OpenSSH option: FingerprintHash [ OK ]
    • OpenSSH option: GatewayPorts [ OK ]
    • OpenSSH option: IgnoreRhosts [ OK ]
    • OpenSSH option: LoginGraceTime [ OK ]
    • OpenSSH option: LogLevel [ SUGGESTION ]
    • OpenSSH option: MaxAuthTries [ SUGGESTION ]
    • OpenSSH option: MaxSessions [ SUGGESTION ]
    • OpenSSH option: PermitRootLogin [ SUGGESTION ]
    • OpenSSH option: PermitUserEnvironment [ OK ]
    • OpenSSH option: PermitTunnel [ OK ]
    • OpenSSH option: Port [ SUGGESTION ]
    • OpenSSH option: PrintLastLog [ OK ]
    • OpenSSH option: StrictModes [ OK ]
    • OpenSSH option: TCPKeepAlive [ SUGGESTION ]
    • OpenSSH option: UseDNS [ SUGGESTION ]
    • OpenSSH option: X11Forwarding [ SUGGESTION ]
    • OpenSSH option: AllowAgentForwarding [ SUGGESTION ]
    • OpenSSH option: UsePrivilegeSeparation [ OK ]
    • OpenSSH option: AllowUsers [ NOT FOUND ]
    • OpenSSH option: AllowGroups [ NOT FOUND ]

“`

我的系统上没有运行虚拟机或容器,所以这些显示的结果是空的:

“`
[+] Virtualization

[+] Containers

“`

Lynis 会检查一些从安全角度看很重要的文件的文件权限:

“`
[+] File Permissions

  • Starting file permissions check
    File: /boot/grub2/grub.cfg [ SUGGESTION ]
    File: /etc/cron.deny [ OK ]
    File: /etc/crontab [ SUGGESTION ]
    File: /etc/group [ OK ]
    File: /etc/group- [ OK ]
    File: /etc/hosts.allow [ OK ]
    File: /etc/hosts.deny [ OK ]
    File: /etc/issue [ OK ]
    File: /etc/issue.net [ OK ]
    File: /etc/motd [ OK ]
    File: /etc/passwd [ OK ]
    File: /etc/passwd- [ OK ]
    File: /etc/ssh/sshd_config [ OK ]
    Directory: /root/.ssh [ SUGGESTION ]
    Directory: /etc/cron.d [ SUGGESTION ]
    Directory: /etc/cron.daily [ SUGGESTION ]
    Directory: /etc/cron.hourly [ SUGGESTION ]
    Directory: /etc/cron.weekly [ SUGGESTION ]
    Directory: /etc/cron.monthly [ SUGGESTION ]

“`

在报告的底部,Lynis 根据报告的发现提出了建议。每项建议后面都有一个 “TEST-ID”(为了下一部分方便,请将其保存起来)。

“`
Suggestions (47):

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

作者:Gaurav Kamathe 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2020/10/08/%e4%bd%bf%e7%94%a8-lynis-%e6%89%ab%e6%8f%8f-linux-%e5%ae%89%e5%85%a8%e6%80%a7/

(0)
eason的头像eason
上一篇 2020年10月7日
下一篇 2020年10月8日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信