📜  Lynis – 用于审计和强化 Linux 系统的安全工具

📅  最后修改于: 2022-05-13 01:57:29.384000             🧑  作者: Mango

Lynis – 用于审计和强化 Linux 系统的安全工具

Lynis是一个开源安全审计工具,适用于 Linux、Mac OS、BSD、其他基于 Unix 的操作系统等 UNIX 衍生产品。对支持系统强化和合规性测试的系统执行广泛的健康扫描。具有 GPL 许可证的开源软件。此工具还会扫描一般系统信息、易受攻击的软件包和配置问题。它对系统管理员、审计员、安全专业人员很有用。

Lynis 工具如何工作?

Lynis 扫描是模块化和机会性的,用于测试可用系统工具及其库等组件。 Lynis 工具的优点是不需要额外安装工具,因此系统是干净的。发现的组件越多,审计的范围就越大。使用这种方法,Lynis 可以无依赖地运行。

Lynis工具安装:

Lynis 是轻量级的,大多数用户使用需要更多时间安装的软件包来安装 Lynis。 Lynis有多种安装方式,

  • 通过 GitHub 克隆
  • 操作系统包安装
  • 源安装
  • 压缩包
  • 家酿
  • BSD 端口

像 Debian、Distro、Ubuntu、Mint、Fedora、Suse、OpenSUSE、Arch Linux、Manjaro 等 UNIX 发行版默认有 Lynis 包。有了这个,我们就可以很容易地使用包管理器从分发存储库安装它们。

使用软件包或操作系统包安装 Lynis:

使用软件包安装 Lynis 是默认安装的,因此我们可以在各种 UNIX 发行版上使用以下命令安装它。



在 Ubuntu/Debian/LinuxMint 上安装 Lynis

sudo apt-get install lynis

用于审计和强化 Linux 系统的 Lynis 安全工具

在 RHEL/CentOS 上安装 Lynis

$ sudo yum install lynis

在 Fedora 上安装 Lynis

$ sudo dnf install lynis

在 openSUSE 上安装 Lynis

$ sudo zypper install lynis

在基于 Arch Linux 的系统上安装 Lynis

$ sudo pacman -S lynis

在 BSD 端口上安装 Lynis

$ cd /usr/ports/lynis/security
$ make install

通过 Git Clone 安装 Lynis

从 GitHub 克隆或下载项目文件(需要编译或安装)。在安装或克隆存储库 Lynis 后,主要工具位于名为lynis 的文件中。一个 shell 脚本,打开时我们可以读取该工具实际执行的操作。 Lynis 是使用 shell 脚本实现的。

$ git clone https://github.com/CISOfy/lynis
$ cd lynis 
$ ls

用于审计和强化 Linux 系统的 Lynis 安全工具

如何运行 Lynis:

要查看 Lynis 中可用的所有命令,我们可以执行以下命令,

$ ./lynis show

用于审计和强化 Linux 系统的 Lynis 安全工具

我们现在可以使用 Lynis 对我们的系统进行安全审计。我们可以在 Lynis 的帮助下查看要执行的命令列表。使用以下命令列出要执行的命令数,

$ ./lynis show commands

用于审计和强化 Linux 系统的 Lynis 安全工具

在执行审核之前,请确保您位于正确的目录中并在 lynis 之前添加“./”。 Lynis 无需预先配置即可运行,我们可以在特权非特权模式(pentest)下运行 lynis 。有些测试需要root 权限,因此可以跳过这些测试。以特权模式运行审计 运行命令,



$ ./lynis audit system

注意:添加 –quick 参数将使 lynis 能够不间断地运行,并使我们能够在扫描的同时处理其他事情。

$ ./lynis audit system --quick

身份验证后,Lynis 将运行测试并检查结果。 Lynis 将执行审核,并执行许多测试,所有这些都分为几。每次审核测试结果后,都会提供调试信息建议以加强系统。更详细的信息存储在/var/log/lynis/log,而数据报告存储在/var/log/lynis-report.dat。

探索报告:

Lynis 进行深入审计并通过以下方式报告结果:

屏幕输出:它扫描系统并执行许多测试。可能的测试结果包括,

  • 正常或警告
  • 找到或未找到
  • 虚弱的
  • 无或完成

日志文件:扫描期间在屏幕上显示的结果和其他详细信息记录在日志文件中。日志文件中的信息

  • 行动/事件时间
  • 测试失败或跳过的原因
  • (内部)测试的输出
  • 关于配置选项的建议
  • 威胁/影响分数

备注:每次扫描后都会记录日志文件。调试记录与先前扫描相关的信息,请在再次运行 lynis 之前安排日志轮换。

报告文件: Lynis 收集的调查结果和其他数据点存储在默认文件中的报告文件中。报告文件用于比较过去的扫描与当前的扫描。报告文件内容:

  • 备注 = #<备注>
  • 部分 = [<部分名称>]
  • 选项/值 = <选项名称> = <选项的值>

报告数据包含有关存储在日志文件中的服务器和应用程序的信息。每次审核时都会覆盖日志文件。

Lynis 提供了有关当前系统操作系统、操作系统版本、在 Linux 机器上运行的硬件的完整信息。 Debian 插件被扫描并生成有关软件包安装的详细信息。

用于审计和强化 Linux 系统的 Lynis 安全工具



Debian 测试也被扫描,它提供了关于系统安装的更多信息。它还显示 Debian 插件的警告和软件安装列表(如果它们已安装在系统上)。 Debian 插件检查Debian 测试所需的系统二进制文件。

用于审计和强化 Linux 系统的 Lynis 安全工具

系统引导和服务被扫描并显示系统中存在的引导和服务问题。

用于审计和强化 Linux 系统的 Lynis 安全工具

引导和服务

用于检查典型 Lynis 审核结果的打印机和线轴,此类别下有两个测试。检查 cupsd 状态和相关配置文件。 lpd 状态,qdaemon 打印机假脱机程序状态。

软件:firewalls检查iptables内核模块,使用iptables链的策略。还验证软件防火墙,如 CSF、UCF 等。它检查防火墙和本地服务的配置,收集数据以供进一步分析。

用于审计和强化 Linux 系统的 Lynis 安全工具

这里inetd 的不安全服务没有找到, 该测试在 Lynis 上进行了标记,因为它不应作为您服务器上审计的一部分执行。扫描 inet 守护进程状态并在禁用时检查配置文件。

用于审计和强化 Linux 系统的 Lynis 安全工具

SSH 支持在 /etc/ssh/sshd_config 上扫描 SSH 守护进程状态和其他 SSH 调整以确保安全登录。

SNMP 支持检查 SNMP 守护程序正在运行、守护程序文件位置、SNMP 通信。



数据库检查已安装的数据库,如 MySQL、PostgreSQL、Oracle、DB2 和 Redis 以及相关进程、配置文件。

LDAP 服务检查 OpenLDAP 实例是否正在运行及其配置文件。

用于审计和强化 Linux 系统的 Lynis 安全工具

Lynis 有颜色编码:

  • 绿色:这意味着一切正常或被禁用
  • 黄色:跳过,未找到,可能有建议
  • 红色:表示特定测试或扫描不安全或需要更多关注。

内核扫描运行级别、CPU 支持、内核版本、内核类型、/etc/inittab 和加载的内核模块中。

用于审计和强化 Linux 系统的 Lynis 安全工具

内存和进程从 /proc/meminfo、死进程和 IO 进程扫描内存信息。

用于审计和强化 Linux 系统的 Lynis 安全工具

内核强化它有许多定义内核函数的可调设置,一些可调参数具有安全上下文。发行版可能没有默认设置,每次扫描都需要检查。该值根据安全状况不断变化。使用配置文件扫描 sysctl 密钥对以验证内核参数加固。

用于审计和强化 Linux 系统的 Lynis 安全工具



用户、组和身份验证扫描管理员帐户、UID、GID、/etc/passwd、sudoers 和 PAM 文件、密码老化、单用户模式、登录失败和 umask。

用于审计和强化 Linux 系统的 Lynis 安全工具

外壳扫描可用的外壳并检查它是否易受攻击。

用于审计和强化 Linux 系统的 Lynis 安全工具

文件系统扫描可用的挂载点并检查是单独挂载还是挂载在 / 文件系统上。还要检查挂载点标志并正确添加。 fstab 文件、交换分区、/proc、/tmp 和 /tmp 粘滞位。

用于审计和强化 Linux 系统的 Lynis 安全工具

  • 存储扫描,如果 USB 存储被禁用,检查 USB 设备授权。另外,检查是否禁用了火线存储。
  • NFS扫描 rpcinfo 注册程序、NFS 注册版本、NFS 注册协议和 NFS 守护进程运行等 NFS 信息。

用于审计和强化 Linux 系统的 Lynis 安全工具

端口和包扫描包管理器,如果找到包管理器(rpm、deb 等),它将查询已安装的包列表并检查包漏洞、包更新。最后,检查 GPG 签名以确保包安全。

用于审计和强化 Linux 系统的 Lynis 安全工具

网络扫描 IPv6 是否启用、名称服务器配置测试、搜索可用网络接口、MAC 地址、网络 IP 地址、DHCP 状态。

用于审计和强化 Linux 系统的 Lynis 安全工具

日志和文件扫描 syslog 守护进程是否正在运行及其配置文件。

用于审计和强化 Linux 系统的 Lynis 安全工具

  • 横幅和标识扫描版权横幅文件,检查问题横幅文件和内容并检查 issue.net 横幅文件及其内容。
  • 计划任务扫描 cron 守护进程统计信息,然后它将检查 cronjob/crontab 列表。
  • 会计扫描会计软件信息及其配置文件。

用于审计和强化 Linux 系统的 Lynis 安全工具

安全框架扫描 AppArmor、SELinux、grsecurity 已启用。如果是,它将检查守护程序状态和存在。

  • 文件完整性检查所有文件的文件完整性。
  • 系统工具检查系统自动化工具、fail2ban、IDS/IPS 等。
  • 恶意软件扫描恶意软件相关工具,如 chkrootkit、Rootkit Hunter、LMD 和 clamscan。

文件权限在此扫描所有类型的文件权限

扫描第 2 阶段插件是基于已安装插件的测试,要为 lynis 安装插件,然后添加/etc/lynis/plugins 目录。扫描完成后,我们会即兴提供警告和建议详细信息,以提高系统的安全性并纠正系统中存在的任何问题。



用于审计和强化 Linux 系统的 Lynis 安全工具

此处显示安全扫描详细信息,报告包括结果和一般信息,例如执行的许多安全测试。还会显示日志文件和报告数据的位置。

Lynis 提供了获取有关每个建议的详细信息的选项,可以使用show details命令后跟测试 ID 号访问它。在这里,我们利用了 50 条建议中列出的一条建议,

$ ./lynis show details PHP-2376

Lynis Hardening Index是 Lynis 的唯一索引,它让审计员了解系统的硬化程度。该数字是所采取措施的指标。

要实施安全保护措施,首先要确定系统中存在的发现,并应用扫描后给出的所有措施或建议。强化 Lynis 和 Unix 系统对于使安全符合安全策略至关重要。

增加 Lynis 硬化指数的替代方法是确定哪些测试对于特定机器的作用过于严格。可以在扫描配置文件中禁用测试,从而跳过测试。使用它,这些特定测试的强化等级将被跳过,并获得不同的分数。

将 Lynis 作为自定义测试运行

要扫描特定测试,我们必须列出测试 ID。如果服务器不运行 web 服务器,则无需测试。使用tests参数列出 lynis 中的一些测试。

$ lynis show tests

用于审计和强化 Linux 系统的 Lynis 安全工具

使用以下命令检查特定测试,后跟测试 ID

$ lynis show tests ACCT-9626
$ lynis show tests TOOL-5190 

要了解 Lynis 工具的更新详细信息并查看该工具是否为最新版本,请运行更新信息以获取与 Lynis 工具相关的所有详细信息。

$ ./lynis update info

为了获得更多测试 ID,我们在默认日志文件/var/log/lynis.log 中找到它们

如果使用上面的日志文件没有得到想要的结果,那么使用-c (check-all) 参数运行 lynis。为了查看日志文件,我们使用cat 命令并结合 grep然后显示日志文件中存在的所有测试 ID 的列表。

$ cat /var/log/lynis.log | grep KRNL
/*Another method can be using command*/
$ ./lynis -c -Q

要运行检查系统的正常运行时间并检查核心转储配置测试,如果要添加更多测试,请添加以空格分隔的测试 ID。

$ ./lynis --tests "BOOT-5202 KRNL-5820"

使用类别运行 Lynis:

如果 Test-ID 需要大量处理,请使用–test-from-category参数,Lynis 运行包含在每个类别中的 Test-ID。使用以下命令运行防火墙和内核测试,

$ ./lynis --tests-from-category "firewalls"

以 Cronjob 的身份运行 Lynis:

自动 lynis 定期运行并检查自上次 lynis 扫描以来的改进。要使用 lynis 执行 Cronjob,然后每个月运行一次。在脚本 /usr/local/lynis/var/log/lynis 中创建这些相关路径很重要。

要在脚本中保存路径,请执行以下命令,

# script is saved in text.sh and script is given below.
# You can use any editor to save the script, here editor used is Vim.
$ vim text.sh
#inside vim enter command
touch /root/Desktop/file.txt
$ chmod u+x text.sh
# this command is to execute cronjob monthly or anytime we schedule it to.
$ #!/bin/sh
 AUDITOR="AUROMATED" DATE=$(date+%Y%m%d) 
 HOST=$(hostname) LOG_DIR="/var/log/lynis"
 REPORT="$LOG_DIR/report-${HOST}.${DATE}" DATA ="$LOG_DIR/report-data-${HOST}.${DATE}.txt"
 cd /usr/local/lynis
 ./lynis -c -auditor "${AUDITOR}" --cronjob > ${REPORT}
 mv /var/log/lynis-report.dat ${DATA}
 #End
$ lynis audit system --auditor "${AUDITOR}" --cronjob > ${REPORT}
# Move or save file to:
[-f /ar/log/lynis-report.dat ] then 
mv /var/log/lynis-report.dat ${DATA}
fi

检查 Lynis 的版本

Lynis 的版本基本上会显示工具所在的版本号。检查Lynis 工具的版本将帮助您了解该工具是否为最新版本。

$ ./lynis --version