mcpField
S
secure-linux-web-hosting

secure-linux-web-hosting

github.com/xixu-me云与 DevOps79507.1k 次安装3 天前更新
代码仓库

关于 secure-linux-web-hosting

secure-linux-web-hosting 是一套将 Linux 云服务器配置为安全 Web 主机的运维流程技能。它指导用户依次处理访问、防火墙、Web 服务、托管和 HTTPS,并要求在提供具体命令前核实发行版相关信息。

主要功能

  1. 01识别 Linux 发行版和主机状态
  2. 02规划安全访问与防火墙开放
  3. 03配置 Nginx 静态站点或应用代理
  4. 04安全安排 HTTPS 签发与重定向
  5. 05验证配置并排查故障

适用场景

  1. 01将云服务器配置为静态站点主机
  2. 02通过 Nginx 反向代理托管应用
  3. 03加固 SSH 和防火墙访问
  4. 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.md
nginx-patterns.md
security-and-tls.md
workflow-map.md

详细介绍

概述

使用此技能,将云服务器变成可安全访问的 Web 主机,而不依赖过时的特定发行版知识或 Debian 10 时代的陈旧教程。

此技能保留了适合初学者的服务器指南中熟悉的教学流程,并将其转化为可重复使用的运维工作流:

  1. 信息收集与分流
  2. 前提条件
  3. 安全访问
  4. 防火墙与对外开放
  5. Web 服务器设置
  6. 静态站点或应用代理
  7. HTTPS
  8. 验证
  9. 可选的高级调优

在提供可执行命令前,先识别发行版系列,并根据用户所用的发行版和所选工具,查阅官方文档,确认当前的软件包名称、服务单元、配置路径和 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. 按顺序推进各阶段

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

  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。

评论

支持 Markdown