secure-linux-web-hosting

secure-linux-web-hosting

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

65Star
6Fork
更新于 2026/6/14
SKILL.md
readonly只读
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

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