איך לאבטח SSH ב-VPS של לינוקס

מאת צוות ההנדסה של ONIE · עודכן ב-12 בנובמבר 2026 · 2 דק׳ קריאה

שרת VPS ציבורי מקבל ניסיונות התחברות אוטומטיים תוך דקות מרגע העלייה לאוויר. הצעדים הבאים מקשים מאוד על תקיפת SSH. הם נכתבו עבור Ubuntu או Debian; אם עדיין לא יצרתם שרת, אפשר לשכור שרת VPS עם לינוקס ולהתחיל מתמונה נקייה. השאירו את חיבור ה-SSH הנוכחי פתוח עד שבדקתם את ההגדרות החדשות מחלון שני.

1. יצירת משתמש רגיל עם sudo

adduser deploy
usermod -aG sudo deploy

2. שימוש במפתחות SSH במקום סיסמאות

במחשב שלכם:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

התחברו פעם אחת עם המפתח כדי לוודא שהוא עובד, ורק אחר כך כבו את הכניסה עם סיסמה.

3. ביטול כניסה עם סיסמה ומשתמש root

צרו את הקובץ /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

בדקו את התחביר וטענו מחדש את השירות. השירות נקרא ssh ב-Ubuntu וב-Debian, ו-sshd במערכות מבוססות RHEL:

sudo sshd -t && sudo systemctl reload ssh

פתחו טרמינל שני והתחברו שוב. רק לאחר מכן סגרו את החיבור הישן.

4. הפעלת חומת אש

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

פתחו רק את היציאות שאתם צריכים, למשל 80 ו-443 עבור שרת אינטרנט. אפשר גם להגביל את SSH לכתובת ה-IP שלכם באמצעות כלל חומת אש בלוח הבקרה של הענן.

5. חסימת כשלונות חוזרים עם Fail2ban

sudo apt install -y fail2ban

צרו את הקובץ /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. התקנת עדכוני אבטחה אוטומטית

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. תוספות אופציונליות

  • שינוי יציאת SSH מקטין את רעש הלוגים, אך אינו אמצעי אבטחה בפני עצמו.
  • הגנו על המפתח הפרטי בסיסמת מפתח (passphrase) ושמרו העתק במקום בטוח.
  • בדקו התחברויות עם last ועם sudo journalctl -u ssh --since today.
  • צרו snapshot לאחר שהשרת הוגדר, כדי שתוכלו לחזור לבסיס נקי.

אם ננעלתם מחוץ לשרת, השתמשו בקונסולת הדפדפן בלוח הבקרה של הענן כדי להתחבר ולתקן את ההגדרות. המדריך להגנה מפני DDoS שלנו מכסה את שכבת ההגנה הבאה.

שאלות נפוצות

האם בטוח לבטל את כניסת root?

כן, בתנאי שיצרתם קודם משתמש sudo ובדקתם שהמפתח שלו עובד. עדיין אפשר להריץ פקודות ניהול באמצעות sudo.

האם אני צריך את Fail2ban אם אני משתמש במפתחות בלבד?

זה אופציונלי. כאשר כניסה עם סיסמה מבוטלת, התקפת brute force לא יכולה להצליח, אך Fail2ban מפחית את רעש הלוגים ואת העומס.

מה לעשות אם איבדתי את מפתח ה-SSH?

השתמשו בקונסולה בלוח הבקרה של הענן כדי להתחבר, הוסיפו מפתח ציבורי חדש ל-~/.ssh/authorized_keys והסירו את הישן.

מקורות ולקריאה נוספת

מדריכי VPS נוספים