部署教程:vps-audit

1. 准备工作

在开始之前,请确保你的系统满足以下要求:

  • 操作系统:Ubuntu 或 Debian 系的 Linux 发行版。
  • 权限:拥有 root 权限或 sudo 权限,因为脚本需要检查系统级配置和资源。
  • 基础工具:系统需要预装 ufwsystemdnetstat/ssgrepawk 等标准工具,这些在大多数 Linux 系统中都已默认安装。

2. 安装步骤

由于这是一个单文件脚本,安装过程非常简单。

  1. 下载脚本
    使用 wgetcurl 将脚本下载到你的服务器上。

    1
    2
    3
    4
    5
    # 使用 wget
    wget https://raw.githubusercontent.com/Nuver-Labs/vps-audit/main/vps-audit.sh

    # 或使用 curl
    curl -O https://raw.githubusercontent.com/Nuver-Labs/vps-audit/main/vps-audit.sh

    如果上述链接无法访问,可以尝试 vernu/vps-audit 的链接:
    https://raw.githubusercontent.com/vernu/vps-audit/main/vps-audit.sh

  2. 赋予执行权限
    下载后,需要让脚本具有可执行权限。

    1
    chmod +x vps-audit.sh

3. 使用方法

运行脚本非常简单,但必须使用 sudo 以确保有足够权限读取所有配置文件。

1
sudo ./vps-audit.sh

4. 输出与报告

脚本运行后会提供两种输出形式:

  1. 实时控制台输出:你可以实时看到每项检查的结果,并带有颜色编码,一目了然。

    • 🟢 [PASS]:该项检查通过。
    • 🟡 [WARN]:发现潜在问题,建议关注。
    • 🔴 [FAIL]:发现严重问题,需要立即处理。

    输出示例

    text

    1
    2
    3
    [PASS] SSH Root Login - Root login is properly disabled
    [WARN] SSH Port - Using default port 22
    [FAIL] Firewall Status - UFW is not active
  2. 详细报告文件:脚本会在当前目录生成一个带时间戳的详细报告文件,例如 vps-audit-report-[TIMESTAMP].txt。这个文件包含所有检查项的详细结果、具体建议和系统资源统计信息,适合归档和后续分析。

5. 定制化:调整检查阈值

脚本的检查标准(阈值)是预先设定的,但你可以根据自身需求进行修改。阈值变量定义在脚本开头的 Configuration 部分。

检查项 默认阈值逻辑 相关变量
资源使用率 (CPU/内存/硬盘) PASS: < 50%, WARN: 50-80%, FAIL: > 80% RESOURCE_WARN, RESOURCE_FAIL
失败登录尝试 PASS: < 10次, WARN: 10-50次, FAIL: > 50次 LOGINS_WARN, LOGINS_FAIL
运行服务数 PASS: < 20个, WARN: 20-40个, FAIL: > 40个 SERVICES_WARN, SERVICES_FAIL
开放端口数 PASS: < 10个, WARN: 10-20个, FAIL: > 20个 OPEN_PORTS_WARN

你可以用文本编辑器(如 vimnano)打开 vps-audit.sh 文件,找到这些变量并修改其默认值,然后保存即可。

6. 进阶使用:自动化定期审计

建议你将此脚本设置为定期任务(如每周一次),以便持续监控服务器安全状态。可以通过 cron 实现:

  1. 运行 crontab -e 编辑定时任务。

  2. 添加一行,例如每周一凌晨3点运行:

    1
    0 3 * * 1 /path/to/vps-audit.sh > /dev/null 2>&1

    这样可以将报告输出到文件,或者结合邮件服务将报告发送给管理员。

主要审计内容

vps-audit 会对你服务器的多个方面进行全面检查,主要包括:

  • 安全检查:SSH 配置(Root登录、密码认证、端口)、防火墙状态、Fail2ban配置、失败登录尝试、系统更新、Sudo日志、密码策略、SUID文件等。
  • 性能监控:磁盘、内存、CPU 的使用率,以及当前的网络连接。

注意事项与局限性

  • 系统兼容性:此脚本专为 Ubuntu/Debian 系设计,依赖于 ufwsystemd,在 CentOS/RHEL 等系统上无法直接使用。
  • 权限要求:必须使用 rootsudo 运行,否则部分检查会失败。
  • 定位:它是一款轻量级自动化检查工具,能快速发现常见配置问题,但无法替代专业、深度的安全审计。对于关键业务系统,仍建议进行人工深度评估。