גישת SSH לשרתים ישירות מהאינטרנט היא נוהג נפוץ שהופך כל מארח למטרה. עבור צוות של 20 מהנדסים המנהלים 50 שרתים, מדובר ב-50 פורטים פתוחים — משטח תקיפה עצום. מארח bastion (שרת קפיצה) מצמצם זאת לכתובת IP ציבורית אחת. אנו מקימים צומת כזה עם רשימת IP מותרת, MFA חובה, ורישום מלא של כל הפגישות. התוצאה: גישה שקופה למפתחים ואבטחה ברמה ארגונית.
למה מארח bastion ולא VPN או SSH ישיר?
SSH ישיר לכל שרת מכפיל את משטח התקיפה: כל מארח הוא מטרה נפרדת. עבור 50 שרתים, מדובר ב-50 כתובות IP להגנה. VPN (OpenVPN, WireGuard) מספק כניסה יחידה אך מוסיף מורכבות בניהול תעודות ולקוחות. Bastion הוא נקודת האיזון: כתובת IP ציבורית אחת, מינימום רכיבים נעים, מקסימום שקיפות למפתחים. ProxyJump בקובץ ~/.ssh/config הופך את העבודה עם ה-bastion לחלקה.
איך ProxyJump עובד?
הדרך המודרנית לעבוד עם bastion היא ProxyJump ב-~/.ssh/config. ללא העברת סוכן (פגיעה), ללא העתקת מפתחות ל-bastion:
# ~/.ssh/config
Host bastion.corp.example.com
User ec2-user
IdentityFile ~/.ssh/corp-key.pem
ServerAliveInterval 30
Host 10.0.*.*
ProxyJump bastion.corp.example.com
User ubuntu
IdentityFile ~/.ssh/corp-key.pem
Host prod-db-01
Hostname 10.0.2.50
ProxyJump bastion.corp.example.com
User ubuntu
לאחר מכן, # ~/.ssh/config Host bastion.corp.example.com User ec2-user IdentityFile ~/.ssh/corp-key.pem ServerAliveInterval 30 Host 10.0.*.* ProxyJump bastion.corp.example.com User ubuntu IdentityFile ~/.ssh/corp-key.pem Host prod-db-01 Hostname 10.0.2.50 ProxyJump bastion.corp.example.com User ubuntu מתחבר בצורה שקופה דרך ה-bastion. המפתח של המשתמש לעולם לא עוזב את המכונה שלו — סוכן ה-SSH מעביר רק את החתימה הספציפית, לא את המפתח עצמו.
אילו הגדרות מאבטחות את ה-bastion?
ה-bastion הוא מטרה. יש לנעול אותו. הגדרות sshd_config מומלצות:
| פרמטר | ערך | מטרה |
|---|---|---|
ssh prod-db-01 |
22 (או לא סטנדרטי) | חשאיות — פורט לא סטנדרטי מפחית רעש בוטים |
Port |
לא | מניעת גישת root ישירה |
PermitRootLogin |
לא | מפתחות בלבד |
PasswordAuthentication |
כן | חובה |
PubkeyAuthentication |
ssh-users | הגבלת קבוצה |
AllowGroups |
VERBOSE | רישום מפורט |
LogLevel |
3 | הגבלת ניסיונות התחברות |
MaxAuthTries |
300 | בדיקת פעילות |
ClientAliveInterval |
2 | ניתוק פגישות בטלות |
חומת אש: SSH נכנס רק מטווחי IP של משרד או VPN. ב-AWS, מדובר ב-Security Group המאפשר פורט 22 רק מכתובות IP ארגוניות. יציאה — רק לרשתות הפנימיות של הייצור.
# AWS Security Group через awscli
aws ec2 authorize-security-group-ingress \
--group-id sg-bastion-id \
--protocol tcp --port 22 \
--cidr 203.0.113.0/24 # корпоративный IP
# Запрет всего остального входящего
aws ec2 revoke-security-group-ingress \
--group-id sg-bastion-id \
--protocol tcp --port 22 \
--cidr 0.0.0.0/0
איך מוסיפים MFA על ה-bastion?
MFA דרך מודול PAM google-authenticator:
apt install libpam-google-authenticator
# /etc/pam.d/sshd — добавить в начало
auth required pam_google_authenticator.so nullok
# /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactiveהמשתמש עובר שני גורמים: מפתח ציבורי + TOTP. ClientAliveCountMax מאפשר למשתמשים ללא TOTP מוגדר להתחבר זמנית — מוסר לאחר פריסה מלאה.
השוואת שיטות גישת SSH
| שיטה | אבטחה | מורכבות | נוחות משתמש | ביקורת |
|---|---|---|---|---|
| SSH ישיר לכל שרת | נמוכה (נקודות כניסה רבות) | נמוכה | גבוהה | לא |
| OpenVPN + SSH | גבוהה (הצפנת מנהרה) | בינונית | בינונית (נדרש לקוח VPN) | לא |
| העברת סוכן | בינונית (מפתח על ה-bastion) | נמוכה | גבוהה | לא |
| Bastion + ProxyJump | גבוהה (מפתח לעולם לא עוזב את הלקוח) | נמוכה | גבוהה (שקוף) | כן (יומני sshd) |
מה כלול בעבודת הקמת ה-bastion
- ניתוח תוכנית הגישה הנוכחית ועיצוב ארכיטקטורה עבור התשתית שלך (AWS/GCP/Yandex Cloud).
- הגדרת sshd_config מחוזקת עם המלצות CIS.
- שילוב MFA (Google Authenticator, Duo Security).
- רישום מרכזי (Loki, ELK) עם מדיניות שמירה.
- תבניות Ansible/Terraform לפריסה אוטומטית.
- תיעוד (runbook, דיאגרמת גישה).
- הדרכת צוות (איך להוסיף משתמשים חדשים, איך לעבוד עם ProxyJump).
טעויות נפוצות בהקמת bastion
- שימוש בהעברת סוכן במקום ProxyJump — המפתח מגיע ל-bastion. - סיסמה חלשה או גישת סיסמה לא סגורה. - חוסר רישום — אי אפשר לחקור אירועים. - התעלמות מ-MFA למנהלים.לוחות זמנים ושלבי יישום
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח ועיצוב | יום אחד | דיאגרמת גישה, בחירת טווח IP |
| פריסת bastion (AWS/GCP) | יום אחד | Bastion פעיל עם רשימת IP מותרת ו-sshd מחוזק |
| הגדרת MFA ו-ProxyJump | 1–2 ימים | משתמשים מתחברים עם אימות דו-שלבי |
| רישום מרכזי | יום אחד | יומני פגישות נשלחים למערכת מרכזית |
| אוטומציה (Ansible/Terraform) | 1–2 ימים | פריסה ניתנת לחזרה |
Bastion בסיסי ב-AWS/GCP עם רשימת IP מותרת, sshd מחוזק ותצורות ProxyJump לצוות מוקם ביום אחד. עם MFA, רישום מרכזי ואוטומציית ansible — 2–3 ימים.
למה לפנות אלינו?
הקמנו מארחי bastion ל-20+ לקוחות — מסטארטאפים ועד פרויקטי מסחר אלקטרוני גדולים. אנו משתמשים רק בתבניות מוכחות: ProxyJump במקום העברת סוכן, Google Authenticator PAM ל-MFA, RSYSLOG לאיסוף יומנים מרכזי. אנו מבטיחים שמפתחות המשתמשים לעולם לא יופיעו על ה-bastion וכל הפגישות מתועדות. קבל ייעוץ לפרויקט שלך — נבחן את תוכנית הגישה הנוכחית שלך ונציע פתרון מותאם.







