关于 secure-linux-web-hosting
secure-linux-web-hosting 是一套将 Linux 云服务器配置为安全 Web 主机的运维流程技能。它指导用户依次处理访问、防火墙、Web 服务、托管和 HTTPS,并要求在提供具体命令前核实发行版相关信息。
主要功能
- 01识别 Linux 发行版和主机状态
- 02规划安全访问与防火墙开放
- 03配置 Nginx 静态站点或应用代理
- 04安全安排 HTTPS 签发与重定向
- 05验证配置并排查故障
适用场景
- 01将云服务器配置为静态站点主机
- 02通过 Nginx 反向代理托管应用
- 03加固 SSH 和防火墙访问
- 04排查 HTTPS 或证书续期问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ xixu-me/ skills --skill secure-linux-web-hosting安装后在 Claude Code 中输入/secure-linux-web-hosting确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/distro-routing.mdnginx-patterns.mdsecurity-and-tls.mdworkflow-map.md详细介绍
概述
使用此技能,将云服务器变成可安全访问的 Web 主机,而不依赖过时的特定发行版知识或 Debian 10 时代的陈旧教程。
此技能保留了适合初学者的服务器指南中熟悉的教学流程,并将其转化为可重复使用的运维工作流:
- 信息收集与分流
- 前提条件
- 安全访问
- 防火墙与对外开放
- Web 服务器设置
- 静态站点或应用代理
- HTTPS
- 验证
- 可选的高级调优
在提供可执行命令前,先识别发行版系列,并根据用户所用的发行版和所选工具,查阅官方文档,确认当前的软件包名称、服务单元、配置路径和 ACME 客户端指南。
首先打开 references/workflow-map.md 查看各阶段的顺序,然后打开所需的具体参考文件。
适用场景
用户提到以下任一内容时,使用此技能:
- 希望用于托管服务的云服务器、VM、droplet 或其他 Linux 主机
- 将域名或 DNS A/AAAA 记录指向服务器
- SSH 登录、SSH 加固、root 登录、密钥、端口或防火墙设置
- 为网站安装或配置 Nginx
- 在 Linux 上托管简单的静态站点
- 将小型应用置于 Nginx 反向代理之后
- HTTPS、Let's Encrypt、Certbot、
acme.sh、证书续期,或将 HTTP 重定向到 HTTPS - 可选的设置后性能或网络调优,例如 BBR
以下场景不要使用此技能:
- Kubernetes、PaaS 或完整的容器编排器部署设计
- 与 Linux 托管并非实际问题的应用专属构建或 CI/CD 问题
- Windows 或 macOS 主机管理
- 需要更全面的 SRE 或平台设计方案的公开多租户生产架构审查
工作流
1. 收集信息并判断当前状态
首先确认:
- 发行版系列或镜像名称
- 用户是否拥有 root 权限、管理员用户,还是只有一个正在使用的 SSH 会话
- DNS 是否已指向该主机
- 目标是静态站点还是应用反向代理
- 端口是否已对外开放
- HTTPS 是否已部分配置
如果发行版未知,请先询问,或让用户检查 /etc/os-release,再提供具体的软件包或服务命令。
2. 提供可执行命令前核实最新文档
使用随附的参考文件进行分流,然后在提供依赖当前发行版行为的命令前,对照最新的官方文档核实详细信息。
务必核实:
- 包管理器命令和软件包名称
- 防火墙工具和服务名称
- SSH 服务单元名称和配置包含路径
- Nginx 软件包和配置布局
- 所选 ACME 客户端的当前说明
如果无法核实某项信息,请明确说明,并提供高层指导,而不要假装旧版 Debian 教程中的方法适用于所有情况。
3. 按顺序推进各阶段
除非用户明确要求审查或修复现有设置,否则按以下顺序推进各阶段:
- 前提条件
- 安全访问
- 防火墙与对外开放
- Web 服务器
- 选择一种托管方案:静态站点或应用代理
- HTTPS
- 验证
- 可选的高级调优
不要把静态站点方案和反向代理方案合并成一个默认答案。应根据用户的目标选择相应方案。
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。