Lynis 介绍与选型指南
Lynis(CISOfy 开源本机安全审计与加固工具)介绍与选型:无代理纯 Shell 审计架构、加固指数与 Warnings/Suggestions 产出机制、与 OpenSCAP/ClamAV/Nessus 的量化对比(星数 17k、301 项实测测试),全部基于 Ubuntu 22.04 实测。
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 的核心特点可以浓缩为三条:
- 无代理、无依赖、无守护进程:整个软件就是一组 Shell 脚本(主脚本
lynis+include/函数库 +db/测试数据库),clone 下来就能跑,不需要编译、不需要数据库、不常驻内存。扫描在本机完成,不向网络发送扫描流量——这是它与 Nessus/OpenVAS 这类网络漏洞扫描器最本质的区别(官方站点专设了 "Differences with Nessus or OpenVAS" 一节说明此事,查询日期 2026-10-24)。 - 只读安全:审计过程只读取系统状态,不改动配置。日志写
/var/log/lynis.log,结构化报告写/var/log/lynis-report.dat。 - 可扩展的测试体系:内置 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)数据库等 |
| 默认 profile | default.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 三类输出物
每次审计产生三类输出(实测路径):
- 屏幕摘要:审计结束直接打印 Warnings(本次 5 条)、Suggestions(本次 54 条)与安全扫描详情(加固指数 62、执行测试 301 项)。
- 日志文件
/var/log/lynis.log:每个测试的逐行执行明细,可用lynis show details <TEST-ID>直接调取(实测调取 SSH-7408 得到其全部判断过程)。 - 报告文件
/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 商业版 |
| OpenSCAP | SCAP 标准合规扫描(CVE/CCI/合规基线) | 本机扫描 + OVAL/XCCDF 数据流 | LGPL,免费 |
| ClamAV | 反病毒/恶意软件扫描(文件特征匹配) | 常驻守护 + 按需扫描 | GPL,免费 |
| Nessus(Tenable) | 网络漏洞扫描 | 网络远程扫描 | 商业(第三方评测约 $4,790/年起);Essentials 免费版限 16 IP |
| rkhunter / chkrootkit | Rootkit 后门点检 | 本机脚本 | GPL,免费 |
7.2 量化对比
| 维度 | Lynis | OpenSCAP | ClamAV | Nessus Essentials |
|---|---|---|---|---|
| GitHub 星数(2026-10-24) | 17k | 1.8k | 7.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 项测试的审计报告。
八、参考链接
- 官方站点:https://cisofy.com/lynis/
- 官方 GitHub 仓库:https://github.com/CISOfy/lynis
- 官方文档:https://cisofy.com/documentation/lynis/
- 控制项解释页(按编号检索,如 SSH-7408):https://cisofy.com/lynis/controls/
- 官方软件包仓库:https://packages.cisofy.com/
- Linux 安全博客(官方建议的文章来源):https://linux-audit.com/
- 本系列配套文档:《Ubuntu 22.04 安装 Lynis 3.1.7 指南》《Lynis 配置参数详解(default.prf 与 custom.prf 实测)》《Lynis 常用 CLI 命令详解(audit/show/update 实测)》