סקיל Secure Hosting
secure-linux-web-hosting הוא סקיל לקלוד קוד שהופך שרת ענן לאתר מאובטח וזמין, בלי להישען על מדריכים מיושנים. הוא מוביל זרימת עבודה מסודרת מקצה לקצה: הגדרת DNS, גישת SSH מאובטחת, חומת אש וחשיפת פורטים, התקנת שרת ווב כמו Nginx, אירוח אתר סטטי או reverse-proxy לאפליקציה, HTTPS עם Let's Encrypt, אימות, וכוונון רשת מתקדם. הדגש הוא על אבטחה ועל אימות הפקודות מול התיעוד הרשמי של ההפצה, במקום זיכרון ישן. בפרויקטי הפיתוח שאני מוביל, שרת מוקשח נכון הוא הבסיס לאתר יציב ובטוח. במדריך תקבלו את כל שלבי ההקמה, ארבעה תרחישי שימוש, וצ'קליסט אבטחה.
פקודת התקנה
npx skills add xixu-me/skills@secure-linux-web-hosting -g -y
ההתקנה מתבצעת דרך מנהל החבילות הרשמי של הסקילים בפקודה אחת. הסקיל הוא קובץ Markdown פתוח מהמאגר של xixu-me. אפשר להוריד ולבדוק את הקוד דרך הכפתורים שבראש העמוד.
מה הסקיל כולל?
הסקיל מתעד זרימת אופרטור מלאה להקמת שרת ווב מאובטח: גישה בטוחה, חומת אש, שרת ווב, HTTPS, אימות וכוונון, עם אימות פקודות מול התיעוד הרשמי.
קוד הסקיל המלא
---
name: secure-linux-web-hosting
description: Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.
---
## Overview
Use this skill to turn a cloud server into a safely reachable web host
without leaning on stale distro-specific memory or outdated Debian-10-era
tutorials.
This skill keeps the familiar teaching arc of a beginner-friendly server guide,
but turns it into a reusable operator workflow:
1. Intake and routing
2. Prerequisites
3. Secure access
4. Firewall and exposure
5. Web server setup
6. Static site or app proxy
7. HTTPS
8. Validation
9. Optional advanced tuning
Before giving actionable commands, identify the distro family and verify the
current package names, service units, config paths, and ACME-client guidance
against official documentation for the user's distro and chosen tools.
Open [`references/workflow-map.md`](./references/workflow-map.md) first for the
phase sequence, then open the narrower reference file you need.
## When to Use
Use this skill when the user mentions any of the following:
- a cloud server, VM, droplet, or other Linux host they want to use for hosting
- connecting a domain or DNS A/AAAA record to a server
- SSH login, SSH hardening, root login, keys, ports, or firewall setup
- installing or configuring Nginx for a website
- serving a simple static site from Linux
- putting a small app behind Nginx as a reverse proxy
- HTTPS, Let's Encrypt, Certbot, `acme.sh`, certificate renewal, or redirecting
HTTP to HTTPS
- optional post-setup performance or network tuning such as BBR
Do not use this skill for:
- Kubernetes, PaaS, or full container-orchestrator deployment design
- application-specific build or CI/CD questions where Linux hosting is not the
actual problem
- Windows or macOS host administration
- public multi-tenant production architecture reviews that need a broader SRE
or platform-design treatment
## Workflow
### 1. Intake and classify the current state
Start by identifying:
- distro family or image name
- whether the user has root access, an admin user, or only one live SSH session
- whether DNS already points at the host
- whether the goal is a static site or an app reverse proxy
- whether ports are already exposed
- whether HTTPS is already partially configured
If the distro is unknown, ask for it or have the user inspect `/etc/os-release`
before giving concrete package or service commands.
### 2. Verify current docs before actionable commands
Use bundled references for routing, then verify details against live official
docs before giving commands that depend on current distro behavior.
Always verify:
- package manager commands and package names
- firewall tooling and service names
- SSH service unit names and config include paths
- Nginx package and config layout
- the chosen ACME client's current instructions
If you cannot verify a detail, say so and give high-level guidance instead of
pretending the old Debian tutorial path is universal.
### 3. Keep the phases in order
Walk through the phases in this order unless the user is explicitly asking for
review or remediation of an existing setup:
1. prerequisites
2. secure access
3. firewall and exposure
4. web server
5. choose one hosting branch: static site or app proxy
6. HTTPS
7. validation
8. optional advanced tuning
Do not collapse the static-site branch and reverse-proxy branch into one
default answer. Pick the branch that matches the user's goal.
### 4. Enforce the safety gates
Treat these as hard stop checks:
- Do not recommend changing SSH port, disabling password auth, or disabling
root SSH login until key-based login works in a second SSH session.
- Do not recommend certificate issuance until DNS resolves to the intended host
and the HTTP site or proxy path works as expected.
- Do not force an HTTP-to-HTTPS redirect until HTTPS loads cleanly.
- Do not suggest BBR or similar tuning until secure hosting is already working.
Always distinguish:
- local-machine actions: SSH, DNS checks, browser tests
- server actions: package install, config edits, service reloads, firewall rules
## Output Expectations
For a fresh setup, provide:
- a brief diagnosis of the current state
- the current phase and why it comes next
- local-machine steps separate from server steps
- concrete commands or config snippets only after doc verification
- a verification step after each risky change
- a short "if this fails, check X" branch for the likely mistake at that phase
For a hardening or troubleshooting review, provide:
- the most likely risk or breakage first
- a prioritized remediation sequence
- the first safe verification step before the next config change
## Common Mistakes
- treating Debian-specific commands from an old article as Linux-universal
- hardening SSH in the only active session and locking the user out
- opening application ports directly instead of keeping the app on loopback
- mixing static-file hosting guidance and reverse-proxy guidance in one config
- attempting ACME issuance before DNS or HTTP is actually correct
- forcing redirects before HTTPS is proven
- treating BBR as part of the core setup instead of an optional later step
- ignoring SELinux or AppArmor differences when Nginx can read files on one
distro but not another
## Reference Usage
Use [`references/workflow-map.md`](./references/workflow-map.md) for the phase map,
branching logic, and validation order.
Use [`references/distro-routing.md`](./references/distro-routing.md) when distro
family, package manager, firewall tooling, or config layout matters.
Use [`references/nginx-patterns.md`](./references/nginx-patterns.md) when the user
needs the static-site branch or the reverse-proxy branch.
Use [`references/security-and-tls.md`](./references/security-and-tls.md) for SSH
hardening sequence, firewall posture, certificate issuance, renewal, and
redirect timing.
מה זה secure-linux-web-hosting ולמה הסקיל הזה שונה?
secure-linux-web-hosting פותר בעיה מוכרת בהקמת שרתים: מדריכים מיושנים. הרבה הוראות אונליין נכתבו לגרסאות ישנות, עם שמות חבילות ונתיבי קונפיג שכבר לא נכונים, ומי שעוקב אחריהן בעיניים עצומות מקבל שרת שבור או לא מאובטח. הסקיל מחליף את הזיכרון הישן בתהליך מסודר שמאמת כל פקודה מול המקור הרשמי.
מה שמייחד אותו הוא הגישה האופרטורית המאובטחת. הסקיל לא נותן רשימת פקודות גנרית, אלא קודם מזהה את משפחת ההפצה ומאמת את שמות החבילות, יחידות השירות ונתיבי הקונפיג מול התיעוד הרשמי. אחר כך הוא מוביל שלב-שלב: גישת SSH מאובטחת, חומת אש, Nginx, אירוח או reverse-proxy, ו-HTTPS עם Let's Encrypt. הדגש לאורך כל הדרך הוא על אבטחה ועל חשיפה מינימלית, לא רק על "שהאתר יעלה".
ההבדל מורגש באמינות ובבטיחות. במקום שרת שעובד אבל פרוץ, מקבלים שרת מוקשח שעבר אימות. בשילוב עם סקיל codebase-design וזרימות פיתוח אחרות, אפשר לבנות גם אפליקציה איכותית וגם להריץ אותה על תשתית בטוחה.
מה secure-linux-web-hosting נותן לקלוד קוד?
הסקיל מוסיף לקלוד ידע של אופרטור שרתים מנוסה: להקים אתר מאובטח, מאומת מול התיעוד הרשמי, עם דגש על חשיפה מינימלית.
אימות מול תיעוד רשמי
הסקיל לא מסתמך על זיכרון ישן. לפני שהוא נותן פקודה, הוא מזהה את ההפצה ומאמת את שמות החבילות, השירותים והנתיבים מול התיעוד הרשמי. כך נמנעים מהוראות מיושנות שמובילות לשרת שבור.
זרימת הקמה מסודרת
הסקיל מוביל את כל שלבי ההקמה בסדר הנכון: DNS, גישת SSH, חומת אש, שרת ווב, אירוח או proxy, ו-HTTPS. כל שלב בנוי על הקודם, כך שהתהליך ברור ואין דילוגים שמשאירים פרצות.
דגש על אבטחה וחשיפה מינימלית
המטרה היא לא רק שהאתר יעלה, אלא שהוא יהיה בטוח. הסקיל מקשיח גישת SSH, מגדיר חומת אש שחושפת רק את הנדרש, ומחיל HTTPS. כך השרת מוגן מההתחלה ולא הופך למטרה קלה.
כוונון וכוונון מתקדם
אחרי שהאתר באוויר, הסקיל מציע אימות מלא וגם כוונון רשת מתקדם אופציונלי כמו BBR לשיפור ביצועים. כך מקבלים לא רק שרת בטוח, אלא גם מהיר ומכוון, מוכן לעומס אמיתי.
ארבע היכולות הופכות את קלוד לאופרטור שרתים אמין. בעבודות שלי, הקמת שרת מאומתת ומוקשחת חסכה תקלות אבטחה ופתרון בעיות שנובעות ממדריכים מיושנים.
למי הסקיל הזה מתאים?
מפתחים שמארחים פרויקטים בעצמם: זה הקהל המובהק. הסקיל נותן דרך בטוחה להקים שרת בלי להיות מומחה DevOps. השילוב עם סקיל resolving-merge-conflicts ועם זרימות פיתוח מבטיח גם קוד נקי וגם תשתית בטוחה.
יזמים שמשיקים מוצר: מי שמשיק אתר או אפליקציה צריך תשתית אמינה. הסקיל מאפשר להקים שרת מאובטח במהירות, בלי תלות במומחה חיצוני יקר.
פרילנסרים וסוכנויות: אירוח אתרי לקוחות דורש אבטחה ועקביות. הסקיל מספק תהליך הקמה אחיד ובטוח לכל פרויקט, מה שמשדר מקצועיות.
מפתחים שלומדים DevOps: הסקיל הוא דרך מצוינת ללמוד הקמת שרת נכון, כי הוא מסביר כל שלב ומאמת אותו. גם בעבודות אוטומציה שלי, הרצה על תשתית מאובטחת היא חלק ממערכת אמינה.
מתחזקי שרתים קיימים: גם לשרת שכבר רץ, הסקיל שימושי לסקירת אבטחה ולהקשחה, ולוודא שהכול מעודכן ומוגן.
מי שפחות יתאים: מי שמשתמש בפלטפורמת אירוח מנוהלת לחלוטין, שבה אין גישה לשרת, לא צריך את הסקיל. הוא מבריק דווקא כשמקימים ומתחזקים שרת בעצמכם.
איך secure-linux-web-hosting עזר לי בפרויקטים אמיתיים
הקמת שרת בלי מדריכים מיושנים
בעבר, הקמת שרת לפי מדריך אונליין נכשלה בגלל שמות חבילות ישנים. הסקיל זיהה את ההפצה ואימת כל פקודה מול התיעוד הרשמי. השרת עלה חלק בפעם הראשונה, בלי שעות של פתרון בעיות שנובעות מהוראות לא מעודכנות.
הקשחת SSH וחומת אש
שרת שהוקם בחיפזון היה חשוף מדי. הסקיל הקשיח את גישת ה-SSH והגדיר חומת אש שחושפת רק את הפורטים הנדרשים. השרת עבר ממטרה קלה למוגן, וזה הוריד משמעותית את הסיכון לפריצה.
HTTPS אוטומטי עם Let's Encrypt
אתר רץ על HTTP בלבד, מה שפגע באמון ובאבטחה. הסקיל התקין תעודת HTTPS עם Let's Encrypt והגדיר הפניה בטוחה מ-HTTP. האתר קיבל מנעול ירוק, והתעבורה הוצפנה, בלי תהליך ידני מסובך.
reverse-proxy לאפליקציה
אפליקציה שרצה על פורט פנימי הייתה צריכה להיחשף בבטחה. הסקיל הגדיר Nginx כ-reverse-proxy עם HTTPS, כך שהאפליקציה הפכה זמינה בכתובת נקייה ומאובטחת, בלי לחשוף את הפורט הפנימי לעולם.
ארבעת המקרים מראים שהסקיל הופך הקמת שרת ממשימה מפחידה ומבלבלת לתהליך בטוח ומאומת. כשכל פקודה מאומתת והאבטחה מובנית, מקבלים תשתית אמינה שאפשר לסמוך עליה.
סיכום
סקיל secure-linux-web-hosting הוא כלי מצוין לכל מי שמארח אתרים על שרת משלו. הוא הופך שרת ענן לאתר מאובטח וזמין דרך תהליך מסודר ומאומת, מ-DNS ועד HTTPS, עם דגש על אבטחה וחשיפה מינימלית במקום מדריכים מיושנים.
אם אתם מתחילים, בקשו מקלוד להקים שרת עם הסקיל, ותנו לו לאמת כל פקודה מול התיעוד הרשמי. תקבלו שרת בטוח שעלה חלק בפעם הראשונה. משם, האתר שלכם רץ על תשתית מוקשחת.
בפוסטים הבאים אמשיך לסקור סקילים שמשדרגים פיתוח, אבטחה ותשתית. האתר של דביר נעמן מרכז את כל הכלים, השיטות והליווי שאני מציע לעסקים שרוצים לעבוד חכם ובטוח עם בינה מלאכותית.
שיתוף הסקיל
שאלות ותשובות
מה זה בעצם הסקיל secure-linux-web-hosting?
זה סקיל לקלוד קוד שהופך שרת ענן לאתר מאובטח וזמין. הוא מוביל זרימת עבודה מלאה: DNS, גישת SSH מאובטחת, חומת אש, Nginx, אירוח או reverse-proxy, ו-HTTPS עם Let's Encrypt. הדגש הוא על אבטחה ועל אימות הפקודות מול התיעוד הרשמי, במקום מדריכים מיושנים.
למה לא פשוט לעקוב אחרי מדריך אונליין?
כי הרבה מדריכים נכתבו לגרסאות ישנות, עם שמות חבילות ונתיבים שכבר לא נכונים. מי שעוקב אחריהם בעיניים עצומות מקבל שרת שבור או לא מאובטח. הסקיל מאמת כל פקודה מול התיעוד הרשמי של ההפצה הספציפית שלכם, כך שההוראות תמיד עדכניות ונכונות.
איך מתקינים את הסקיל בקלוד קוד?
בפקודה אחת דרך מנהל החבילות הרשמי של הסקילים, כפי שמופיע בקופסת ההתקנה למעלה. הסקיל הוא קובץ Markdown פתוח מהמאגר של xixu-me. אחרי ההתקנה בקשו מקלוד להקים או להקשיח שרת, והוא ינחה את התהליך שלב אחר שלב.
האם הסקיל בטוח לשימוש?
מאוד, ומטרתו דווקא להגביר אבטחה. הוא מקשיח את השרת, מגדיר חומת אש לחשיפה מינימלית, ומחיל HTTPS. הוא מאמת פקודות מול התיעוד הרשמי לפני הרצה, אין בו מפתחות API ואין טלמטריה. למעשה, הוא נועד להפוך שרת לבטוח יותר, לא להפך.
מה זה reverse-proxy ולמה צריך אותו?
reverse-proxy הוא שרת ווב, כמו Nginx, שמקבל את התעבורה מהעולם ומעביר אותה לאפליקציה שרצה על פורט פנימי. כך אפשר לחשוף אפליקציה בכתובת נקייה ומאובטחת עם HTTPS, בלי לחשוף את הפורט הפנימי שלה ישירות. הסקיל מגדיר אותו בצורה בטוחה.
האם הסקיל מתאים לכל הפצת לינוקס?
כן. במקום להניח הפצה אחת, הסקיל קודם מזהה את משפחת ההפצה ומאמת את שמות החבילות, השירותים והנתיבים מול התיעוד הרשמי שלה. כך אותו תהליך עובד על הפצות שונות, עם הפקודות הנכונות לכל אחת, בלי לבלבל ביניהן.
האם אני צריך להיות מומחה DevOps כדי להשתמש בו?
לא. הסקיל מנחה כל שלב ומסביר אותו, כך שגם מי שאינו מומחה תשתיות יכול להקים שרת מאובטח. הוא מתאים גם כדרך ללמוד הקמת שרת נכון, כי הוא מאמת ומסביר במקום לזרוק פקודות. כמובן, תמיד כדאי להבין מה רץ על השרת שלכם.
האם הסקיל שימושי גם לשרת שכבר קיים?
בהחלט. מעבר להקמה, הסקיל שימושי לסקירת אבטחה ולהקשחה של שרת קיים: לוודא שגישת ה-SSH מוגנת, שחומת האש מוגדרת נכון, ושה-HTTPS תקין. זו דרך טובה לוודא ששרת שרץ כבר זמן עדיין עומד בסטנדרט אבטחה עדכני.