lynis 扫描需用 sudo lynis audit system --enable-tests "kernel,boot" 启用内核与引导检查,修复 kernel.kptr_restrict、vm.swappiness 及 grub 安全参数,并按测试 id 加固账户、/tmp 挂载和 sudo 权限。

要用 Lynis 扫描 Linux 系统安全基线并真正修复内核参数与权限类漏洞,不能只跑默认命令——关键在启用正确检测模块、用对权限、读懂建议项含义,并落实到配置文件。下面分三步说清楚。
一、执行带内核和引导检查的完整扫描
Lynis 默认跳过 /proc/sys/ 和启动参数读取,导致 kernel 相关项大量显示 NOT SCORED 或 WARNING,不是没发现,是没启用检查。必须显式激活:
- 运行
sudo lynis audit system --enable-tests "kernel,boot"—— 这是核心命令,确保内核 sysctl 和 GRUB 启动行都被解析 - 旧版本(≤3.0.5)加
--no-network避免卡在时间服务器检测上 - 务必用
sudo执行,否则无法读取/proc/sys/下的运行时参数(如kernel.kptr_restrict) - 日常巡检可用
--quick缩短耗时,但首次基线评估必须用完整模式
二、定位并修复典型内核安全参数
扫描报告中带 [SUGGESTION] 的内核项,往往对应 CIS、PCI DSS 等合规要求。常见需修复项及操作如下:
-
kernel.kptr_restrict = 2:防止非 root 用户读取内核地址。手动确认当前值:sysctl kernel.kptr_restrict;若非 2,写入/etc/sysctl.d/99-security.conf:kernel.kptr_restrict = 2,再执行sudo sysctl --system -
vm.swappiness = 1:降低交换倾向,减少敏感数据落盘风险。同样追加到99-security.conf并重载 -
GRUB 启动参数缺失安全选项:Lynis 若报 Kernel command line does not contain security parameter,说明
/boot/grub/grub.cfg中 linux 行缺少kaslr mitigations=on slab_nomerge panic=10。不要直接改 grub.cfg,而是编辑/etc/default/grub,在GRUB_CMDLINE_LINUX末尾追加上述参数,再运行sudo update-grub(Debian/Ubuntu)或sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS)
三、处理权限类高危配置漏洞
权限问题常体现在用户账户、关键目录挂载、日志文件等位置,Lynis 会明确标出测试 ID(如 ACCT-9628、FILE-6310),按编号查官方文档最准。高频修复项包括:
-
禁用空密码账户:Lynis 提示 Password field in /etc/shadow is empty,用
sudo awk -F: '$2 == "" {print $1}' /etc/shadow查出账户,再用sudo passwd -l username锁定或直接删除 -
加固
/tmp挂载选项:应含noexec,nosuid,nodev。检查mount | grep /tmp,若不满足,在/etc/fstab对应行添加选项,再执行sudo mount -o remount /tmp -
限制 sudo 权限滥用:Lynis 可能提示
sudoers file has insecure permissions。确认/etc/sudoers权限为440,且无NOPASSWD泛化规则;用sudo visudo审查并收紧授权范围
修复后务必重启相关服务(如 sshd)或整机(尤其涉及内核参数和 GRUB 修改),再重新运行 sudo lynis audit system --enable-tests "kernel,boot" 验证是否从 WARNING/SUGGESTION 变为 OK。不复杂但容易忽略:每次修复只改一项,验证一项,避免配置冲突引发服务异常。











