Lynis 介绍与选型指南

Lynis(CISOfy 开源本机安全审计与加固工具)介绍与选型:无代理纯 Shell 审计架构、加固指数与 Warnings/Suggestions 产出机制、与 OpenSCAP/ClamAV/Nessus 的量化对比(星数 17k、301 项实测测试),全部基于 Ubuntu 22.04 实测。

Lynis安全测试自托管2026/10/24

Lynis 介绍与选型指南

目标:讲清 Lynis 是什么、能做什么、架构与工作方式如何,并与 OpenSCAP、ClamAV、Nessus 等同生态工具做量化选型对比,帮助读者判断"我的服务器要不要用 Lynis、用它解决什么问题"。文中全部实测数据已在 Ubuntu 22.04.4 LTS 服务器(内核 6.8.0、x86_64)上逐条执行取得,详见《Ubuntu 22.04 安装 Lynis 3.1.7 指南》与《Lynis 常用 CLI 命令详解》两篇。

一、环境信息

本文所有结论与实测回显基于以下环境:

  • 操作系统:Ubuntu 22.04.4 LTS(主机名 ops,内核 6.8.0-138-generic,硬件平台 x86_64)
  • Lynis 版本:3.1.8(git clone 官方 master 分支,lynis show version 实测输出;官方 GitHub Releases 页面当前最新稳定版为 3.1.7,3.1.8 在官方 CHANGELOG 中标注 "not released yet",查询日期 2026-10-24)
  • 取证来源:GitHub Releases(https://github.com/CISOfy/lynis/releases)、shields.io 星数徽章、官方站点 cisofy.com,查询日期均为 2026-10-24
  • 实验方式:在服务器上直接克隆官方仓库后运行 lynis audit system --quick 全量审计(只读操作,不改系统配置),完整输出约 952 行,审计耗时 5 分 46 秒(report 文件记录 04:27:12 开始、04:32:58 结束)

💡 说明:Lynis 是纯本地只读审计工具,运行过程不会修改任何系统配置、不安装任何软件,在生产服务器上直接执行是官方支持的使用方式。

二、软件概述

Lynis 是 CISOfy 公司(创始人 Michael Boelen,也是 rkhunter 的原作者)开源的安全审计与系统加固工具,面向 Linux、macOS、BSD 等 UNIX 类系统,官方 GitHub 仓库地址为 https://github.com/CISOfy/lynis。

它的工作方式很特别:在目标系统本机运行一个 Shell 脚本,逐项检查系统配置、软件版本、文件权限、网络参数等数百个安全控制点,最后给出一份包含"加固指数(Hardening Index)、警告(Warnings)、改进建议(Suggestions)"的报告。官方对其定位的三句话概括(译自 README):

  • 自动化安全审计(Automated security auditing)
  • 合规测试(Compliance testing,如 ISO27001、PCI-DSS、HIPAA)
  • 漏洞检测(Vulnerability detection)

同时它还能辅助:配置与资产管理、软件补丁管理、系统加固、渗透测试(提权路径发现)、入侵检测。

Lynis 的核心特点可以浓缩为三条:

  1. 无代理、无依赖、无守护进程:整个软件就是一组 Shell 脚本(主脚本 lynis + include/ 函数库 + db/ 测试数据库),clone 下来就能跑,不需要编译、不需要数据库、不常驻内存。扫描在本机完成,不向网络发送扫描流量——这是它与 Nessus/OpenVAS 这类网络漏洞扫描器最本质的区别(官方站点专设了 "Differences with Nessus or OpenVAS" 一节说明此事,查询日期 2026-10-24)。
  2. 只读安全:审计过程只读取系统状态,不改动配置。日志写 /var/log/lynis.log,结构化报告写 /var/log/lynis-report.dat。
  3. 可扩展的测试体系:内置 300+ 安全控制点(按组组织),支持通过 profile 文件(default.prf + custom.prf)裁剪测试项、自定义期望值,还支持插件(plugins)机制扩展私有测试。

💡 技术拓展:安全评估工具按"扫描位置"分两大流派,Lynis 属于本机审计(host-based audit),与网络扫描(network scanner)互补而非替代:

流派代表工具工作方式优势局限
本机审计Lynis、OpenSCAP、Bastille在系统内读配置、查权限不产生网络流量、能看配置文件内部、无需账号口令只能一台一台跑(需登录目标机)
网络扫描Nessus、OpenVAS/GVM从外部远程探测服务与漏洞一台扫描器覆盖全网、无需在目标机装东西看不到主机内部配置、产生扫描流量与日志噪音

实践中两者是组合关系:Lynis 负责"这台服务器自身配置是否扎实",网络扫描器负责"对外开放面有哪些洞"。

三、核心架构

Lynis 没有传统意义上的"服务进程",它的架构就是一次运行的内部结构。以下均来自对官方仓库(git clone master)目录与实测输出的直接观察:

3.1 组成部分

组成位置作用(实测来源)
主脚本lynis单文件入口,负责参数解析、profile 发现、调度测试
函数库include/functions(通用函数)、profiles(profile 解析)、tests_*(各测试组实现)等
测试数据库db/测试定义、语言文件、软件生命周期(EOL)数据库等
默认 profiledefault.prf全部默认配置项与期望值(详见《Lynis 配置参数详解(default.prf 与 custom.prf 实测)》)
插件目录plugins/自带 pam、systemd 两个 phase 1 插件,社区插件可放入扩展

3.2 一次审计的执行流程(实测还原)

运行 lynis audit system 后,输出按以下阶段推进(摘自实测输出的阶段标题):

[+] Initializing program          —— 探测 OS、加载 profile、确定语言与日志路径
[+] System tools                  —— 收集可用工具清单(本次实测发现 2146 个二进制)
[+] Plugins (phase 1)             —— 运行 pam、systemd 两个插件(本机实测共 2 个插件启用)
[+] Boot and services             —— 引导与服务审计(实测发现 44 个运行中服务、61 个开机自启服务)
[+] Kernel / Memory and Processes —— 内核参数、进程审计
    ……(共约 30 个测试组小节,此处省略中间节选)
[+] Plugins (phase 2)
================================================================================
  -[ Lynis 3.1.8 Results ]-       —— 汇总:Warnings / Suggestions / 加固指数

3.3 三类输出物

每次审计产生三类输出(实测路径):

  1. 屏幕摘要:审计结束直接打印 Warnings(本次 5 条)、Suggestions(本次 54 条)与安全扫描详情(加固指数 62、执行测试 301 项)。
  2. 日志文件 /var/log/lynis.log:每个测试的逐行执行明细,可用 lynis show details <TEST-ID> 直接调取(实测调取 SSH-7408 得到其全部判断过程)。
  3. 报告文件 /var/log/lynis-report.dat:key=value 结构化报告(本次实测 1750 行),含 hardening_index=62、tests_executed=...、vulnerable_packages_found=1 等机器可读字段,供脚本化归档与趋势对比。

3.4 测试组织:类别与组

lynis show categories 实测输出 3 个顶层类别:

performance
privacy
security

lynis show groups 实测输出 37 个测试组(节选):accounting、authentication、banners、boot_services、containers、crypto、databases、dns、file_integrity、file_permissions、filesystems、firewalls、hardening、homedirs、insecure_services、kernel、kernel_hardening、logging、malware、networking、ports_packages、scheduling、ssh、storage、storage_nfs、systemd、software、mac_frameworks、ldap、kerberos、mail_messaging、memory_processes、nameservices、php、printers_spoolers、processes、integrity 等。每个测试有形如 SSH-7408、KRNL-6000 的唯一控制编号,编号前缀即所属领域(SSH=SSH 配置、KRNL=内核、PKGS=软件包),可与 --tests-from-group、skip-test 等机制联动做精确裁剪(实测见《Lynis 配置参数详解(default.prf 与 custom.prf 实测)》第七章)。

四、功能特性

结合官方 README 与本机实测,Lynis 的功能特性按"它能告诉你什么"归纳:

4.1 加固指数(Hardening Index)

Lynis 把所有测试的达标情况折算成 0-100 的整数分。本机全量审计实测:

Hardening index : 62 [############        ]
Tests performed : 301
Plugins enabled : 2

即 301 项测试执行后得 62 分。这个数字最大的价值在于纵向趋势管理:每周跑一次,分数上升说明加固工作有效;配合 /var/log/lynis-report.dat 可把历次分数自动归档画趋势线。

4.2 警告(Warnings)与建议(Suggestions)

实测本机审计产出 5 条警告、54 条建议。警告是"应当尽快处理"的项,例如(实测原文节选):

! Found one or more vulnerable packages. [PKGS-7392]
! PostgreSQL configuration file /etc/postgresql/18/main/start.conf is world readable
  and might leak sensitive details [DBS-1828]
    - Details  : /etc/postgresql/18/main/start.conf
    - Solution : Use chmod 600 to change file permissions

建议是"可以更安全"的加固项,例如(实测原文节选):

* Consider hardening SSH configuration [SSH-7408]
    - Details  : PermitRootLogin (set YES to (FORCED-COMMANDS-ONLY|NO|PROHIBIT-PASSWORD|WITHOUT-PASSWORD))
* Harden the system by installing at least one malware scanner, to perform
  periodic file system scans [HRDN-7230]
    - Solution : Install a tool like rkhunter, chkrootkit, OSSEC, Wazuh

每条建议都带控制编号(如 SSH-7408),可用 lynis show details SSH-7408 调出完整判断过程(实测有效),也可到 https://cisofy.com/lynis/controls/<编号>/ 查官方解释页。

4.3 漏洞软件包检测

Lynis 不维护自己的漏洞库,而是调用系统包管理器的安全源数据(Ubuntu 下用 apt 的安全仓库比对)。实测报告字段 vulnerable_packages_found=1,对应警告 PKGS-7392。这意味着漏洞检测的时效性取决于系统安全源的更新频率,而非 Lynis 自身版本。

4.4 合规性检查

default.prf 中实测存在 compliance-standards=cis,hipaa,iso27001,pci-dss 配置项,即内置支持按 CIS、HIPAA、ISO27001、PCI-DSS 四个标准映射审计结果。需要说明:合规报告的深度呈现是 Lynis Enterprise(商业版)的能力,社区版保留标准映射与原始数据。这也是 CISOfy 的商业模式——社区版永久免费(GPLv3),企业版提供集中管理界面、仪表盘、合规报表与上传通道(upload-server、license-key 等 profile 配置项在 default.prf 中均有预留,实测可见)。

4.5 平台与系统覆盖

官方 README 明确支持 Linux、macOS、BSD 等_UNIX 类系统;从 Releases 页(3.1.6/3.1.7 的变更记录,2026-10-24 实查)可以看到持续的发行版适配工作:支持 CachyOS、OpenMandriva、OpenWrt、ALT Linux、Athena OS、Nobara Linux、PostmarketOS 等,并维护软件生命周期数据库(software-eol.db,含 RHEL 8/9/10、Ubuntu 25.10/26.04、Alpine、Fedora、NixOS 等 EOL 日期)。Lynis 能据此告诉你"你的操作系统本身是否已过保"(实测 lynis show eol 输出 Operating-system=Ubuntu 22.04.4 LTS / End-of-life=No)。

五、快速开始(最小可用示例)

最快的上手路径:clone 官方仓库,直接运行(无需安装)。以下命令与回显全部实测:

git clone https://github.com/CISOfy/lynis
cd lynis
./lynis show version

实测输出:

3.1.8

执行全量审计(--quick 表示不再交互等待按键,root 权限可获得最完整结果):

./lynis audit system --quick

实测输出节选(首部环境识别):

[ Lynis 3.1.8 ]

  ---------------------------------------------------
  Program version:           3.1.8
  Operating system:          Linux
  Operating system name:     Ubuntu
  Operating system version:  22.04
  End-of-life:               NO
  Kernel version:            6.8.0
  Hardware platform:         x86_64
  Hostname:                  ops
  ---------------------------------------------------
  Profiles:                  /opt/lynis/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat

实测输出节选(尾部摘要):

  Lynis security scan details:

  Scan mode:
  Normal [▆]  Forensics [ ]  Integration [ ]  Pentest [ ]

  Details:
  Hardening index : 62 [############        ]
  Tests performed : 301
  Plugins enabled : 2

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

到这里,一次完整的安全审计就完成了。下一步通常是:逐条处理 Warnings 与 Suggestions(按控制编号搜索官方解释页),或按组跑定向审计(如 ./lynis audit system --tests-from-group ssh,实测该组 6 项测试、产出 10 条 SSH 加固建议)。安装的多种方式(官方软件源、发行版仓库、tarball、git)详见《Ubuntu 22.04 安装 Lynis 3.1.7 指南》。

六、适用场景与限制

6.1 适合用 Lynis 的场景

  • 服务器例行安全巡检:每周/每日 cron 定期跑 audit system,把 hardening_index 与 Warnings 数量做成趋势,异常波动即告警(--cronjob 参数专为无人值守设计,实测存在该选项)。
  • 等保/合规自查:CIS、ISO27001、PCI-DSS 等标准的自查清单落点,先跑 Lynis 拿到差距清单再逐项整改。
  • 新服务器交付基线检查:装机完成后跑一次,确认 SSH、内核参数、文件权限、包更新等基线达标。
  • 渗透测试前的自查:官方明确提到红队也用 Lynis 做提权路径发现(SUID 文件、可写目录、弱配置等,实测报告含 binaries_suid_count 等 15 个 SUID 二进制清单)。
  • 大量服务器的轻量摸底:无代理特性使得"scp 过去跑完删掉"即可完成,不需要部署采集端。

6.2 Lynis 不做什么(限制边界)

  • 不做实时防护:Lynis 是点检工具,不拦截攻击、不监控事件。需要实时防护应配合 Wazuh/OSSEC、fail2ban 等(Lynis 自己的建议里也会提示安装此类工具)。
  • 不产生网络侧视角:它看不到"从外网看这台机器暴露了什么",这一层交给网络扫描器。
  • 漏洞库依赖系统源:漏洞检测时效跟随 apt/yum 安全源,不提供 CVE 级的深度情报。
  • 无 Web 界面:社区版纯 CLI,报告为文本文件;想要图形化集中管理需要 Lynis Enterprise 或自行解析 lynis-report.dat。
  • ** Windows 不在支持范围**:目标平台为 UNIX 类系统(Linux/macOS/BSD)。

七、同类选型对比

对比口径说明:星数为 shields.io 徽章实查值(查询日期 2026-10-24);版本节奏为 GitHub Releases 页实查;测试项数量以各项目官方口径为准;Nessus 价格取自第三方 2026 年评测(tuxcare.com,2026-10-24 查询)。

7.1 候选工具定位

工具定位运行方式许可/费用
Lynis本机安全审计 + 加固建议本机 Shell 脚本,无守护进程GPLv3 社区版免费;Enterprise 商业版
OpenSCAPSCAP 标准合规扫描(CVE/CCI/合规基线)本机扫描 + OVAL/XCCDF 数据流LGPL,免费
ClamAV反病毒/恶意软件扫描(文件特征匹配)常驻守护 + 按需扫描GPL,免费
Nessus(Tenable)网络漏洞扫描网络远程扫描商业(第三方评测约 $4,790/年起);Essentials 免费版限 16 IP
rkhunter / chkrootkitRootkit 后门点检本机脚本GPL,免费

7.2 量化对比

维度LynisOpenSCAPClamAVNessus Essentials
GitHub 星数(2026-10-24)17k1.8k7.4k不开源
版本节奏(近 3 个稳定版)3.1.4(2025-01-28)→ 3.1.5(2025-07-29)→ 3.1.6(2025-10-22),3.1.7 为当前最新按发行版节奏滚动按季度大版本商业季度更新
测试/规则数量300+ 安全控制点(本机实测一次全量执行 301 项)取决于加载的 SCAP 数据流(数千条 OVAL 定义)数百万病毒特征官方宣称 20 万+ 插件
扫描位置本机本机本机网络(远程)
Web 界面无(社区版)无(有 Workbench 等周边)无(有 clamav-milter 集成)有
典型耗时(本机实测)5 分 46 秒(301 项测试)视数据流,通常更久视文件量,小时级网络扫描,数十分钟

7.3 选型建议

  • 要"这台服务器配置是否扎实"的例行巡检与加固路线图 → 选 Lynis。它是四者中唯一以"给出可执行的加固建议清单 + 量化分数"为核心产物的工具,且零依赖、部署成本几乎为零。
  • 要标准 SCAP 合规证据(如等保、联邦采购场景) → 选 OpenSCAP 或 Lynis + OpenSCAP 组合。OpenSCAP 的强项是标准化数据流(XCCDF/OVAL)与官方基线内容,Lynis 的强项是建议可读性与上手速度。
  • 要恶意软件/病毒扫描 → 选 ClamAV(或 Lynis 建议的 rkhunter/Wazuh),它与 Lynis 是互补关系——实测本机审计就有一条建议明确提示"安装至少一个恶意软件扫描器"(HRDN-7230)。
  • 要全网资产的漏洞扫描 → Nessus(预算充足)或 OpenVAS/GVM(开源自建)。Lynis 不能替代这一层。
  • 如果只需要一个工具先跑起来 → Lynis 是上手成本最低的选择:clone 即用,5 分钟能拿到第一份 301 项测试的审计报告。

八、参考链接