secure-linux-web-hosting

secure-linux-web-hosting

在設定、強化或檢視用於自架服務的雲端伺服器時使用,包括 DNS、SSH、防火牆、Nginx、靜態網站代管、應用程式反向代理、使用 Let's Encrypt 或 ACME 客戶端的 HTTPS、安全的 HTTP 到 HTTPS 重新導向,或可選的啟動後網路調校(如 BBR)。

65星標
6分支
更新於 2026/6/14
SKILL.md
readonlyread-only
name
secure-linux-web-hosting
description

在設定、強化或檢視用於自架服務的雲端伺服器時使用,包括 DNS、SSH、防火牆、Nginx、靜態網站代管、應用程式反向代理、使用 Let's Encrypt 或 ACME 客戶端的 HTTPS、安全的 HTTP 到 HTTPS 重新導向,或可選的啟動後網路調校(如 BBR)。

概述

使用此技能將雲端伺服器轉變為可安全存取的網頁主機,
而不依賴過時的發行版特定記憶或老舊的 Debian-10 時代
教學。

此技能保留了適合初學者的伺服器指南中常見的教學架構,
但將其轉變為可重複使用的操作流程:

  1. 接收與路由
  2. 前置需求
  3. 安全存取
  4. 防火牆與暴露
  5. 網頁伺服器設定
  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 或完整的容器編排器部署設計
  • 特定應用程式的建置或 CI/CD 問題,其中 Linux 代管並非實際問題
  • Windows 或 macOS 主機管理
  • 需要更廣泛 SRE 或平台設計處理的公開多租戶生產架構審查

工作流程

1. 接收並分類當前狀態

首先識別:

  • 發行版家族或映像檔名稱
  • 使用者是否擁有 root 存取權、管理員使用者,或僅有一個活躍的 SSH 連線
  • DNS 是否已指向該主機
  • 目標是靜態網站還是應用程式反向代理
  • 連接埠是否已暴露
  • HTTPS 是否已部分設定

如果發行版未知,請詢問使用者,或請使用者檢查 /etc/os-release
然後再提供具體的套件或服務指令。

2. 在提供可操作指令前驗證當前文件

使用隨附的參考檔案進行路由,然後在提供依賴於當前發行版行為的
指令之前,對照最新的官方文件驗證細節。

務必驗證:

  • 套件管理員指令和套件名稱
  • 防火牆工具和服務名稱
  • SSH 服務單元名稱和設定包含路徑
  • Nginx 套件和設定佈局
  • 所選 ACME 客戶端的當前說明

如果您無法驗證某個細節,請說明情況,並提供高層級指引,
而不是假設舊的 Debian 教學路徑是通用的。

3. 保持階段順序

除非使用者明確要求審查或修正現有設定,否則請按以下順序
進行各階段:

  1. 前置需求
  2. 安全存取
  3. 防火牆與暴露
  4. 網頁伺服器
  5. 選擇一個代管分支:靜態網站或應用程式代理
  6. HTTPS
  7. 驗證
  8. 可選的進階調校

不要將靜態網站分支和反向代理分支合併為一個預設答案。
選擇與使用者目標相符的分支。

4. 強制執行安全閘門

將這些視為硬性停止檢查:

  • 在第二個 SSH 連線中基於金鑰的登入正常運作之前,請勿建議變更 SSH 連接埠、停用密碼驗證或停用 root SSH 登入。
  • 在 DNS 解析到預期主機且 HTTP 網站或代理路徑正常運作之前,請勿建議簽發憑證。
  • 在 HTTPS 順利載入之前,請勿強制執行 HTTP 到 HTTPS 重新導向。
  • 在安全代管正常運作之前,請勿建議 BBR 或類似的調校。

務必區分:

  • 本機端操作:SSH、DNS 檢查、瀏覽器測試
  • 伺服器端操作:套件安裝、設定編輯、服務重新載入、防火牆規則

輸出期望

對於全新設定,請提供:

  • 當前狀態的簡要診斷
  • 當前階段及其為何是下一步的原因
  • 本機端步驟與伺服器端步驟分開列出
  • 僅在文件驗證後提供具體指令或設定片段
  • 每次有風險的變更後提供驗證步驟
  • 針對該階段常見錯誤的簡短「如果失敗,請檢查 X」分支

對於強化或故障排除審查,請提供:

  • 最可能的風險或故障點優先
  • 優先的修正順序
  • 在下一次設定變更前的第一個安全驗證步驟

常見錯誤

  • 將舊文章中的 Debian 特定指令視為 Linux 通用
  • 在唯一活躍連線中強化 SSH 導致使用者被鎖定
  • 直接開放應用程式連接埠,而不是將應用程式保留在 loopback 上
  • 在同一個設定中混用靜態檔案代管指引和反向代理指引
  • 在 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
強化順序、防火牆策略、憑證簽發、續約和重新導向時機。