返回全部 Skills

secure-linux-web-hosting

其他

用于搭建、加固或审查用于自托管的云服务器,包括 DNS、SSH、防火墙、Nginx、静态站点托管、应用的反向代理、使用 Let's Encrypt 或 ACME 客户端的 HTTPS、安全的 HTTP 到 HTTPS 重定向,或可选的部署后网络调优(如 BBR)。

113.9k

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add xixu-me/skills --skill secure-linux-web-hosting

skill.md

name: secure-linux-web-hosting
description: 用于搭建、加固或审查用于自托管的云服务器,包括 DNS、SSH、防火墙、Nginx、静态站点托管、应用的反向代理、使用 Let's Encrypt 或 ACME 客户端的 HTTPS、安全的 HTTP 到 HTTPS 重定向,或可选的部署后网络调优(如 BBR)。

概述

运用本技能将云服务器转变为安全可达的网络主机,无需依赖过时发行版特定记忆或陈旧的 Debian-10 时代教程。

本技能保留了新手友好型服务器指南中熟悉的教学脉络,并将其转化为可复用的操作工作流:

  1. 信息接收与路由
  2. 前置条件
  3. 安全访问
  4. 防火墙与暴露
  5. Web 服务器设置
  6. 静态站点或应用代理
  7. HTTPS
  8. 验证
  9. 可选的高级调优

在给出可执行的命令之前,需确定发行版家族,并对照用户所用发行版及所选工具的官方文档,核实当前的软件包名称、服务单元、配置路径及 ACME 客户端指引。

首先打开 references/workflow-map.md 了解阶段顺序,然后打开你需要的具体参考文件。

使用时机

当用户提及以下任一内容时使用本技能:

  • 希望用于托管的云服务器、虚拟机、Droplet 或其他 Linux 主机
  • 将域名或 DNS A/AAAA 记录连接到服务器
  • SSH 登录、SSH 加固、root 登录、密钥、端口或防火墙设置
  • 安装或配置用于网站的 Nginx
  • 从 Linux 提供简单静态站点服务
  • 将小应用放在 Nginx 后作为反向代理
  • HTTPS、Let's Encrypt、Certbot、acme.sh、证书续期,或将 HTTP 重定向到 HTTPS
  • 可选的后置设置性能或网络调优,如 BBR

以下情况不使用本技能:

  • Kubernetes、PaaS 或完整容器编排器部署设计
  • 特定应用的构建或 CI/CD 问题,且 Linux 托管并非实际问题核心
  • Windows 或 macOS 主机管理
  • 需要更广泛 SRE 或平台设计处理的公共多租户生产架构评审

工作流

1. 信息接收并分类当前状态

首先确定:

  • 发行版家族或镜像名称
  • 用户是否拥有 root 权限、管理员用户,或仅有一个活跃 SSH 会话
  • DNS 是否已指向该主机
  • 目标是静态站点还是应用反向代理
  • 端口是否已暴露
  • HTTPS 是否已部分配置

如果发行版未知,请先询问,或让用户检查 /etc/os-release,然后再给出具体的软件包或服务命令。

2. 在给出可执行命令前验证当前文档

使用附带的参考资料进行路由,然后在给出依赖当前发行版行为的命令前,对照最新的官方文档验证细节。

务必验证:

  • 包管理器命令及软件包名称
  • 防火墙工具及服务名称
  • SSH 服务单元名称及配置包含路径
  • Nginx 软件包及配置布局
  • 所选 ACME 客户端的当前说明

如果无法验证某个细节,请说明情况,并给出高层指导,而不是假装旧的 Debian 教程路径是通用的。

3. 保持阶段顺序

除非用户明确要求审查或修复现有设置,否则按以下顺序逐步推进:

  1. 前置条件
  2. 安全访问
  3. 防火墙与暴露
  4. Web 服务器
  5. 选择一个托管分支:静态站点或应用代理
  6. HTTPS
  7. 验证
  8. 可选的高级调优

不要将静态站点分支和反向代理分支合并为一个默认答案。选择与用户目标匹配的分支。

4. 强制执行安全关卡

将这些视为硬性停止检查:

  • 在第二个 SSH 会话中基于密钥的登录正常工作之前,不要推荐更改 SSH 端口、禁用密码认证或禁用 root SSH 登录。
  • 在 DNS 解析到目标主机且 HTTP 站点或代理路径按预期工作之前,不要推荐证书颁发。
  • 在 HTTPS 干净加载之前,不要强制实施 HTTP 到 HTTPS 的重定向。
  • 在安全托管功能正常之前,不要建议 BBR 或类似调优。

始终区分:

  • 本地机器操作:SSH、DNS 检查、浏览器测试
  • 服务器操作:软件包安装、配置编辑、服务重载、防火墙规则

输出期望

对于全新设置,提供:

  • 当前状态的简要诊断
  • 当前阶段及为何下一步进行
  • 本地机器步骤与服务器步骤分开
  • 仅在文档验证后给出具体命令或配置片段
  • 每次风险变更后的验证步骤
  • 针对该阶段常见错误,提供简短的“如果失败,检查 X”分支

对于加固或故障排查审查,提供:

  • 首先指出最可能的风险或故障点
  • 按优先级排列的修复顺序
  • 在下一个配置变更之前的第一个安全验证步骤

常见错误

  • 将旧文章中的 Debian 特定命令视为 Linux 通用命令
  • 在唯一活跃会话中加固 SSH 导致用户被锁定
  • 直接开放应用端口,而不是将应用保持在回环地址上
  • 将静态文件托管指导与反向代理指导混在一个配置中
  • 在 DNS 或 HTTP 实际正确之前尝试 ACME 颁发
  • 在 HTTPS 验证通过之前强制重定向
  • 将 BBR 视为核心设置的一部分,而不是可选的后续步骤
  • 当 Nginx 在一个发行版上可以读取文件而在另一个发行版上不能时,忽略 SELinux 或 AppArmor 的差异

参考资料使用

对于阶段映射、分支逻辑和验证顺序,使用 references/workflow-map.md

当发行版家族、包管理器、防火墙工具或配置布局重要时,使用 references/distro-routing.md

当用户需要静态站点分支或反向代理分支时,使用 references/nginx-patterns.md

对于 SSH 加固顺序、防火墙策略、证书颁发、续期和重定向时机,使用 references/security-and-tls.md