Ubuntu 22.04 安装 Lynis 3.1.7 指南
Ubuntu 22.04 安装 Lynis 3.1.7 全流程实测:CISOfy 官方 apt 源(GPG key 导入/仓库配置/版本钉选)、发行版仓库、tarball 离线、git 四方案对比,含包布局差异(插件实体缺失)、密钥轮换排障、cron 定时审计与卸载清理。
Ubuntu 22.04 安装 Lynis 3.1.7 指南
目标:在 Ubuntu 22.04 服务器上从零安装 Lynis 安全审计工具,覆盖 CISOfy 官方 apt 源、发行版 universe 仓库、官方 tarball、git 仓库四种安装方案,并完成装后验证与定时审计配置。全部命令与回显已在 Ubuntu 22.04.4 LTS(内核 6.8.0、x86_64)服务器上逐条实测,实测版本为官方最新稳定版 3.1.7(2026-10-24 实查 GitHub Releases)。
一、环境信息
- 操作系统:Ubuntu 22.04.4 LTS(主机名 ops,内核 6.8.0-138-generic,x86_64)
- 目标软件:Lynis 3.1.7(官方 deb 包名为 3.1.7-100)
- 网络要求:能访问
packages.cisofy.com(官方软件源)、downloads.cisofy.com(tarball 下载)、github.com(git 方式) - 权限要求:root(本文全部以 root 执行;非 root 用户在命令前加
sudo即可) - 安装路径(以官方 deb 包为例):命令
/usr/sbin/lynis、profile/etc/lynis/、测试库/usr/share/lynis/ - 运行日志:
/var/log/lynis.log;结构化报告:/var/log/lynis-report.dat
二、前置条件
Lynis 是纯 Shell 脚本工具,前置条件极少,实测确认以下三件事即可:
- Shell 与基础命令:bash、curl(下载 GPG key/tarball 用)。实测系统自带;缺失时执行:
apt-get install -y curl
-
CA 证书:官方软件源走 HTTPS,需要 ca-certificate 支持(Ubuntu 22.04 自带)。官方文档额外建议 RHEL 系先执行
yum update ca-certificates curl nss openssl,Ubuntu 无此必要。 -
确认系统无旧版残留:
dpkg -l lynis
实测输出(干净系统):
dpkg-query: 没有找到与 lynis 相匹配的软件包
⚠️ 注意:Lynis 审计需要 root 权限才能读到全部配置(shadow、audit 日志等),安装本身也建议以 root 操作。
三、版本选型说明
安装前先搞清楚"哪个渠道给哪个版本"。实测本机 apt-cache policy lynis 在加入官方源前后的完整对照:
加入官方源前(只有 Ubuntu 自带 universe 仓库):
apt-cache policy lynis
实测输出:
lynis:
已安装:(无)
候选: 3.0.7-1
版本列表:
3.0.7-1 500
500 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
500 http://cn.archive.ubuntu.com/ubuntu jammy/universe i386 Packages
加入 CISOfy 官方源后:
lynis:
已安装:(无)
候选: 3.1.7-100
版本列表:
3.1.7-100 500
500 https://packages.cisofy.com/community/lynis/deb stable/main amd64 Packages
500 https://packages.cisofy.com/community/lynis/deb stable/main arm64 Packages
3.0.7-1 500
500 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
500 http://cn.archive.ubuntu.com/ubuntu jammy/universe i386 Packages
关键结论:
| 渠道 | 实测版本 | 说明 |
|---|---|---|
| Ubuntu 22.04 universe | 3.0.7-1 | 落后官方两个功能版本,仅适合临时用 |
| CISOfy 官方 deb 源 | 3.1.7-100 | 与 GitHub 最新稳定版同步(包构建号 -100) |
| 官方 tarball | 3.1.7 | 与 GitHub Release 同源 |
| git master | 3.1.8(开发版) | 官方 CHANGELOG 标注 not released yet |
选型建议:生产服务器优先选 CISOfy 官方 apt 源(方案一)——版本最新、apt upgrade 即可升级;无外网环境选 tarball(方案三);想跟进开发版或做二次开发选 git(方案四)。Ubuntu universe 的 3.0.7 只在"有就行"的场景使用。
四、在线安装方案(A:CISOfy 官方 apt 源,推荐)
本节添加 CISOfy 官方软件仓库并安装 Lynis,这是官方文档推荐的首选方式(步骤来源:packages.cisofy.com/community/ Debian/Ubuntu 节,2026-10-24 查询)。全程四步:导入 GPG key → 写仓库文件 → 刷新索引 → 安装。
4.1 导入官方 GPG 签名密钥
curl -fsSL https://packages.cisofy.com/keys/cisofy-software-public.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
实测确认 key 文件生成(3942 字节):
ls -la /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
-rw-r--r-- 1 root root 3942 10月 24 05:10 /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
⚠️ 注意:密钥历经轮换,2025-10-22 起签名密钥为 7A9A1D9D5B27C6D3(弃用 SHA1)。如果你的机器上存在旧版
cisofy-software-security.key相关配置并报EXPKEYSIG/NO_PUBKEY错误,删除旧 key 文件后按本节重新导入新 key(排障详见第十章 FAQ)。
4.2 写入仓库定义文件
echo "deb [arch=amd64,arm64 signed-by=/etc/apt/trusted.gpg.d/cisofy-software-public.gpg] https://packages.cisofy.com/community/lynis/deb/ stable main" | tee /etc/apt/sources.list.d/cisofy-lynis.list
实测输出:
deb [arch=amd64,arm64 signed-by=/etc/apt/trusted.gpg.d/cisofy-software-public.gpg] https://packages.cisofy.com/community/lynis/deb/ stable main
💡 说明:
stable main是官方要求的固定写法——不要替换成 Ubuntu 版本代号(如 jammy),官方源对所有发行版统一走stable通道(官方历史公告:2021-06-22 起不再按发行版代号维护)。
4.3 刷新软件索引
apt-get update
实测输出(节选,仅保留 cisofy 相关行):
获取:12 https://packages.cisofy.com/community/lynis/deb stable InRelease [11.5 kB]
获取:13 https://packages.cisofy.com/community/lynis/deb stable/main arm64 Packages [672 B]
获取:14 https://packages.cisofy.com/community/lynis/deb stable/main amd64 Packages [672 B]
看到 stable InRelease 与 Packages 两行即说明仓库可用。
4.4 安装并验证
apt-get install -y lynis
实测输出(节选):
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 212 个软件包未被升级。
需要下载 341 kB 的归档。
解压缩后会消耗 1,763 kB 的额外空间。
获取:1 https://packages.cisofy.com/community/lynis/deb stable/main amd64 lynis all 3.1.7-100 [341 kB]
已下载 341 kB,耗时 2秒 (164 kB/s)
正在选中未选择的软件包 lynis。
正在解压 lynis (3.1.7-100) ...
正在设置 lynis (3.1.7-100) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
验证版本与命令位置:
lynis show version && command -v lynis && man -w lynis
实测输出:
3.1.7
/usr/sbin/lynis
/usr/share/man/man8/lynis.8.gz
4.5 包安装的文件布局
dpkg -L lynis 实测关键路径(完整清单 160 项,节选归类):
/etc/lynis/default.prf —— 默认扫描 profile(配置中心)
/etc/lynis/developer.prf —— 开发者 profile
/usr/sbin/lynis —— 主命令
/usr/share/lynis/db/ —— 测试数据库(tests.db、software-eol.db、malware.db 等)
/usr/share/lynis/include/ —— 测试实现(tests_authentication、tests_ssh 等 45 个模块)
/usr/share/lynis/plugins/ —— 插件目录(仅含 README 与 custom_plugin.template)
/usr/share/man/man8/lynis.8.gz —— man 手册
/usr/share/doc/lynis/ —— 文档(README、FAQ、changelog)
⚠️ 注意:官方 deb 包不包含 pam/systemd 两个内置插件实体(
/usr/share/lynis/plugins/下只有 README 和模板),所以 deb 安装后跑全量审计显示Plugins enabled : 0;而 git 方式 clone 的目录自带这两个插件实体(plugins/下有 pam、systemd),审计显示Plugins enabled : 2。插件声明(profile 中的plugin=行两版相同,实测 diff 为空)与插件实体是两回事,想让 deb 安装获得插件,把插件文件放进/etc/lynis/plugins/或/usr/share/lynis/plugins/即可。
五、发行版仓库安装方案(B:Ubuntu universe)
不添加第三方源、直接用 Ubuntu 自带仓库安装,一条命令完成:
apt-get install -y lynis
装完验证:
lynis show version
该渠道实测候选版本为 3.0.7-1(见第三章版本对照),落后官方约一年。适用场景:内网无法访问 packages.cisofy.com 但有 Ubuntu 镜像源、或只做一次性评估。缺点:apt upgrade 不会带来最新测试项——Lynis 的核心价值在于测试库的持续更新(EOL 数据库、新发行版适配、新控制项),版本落后会明显降低审计价值,因此生产环境不建议长期停留在此方案。
六、离线安装方案(C:官方 tarball)
适合无法访问 apt 源的服务器:在内网下载一次 tarball,拷贝到目标机解压即用。
6.1 下载并校验
在能联网的机器上下载官方 tarball(实测来源 https://downloads.cisofy.com/lynis/lynis-3.1.7.tar.gz ):
curl -fsSL -o lynis-3.1.7.tar.gz https://downloads.cisofy.com/lynis/lynis-3.1.7.tar.gz
记录完整性指纹(实测本机下载结果,读者重下后请以自己实测值为准做同批次比对):
sha256sum lynis-3.1.7.tar.gz
实测输出:
b5314a07fd85fa3ffc7da57b508f0108ec3280d84e4af823f805d95cbbc2428c lynis-3.1.7.tar.gz
包大小实测 355590 字节(约 347 KB)。
6.2 解压并运行
tar xzf lynis-3.1.7.tar.gz
cd lynis
./lynis show version
实测输出:
3.1.7
tarball 无需安装、无依赖,解压即可执行全量审计:
./lynis audit system --quick
💡 说明:tarball 方式没有 man 页注册、没有
/etc/lynis配置目录约定(profile 就在解压目录的default.prf),升级 = 替换整个目录。若以 root 运行,官方建议先执行chown -R 0:0 lynis修正属主,否则 Lynis 会因"以 root 执行了非 root 属主的文件"给出警告(官方 README 明确说明)。
七、开发者方案(D:git 仓库)
跟踪开发版或参与二次开发时使用,同样是 clone 即用:
git clone https://github.com/CISOfy/lynis
cd lynis
./lynis show version
实测输出(2026-10-24 clone master 分支):
3.1.8
⚠️ 注意:master 分支是开发版(CHANGELOG 中 3.1.8 标注 not released yet),生产环境仍建议使用方案一的稳定版。git 方式的价值在于:自带 pam/systemd 插件实体、可用
git pull秒级跟进上游、profile 与测试可直接修改试验。
八、方案对比与选择建议
| 维度 | A:官方 apt 源 | B:Ubuntu universe | C:官方 tarball | D:git |
|---|---|---|---|---|
| 实测版本 | 3.1.7-100 | 3.0.7-1 | 3.1.7 | 3.1.8(开发版) |
| 是否需联网 | 需要(装+升级) | 需要(装+升级) | 下载时需要,安装可离线 | 需要 |
| 升级方式 | apt upgrade | apt upgrade | 重新下载替换目录 | git pull |
| man 手册/系统布局 | 有/标准 | 有/标准 | 无 | 无 |
| 内置插件实体 | 无(0 个启用) | 无 | 无 | pam+systemd(2 个) |
| 配置目录 | /etc/lynis/ | /etc/lynis/ | 解压目录内 | 仓库目录内 |
| 适用 | 生产服务器(首选) | 快速临时评估 | 离线内网 | 开发/测试 |
选择建议一句话:可联网生产机选 A;离线选 C;临时评估选 B;开发调试选 D。
九、装后配置与定时审计
9.1 首次运行验证
安装完成后先跑一次全量审计确认工具可用(只读操作,实测约 5-6 分钟):
lynis audit system --quick
实测(3.1.7-100 安装版)尾部摘要:
Lynis security scan details:
Scan mode:
Normal [▆] Forensics [ ] Integration [ ] Pentest [ ]
Details:
Hardening index : 62 [############ ]
Tests performed : 283
Plugins enabled : 0
Files:
- Test and debug information : /var/log/lynis.log
- Report data : /var/log/lynis-report.dat
9.2 配置文件位置
- 系统级 profile:
/etc/lynis/default.prf(deb 包安装的默认 profile,实测lynis show profiles输出/etc/lynis/default.prf) - 自定义覆盖:在同目录创建
custom.prf,只写需要覆盖的键(官方警告:不要直接改 default.prf,升级会被覆盖)
配置参数的完整逐项说明见《Lynis 配置参数详解》。
9.3 配置 cron 定期审计
Lynis 内置 --cronjob 参数专为无人值守设计(跳过所有交互等待)。添加每周日凌晨 3 点的定时审计:
crontab -e
追加一行:
0 3 * * 0 /usr/sbin/lynis audit system --cronjob > /var/log/lynis-cron.log 2>&1
💡 说明:官方同样提供 systemd timer 方式,在 git 仓库的
extras/systemd/下有现成的lynis.service与lynis.timer模板可参考(tarball 同样附带 extras 目录,实测存在)。
十、常见问题(FAQ)
Q1:apt-get update 报 GPG 签名错误(EXPKEYSIG / NO_PUBKEY 9DE922F1C2FDE6C4)?
这是 2025-10-22 官方密钥轮换前的旧配置遗留(旧 key 9DE922F1C2FDE6C4 已被 7A9A1D9D5B27C6D3 取代)。处理:删除旧 key 与旧配置,按第四章重新导入:
rm -f /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
curl -fsSL https://packages.cisofy.com/keys/cisofy-software-public.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
apt-get update
Q2:运行时提示 Warning: PID file exists, probably another Lynis process is running.?
说明存在上次异常退出(Ctrl+C、进程被杀)残留的 PID 文件。Lynis 启动时检查 ~/lynis.pid、./lynis.pid、/var/run/lynis.pid 三个位置(root 用户为 /var/run/lynis.pid)。处理:先确认确无 Lynis 进程在跑,再删除残留:
ps aux | grep -v grep | grep lynis || echo "no lynis process"
rm -f /var/run/lynis.pid ~/lynis.pid ./lynis.pid /tmp/lynis.*
(本机实测曾因一次中断的后台任务触发该警告,确认无进程并清理后警告消失。)
Q3:非 root 跑 lynis audit system 结果偏少?
正常现象。无 root 权限时 shadow 文件、audit 日志、部分系统目录不可读,Lynis 会自动降级并跳过相关测试,Hardening Index 也会偏低。生产审计一律 root 执行。
Q4:语言检测提示 Notice: no language file found for 'zh'?
实测在中文 locale(zh_CN.UTF-8)机器上出现:系统检测到语言 zh,但 Lynis 自带语言清单为 cn 而非 zh。在 profile 中显式指定可用语言即可消除:
echo "language=cn" >> /etc/lynis/custom.prf
⚠️ 注意:Lynis 中文翻译长期不完整,官方文档与多数社区实践默认使用英文输出(
language=en),建议审计报告语言保持英文以便对照官方控制页。
Q5:想固定只从官方源拿 Lynis(避免发行版旧版优先)?
创建 pin 文件提升官方源优先级(官方文档建议):
echo -e "Package: lynis\nPin: origin packages.cisofy.com\nPin-Priority: 600" > /etc/apt/preferences.d/lynis
十一、卸载与清理
卸载 apt 安装的包(含配置文件):
apt-get purge -y lynis
删除官方源与 key(彻底还原系统):
rm -f /etc/apt/sources.list.d/cisofy-lynis.list
rm -f /etc/apt/trusted.gpg.d/cisofy-software-public.gpg
rm -f /etc/apt/preferences.d/lynis
apt-get update
删除 git/tarball 方式的目录(直接删除解压/clone 的目录即可):
rm -rf /opt/lynis
清理运行产物(如不再需要历史审计数据):
rm -f /var/log/lynis.log /var/log/lynis-report.dat /var/log/lynis-cron.log
卸载后验证:
dpkg -l lynis 2>&1 | tail -1
实测输出:
dpkg-query: 没有找到与 lynis 相匹配的软件包
十二、参考链接
- 官方安装文档(各发行版):https://packages.cisofy.com/community/
- 官方软件仓库首页(含密钥变更公告):https://packages.cisofy.com/
- GitHub 仓库与 Releases:https://github.com/CISOfy/lynis
- 官方 Get Started 文档:https://cisofy.com/documentation/lynis/get-started/
- 本系列配套文档:《Lynis 介绍与选型指南》《Lynis 配置参数详解》《Lynis 常用 CLI 命令详解》