如何使用 lynis 扫描 Linux 漏洞如何使用 lynis 扫描 Linux 漏洞如何使用 lynis 扫描 Linux 漏洞如何使用 lynis 扫描 Linux 漏洞
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何使用 lynis 扫描 Linux 漏洞

作为一名系统管理员、Linux 安全技术人员或系统审核员,您的职责可能涉及这些的任意组合:软件补丁管理、恶意软件扫描、文件完整性检查、安全审计、配置错误检查等。如果有一个自动漏洞扫描工具,它可以为您节省大量检查常见安全问题的时间。

Linux 上的此类漏洞扫描程序之一是 lynis。该工具是开源的(GPLv3),并且实际上支持多种平台,包括 Linux、FreeBSD 和 Mac OS。

在 Linux 上安装 lynis


wget https://downloads.cisofy.com/lynis/lynis-3.0.8.tar.gz
sudo tar xvfvz lynis-3.0.8.tar.gz -C /opt

使用 lynis 扫描 Linux 漏洞

要使用 lynis 扫描 Linux 系统中的任何漏洞,请运行以下命令。


$ cd /opt/lynis
$ sudo ./lynis --check-all -Q

一旦lynis开始扫描您的系统,它将在多个类别中执行审核:

  • 系统工具:系统二进制文件

  • 启动和服务:启动加载程序、启动服务

  • 内核:运行级别、加载的模块、内核配置、核心转储

  • 内存和进程:僵尸进程、IO等待进程

  • 用户、组和身份验证:组 ID、sudoers、PAM 配置、密码时效、默认掩码

  • 贝壳

  • 文件系统:挂载点、/tmp 文件、根文件系统

  • 存储: USB 存储、火线 ohci

  • NFS

  • 软件:名称服务: DNS 搜索域、BIND

  • 端口和软件包:易受攻击/可升级的软件包、安全存储库

  • 网络:名称服务器、混杂接口、连接

  • 打印机和线轴:杯子配置

  • 软件:电子邮件和消息传递

  • 软件:防火墙 iptables、pf

  • 软件:网络服务器: Apache、nginx

  • SSH 支持: SSH 配置

  • SNMP支持

  • 数据库: MySQL root 密码

  • LDAP 服务

  • 软件:php: php 选项

  • 鱿鱼支持

  • 日志记录和文件: syslog 守护进程、日志目录

  • 不安全的服务: inetd

  • 横幅和标识

  • 计划任务: crontab/cronjob、atd

  • 会计: sysstat 数据、auditd

  • 时间和同步: ntp 守护进程

  • 加密: SSL 证书过期

  • 虚拟化

  • 安全框架:AppArmor、SELinux、grsecurity 状态

  • 软件:文件完整性

  • 软件:恶意软件扫描程序

  • 主目录: shell 历史文件

lynis 的运行截图如下所示:

扫描完成后,系统的审核报告将生成并存储在 /var/log/lynis.log 中。

审核报告包含该工具检测到的潜在漏洞的警告。例如:


$ sudo grep Warning /var/log/lynis.log

[20:20:04] Warning: Root can directly login via SSH [test:SSH-7412] [impact:M]
[20:20:04] Warning: PHP option expose_php is possibly turned on, which can reveal useful information for attackers. [test:PHP-2372] [impact:M]
[20:20:06] Warning: No running NTP daemon or available client found [test:TIME-3104] [impact:M]

审计报告还包含许多可以帮助强化 Linux 系统的建议。例如:


$ sudo grep Suggestion /var/log/lynis.log

[20:19:41] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [test:AUTH-9262]
[20:19:41] Suggestion: When possible set expire dates for all password protected accounts [test:AUTH-9282]
[20:19:41] Suggestion: Configure password aging limits to enforce password changing on a regular base [test:AUTH-9286]
[20:19:41] Suggestion: Default umask in /etc/profile could be more strict like 027 [test:AUTH-9328]
[20:19:42] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [test:AUTH-9328]
[20:19:42] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [test:AUTH-9328]
[20:19:42] Suggestion: To decrease the impact of a full /tmp file system, place /tmp on a separated partition [test:FILE-6310]
[20:19:42] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [test:STRG-1840]
[20:19:42] Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [test:STRG-1846]
[20:20:03] Suggestion: Install package apt-show-versions for patch management purposes [test:PKGS-7394]
. . . .

将扫描系统漏洞作为每日 Cron 作业

为了充分利用 lynis,建议定期运行它,例如作为每日 cron 作业。当使用 --cronjob 选项运行时,lynis 以自动、非交互式扫描模式运行。

以下是每日 cron 作业脚本,它以自动模式运行 lynis 来审核您的系统,并存档每日扫描报告。


$ sudo vi /etc/cron.daily/scan.sh

#!/bin/sh

AUDITOR="automated"
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 /opt/lynis
./lynis -c --auditor "${AUDITOR}" --cronjob > ${REPORT}

mv /var/log/lynis-report.dat ${DATA}

$ sudo chmod 755 /etc/cron.daily/scan.sh
©2015-2025 艾丽卡 support@alaica.com