返回全部 Skills

secure-linux-web-hosting

其他

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

113.8k

下载量

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)。

概述

使用本技能可将云服务器转变为一个可安全访问的 Web 主机,而无需依赖过时的特定发行版记忆或陈旧的 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 视为核心设置的一部分,而不是可选的后续步骤
  • 忽略 SELinux 或 AppArmor 的差异,导致 Nginx 在一个发行版上能读取文件而在另一个上不能

参考文件使用

使用 references/workflow-map.md 获取阶段图、分支逻辑和验证顺序。

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

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

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