אבטחת VPS חדש: מדריך ל-10 הדקות הראשונות
שרת עם IP ציבורי הוא מטרה מיידית לסורקים. למד איך ליצור משתמש sudo, להגדיר SSH keys ולחסום את המשתמש root כדי להגן על ה-VPS שלך מרגע ההפעלה.
10 הדקות הראשונות קובעות כמה השרת שלך יהיה בטוח
VPS חדש לחלוטין אינו בטוח. מרגע שיש לו כתובת IP ציבורית, סורקים מנסים להתחבר, ותמונת ברירת המחדל מספקת להם מטרה קלה: המשתמש root לעיתים קרובות נגיש, סיסמאות לעיתים קרובות מותרות, אין חומת אש, ואין עדכונים מתוזמנים. החדשות הטובות הן שסגירת כל הפרברים הללו לוקחת כעשר דקות ומספר פקודות. זהו ה-runbook שאני מריץ על כל שרת חדש לפני שאני מתקין עליו דבר מה.
בצע את השלבים לפי הסדר, מכיוון שכל שלב נשען על הקודם. לכל שלב יש מדריך משלו, המקושר לאורך התהליך; עמוד זה הוא המסלול המהיר המחבר את כולם יחד.
דקה 1: עדכן הכל
התחבר כ-root עם פרטי ההתחברות שספק השרת סיפק לך, ועדכן את המערכת במלואה לפני כל פעולה אחרת:
apt update && apt upgrade -yמערכת לא מעודכנת היא המטרה הקלה ביותר, לכן זהו השלב הראשון. לאחר שהתהליך מסתיים, הגדר עדכוני אבטחה אוטומטיים כדי שהמערכת תישאר מעודכנת ללא צורך בתזכורת מצדך.
דקה 2: צור משתמש רגיל עם sudo
אל תמשיך לעבוד כ-root. צור משתמש עבור עצמך ותן לו הרשאות sudo:
adduser matt
usermod -aG sudo mattמכאן תתחבר כמשתמש זה ותשתמש ב-sudo למשימות ניהול. עבודה מתמדת כ-root פירושה שכל טעות וכל פריצה יתבצעו עם הרשאות בלתי מוגבלות, וזה בדיוק מה ש-עבודה כמשתמש ללא הרשאות מנהל נועד למנוע.
דקה 4: הגדר מפתחות SSH
סיסמאות ניתן לנחש; מפתחות לא. במחשב האישי שלך, אם אין לך עדיין מפתח, צור אחד:
ssh-keygen -t ed25519לאחר מכן העתק את החלק הציבורי לשרת:
ssh-copy-id matt@YOUR_SERVERssh-copy-id דורש ש-password login יהיה פעיל עבור המשתמש החדש; אם הוא כבר כבוי, העתק את ה-~/.ssh/authorized_keys של root אל ה-/home/matt/.ssh/authorized_keys (השייך ל-matt), או הדבק את המפתח הציבורי שלך לקובץ זה באופן ידני.
המודל שעומד מאחורי שלב זה — מפתח אחד לכל מכשיר, ההרשאות שמשתקות התחברות באמצעות מפתח, וביטול מפתח שאבד — מפורט ב-יסודות ניהול מפתחות SSH.
התנתק והתחבר מחדש כ-matt באמצעות המפתח, וודא שזה עובד לפני שתעבור לשלב הבא. נעילת SSH לפני שניתן להתחבר באמצעות מפתח היא הסיבה שמשתמשים נועלים את עצמם מחוץ לשרת.
דקה 6: בטל התחברות root וסיסמאות
כעת כשהמפתח שלך עובד, סגור את שני הפתחים שהסורקים מסתמכים עליהם. השתמש בקובץ drop-in כדי שעדכוני חבילות לא ידרסו אותו. קרא לו 00- כדי שיסודר לפני 50-cloud-init.conf, שמגיע עם תמונות Ubuntu cloud עם PasswordAuthentication yes; שירות sshd שומר את הערך הראשון שהוא קורא, לכן קובץ שמופיע מאוחר יותר בסדר האלפביתי פשוט יתעלם מהשינויים:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noלאחר מכן טען מחדש את SSH:
sudo systemctl restart sshלאחר מכן בדוק את ההגדרות ש-sshd באמת משתמש בהן, כדי שקובץ drop-in שנדרס לא יטעה אותך:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'עם סיסמאות כבויות והתחברות root מבוטלת, תעבורת ה-brute-force המתמדת נגד השרת שלך פשוט לא תוכל להצליח. הטיפול המלא, כולל שינוי פורט אופציונלי, נמצא ב-SSH hardening on a VPS.
דקה 8: הפעל את חומת האש
הגדר חסימה מוחלטת (default-deny) לכל התעבורה הנכנסת, ולאחר מכן אשר רק את מה שאתה צריך. אשר את SSH לפני שתפעיל את חומת האש, אחרת תנתק את החיבור של עצמך:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableהוסף כללי allow עבור כל שירות שאתה מריץ בפועל, כגון 80/tcp ו-443/tcp עבור אתר אינטרנט. וודא שגם IPv4 וגם IPv6 מכוסים, מכיוון שחומת אש שמסננת רק IPv4 משאירה את צד ה-IPv6 פתוח לחלוטין. המדריך המלא הוא Firewalls 101 on a VPS.
דקה 10: האט את הסורקים באמצעות Fail2ban
לבסוף, הוסף את Fail2ban כדי להדיר את הכתובות שמפצחות על הפורטים שלך:
sudo apt install -y fail2banב-Ubuntu 24.04, ההתקנה הסטנדרטית מגנה על SSH כבר מההפעלה הראשונה. מכיוון שכבר נדרשים מפתחות, זהו מנגנון גיבוי שמפחית את רעשי הלוגים וחוסם תוקפים חוזרים, ולא הגנה עיקרית.
רשימת הבדיקה שלך
זהו ה-runbook. השתמש במחולל למטה כדי לסמן כל בקרת אבטחה ולהפיק רשימת בדיקה אישית שתוכל לשמור עם השרת, כולל הפקודה המדויקת לכל שלב:
בצע זאת פעם אחת בכל שרת חדש והתהליך כולו יהפוך לזיכרון שרירי. עשר דקות עכשיו יחסכו לך אחר צהריים גרוע מאוד שבא בעקבות פריצה לשרת.
ברגע שהיסודות מוגדרים, עדכוני אבטחה אוטומטיים ב-Ubuntu ישאירו את השרת מעודכן ללא צורך בכניסה מחדש.
FAQ
מה עלי לעשות קודם ב-VPS חדש?
עדכן את המערכת באמצעות apt update && apt upgrade -y, לאחר מכן צור משתמש רגיל עם sudo והפסק לעבוד כ-root. משם, הגדר מפתחות SSH, בטל התחברות root ואימות באמצעות סיסמה, הפעל חומת אש במצב default-deny, והתקן את Fail2ban. ביצועם לפי הסדר הזה מבטיח שכל שלב יהיה בטוח לביצוע מבלי שתנעל את עצמך מחוץ לשרת.
איך אני נמנע מנעילה עצמית בזמן hardening ל-SSH?
הגדר ובדוק את ההתחברות באמצעות מפתח SSH לפני שתבטל סיסמאות או root. התנתק והתחבר מחדש עם המפתח כדי לוודא שהוא עובד, ורק אז בטל את PasswordAuthentication ו-PermitRootLogin. כשאתה מפעיל את חומת האש, אשר את פורט 22 לפני הרצת ufw enable. אם ננעלת בטעות, קונסולת הווב של הספק תאפשר לך להיכנס חזרה ללא SSH.
האם אני באמת צריך את כל אלה בשרת קטן?
כן, מכיוון שהסורקים לא מתחשבים בגודל השרת שלך. הם מנסים כל כתובת IP ציבורית באותה צורה. ה-runbook כולו לוקח כעשר דקות ומסיר את הנתיבים הקלים: ללא התחברות root, ללא ניחוש סיסמאות, ללא שירותים חשופים שלא בחרת, ועם באגים ידועים שמתוקנים אוטומטית.
מהו השלב החשוב ביותר?
SSH באמצעות מפתח בלבד עם ביטול התחברות root. רוב ההתקפות על VPS חדש הן ניחושי סיסמאות אוטומטיים נגד root, וביטול שניהם הופך את קטגוריית התקיפה הזו לבלתי אפשרית. חומת האש ו-Fail2ban מגבירים את מה שנותר חשוף ומאטים כל דבר אחר.
איך אני מוודא שהשרת אכן נעול?
בדוק שלושה דברים באופן ידני לפני שאתה סומך עליו. הרץ את sudo ss -tlnp וודא שרק הפורטים שהתכוונת לפתוח מאזינים לכתובת ציבורית, ללא שירות 0.0.0.0 או [::] ששכחת. הרץ את sudo ufw status verbose וודא שמדיניות הכניסה الافتراضית היא deny ושגם הכללים הרגילים וגם הכללים של (v6) קיימים. ותמיד פתח סשן SSH שני לפני שאתה סוגר את הראשון, כדי שטעות בהגדרות ה-SSH לא תנעל אותך מחוץ לשרת. אם שלושתם נראים תקינים, היסודות מוגדרים.