Bastion Host: גישה מאובטחת ל-SSH לשרתים פרטיים

מפתחים זקוקים לעיתים קרובות לגישת SSH לשרתים ברשתות משנה פרטיות, מה שיוצר סיכוני אבטחה. אנו מקימים host מסוג Bastion – נקודת כניסה יחידה עם חיזוק קפדני ותיעוד מושבים. הצוות שלנו מספק את הפרויקט במפתח מלא, ומבטיח גישה אמינה ומבוקרת.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

Bastion Host: נקודת הכניסה היחידה לתשתית הפרטית שלך

דמיין שיש לך 50 שרתים בתת-רשתות פרטיות, ללא כתובת IP ציבורית. כדי להתחבר, מפתחים היו מעתיקים מפתחות לכל שרת? או פותחים SSH על כל המופעים? שתי האפשרויות הן חורי אבטחה. על פי הסטטיסטיקה, רוב התקריות נובעות מניהול גישה לא תקין. נתקלנו בזה פעמים רבות ואנחנו יודעים איך לתקן.

Bastion Host הוא נקודת הכניסה המבוקרת היחידה לכל התשתית הפרטית שלך. במקום 50 פורטים פתוחים, אתה מקבל מארח קפיצה אחד עם הקשחה קפדנית. הגישה היא דרך SSH ProxyJump, ללא העתקת מפתחות ל-bastion. ההפעלות מוקלטות, כל חיבור מתועד. אנחנו מקימים פתרונות כאלה במפתח מלא — מ-bastion פשוט ועד אינטגרציה עם Teleport או AWS SSM. נבחן את הפרויקט שלך תוך יום אחד.

כיצד Bastion Host מפחית סיכון אבטחתי?

כל ביקורת אבטחה (PCI DSS, SOC 2) דורשת בידוד גישה לייצור. Bastion ממזער את שטח התקיפה: אתה פותח פורט אחד על ה-bastion, ורק מרשימת IPs מותרים. שליטה מלאה בהפעלה — מי, מתי, מה הם עשו. ללא bastion, זה בלתי אפשרי. על פי NIST SP 800-207, תצורה מינימלית צריכה לכלול bastion לגישה למערכות קריטיות. חיסכון ברישיונות בעת שימוש ב-bastion במקום VPN יכול להגיע ל-70%. העלות של תקריב אבטחה בודד יכולה להיות גבוהה פי כמה.

ארכיטקטורה: איך אנחנו בונים Bastion ב-AWS

תכנית טיפוסית מהמהנדסים שלנו: bastion בתת-רשת ציבורית עם Elastic IP, כל מופעי EC2 בתת-רשתות פרטיות. קבוצת האבטחה של ה-bastion מקבלת SSH רק מכתובות IP של המשרד (לדוגמה, 203.0.113.0/24). קבוצת האבטחה של השרתים הפנימיים מאפשרת SSH רק מה-bastion. אין 0.0.0.0/0. דוגמת Terraform:

resource "aws_security_group" "bastion" {
  name = "bastion-sg"
  vpc_id = var.vpc_id

  ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    cidr_blocks = var.allowed_cidr_blocks # ["203.0.113.0/24"]
  }

  egress {
    from_port = 0
    to_port = 0
    protocol = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

resource "aws_security_group" "internal" {
  name = "internal-servers-sg"
  vpc_id = var.vpc_id

  ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    security_groups = [aws_security_group.bastion.id]
  }
}

מה אם אין לך כתובות IP ציבוריות?

אם התשתית שלך מבודדת לחלוטין, השתמש ב-AWS SSM או Azure Bastion. שירותים אלה אינם דורשים IP ציבורי — הגישה היא דרך API עם אימות IAM. אבל לעבודה אינטראקטיבית, bastion מהיר יותר: זמן השהיה של SSM גבוה ב-200–500 אלפיות השנייה. אנחנו לעתים קרובות משלבים: bastion ל-SSH, SSM לאוטומציה.

דוגמה מעשית: Bastion עבור Kubernetes

בפרויקט אחד, הקמנו bastion לגישה ל-API של Kubernetes. היה לנו אשכול EKS פרטי ב-VPC ללא גישה ציבורית. מהנדסי DevOps היו צריכים להריץ kubectl ו-helm. הפתרון: bastion עם kubectl ו-helm מותקנים, ו-kubeconfig מוגדר דרך AWS IAM Authenticator. הגישה הייתה דרך ProxyJump עם MFA. זה בידד לחלוטין את שרת ה-API תוך מתן ממשק נוח למפתחים. כל התהליך מתועד ב-runbook שאנחנו מספקים ללקוח.

איך להקים Bastion ב-5 שלבים

  1. בחר הפצה — Ubuntu LTS, חבילות מינימליות, רק SSH.
  2. החל קבוצת אבטחה — אפשר SSH רק מכתובות ה-IP שלך (משרד/VPN), דחה כל דבר אחר.
  3. הגדר SSH ProxyJump במחשבי הלקוח (ראה תצורה למטה).
  4. הפעל MFA דרך Google Authenticator או Duo.
  5. הפעל הקלטת הפעלה — tlog, auditd, או SSM.

דוגמת ~/.ssh/config לגישה שקופה:

Host bastion
    HostName 203.0.113.10
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Host *.internal
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519
    ProxyJump bastion

לאחר מכן, resource "aws_security_group" "bastion" { name = "bastion-sg" vpc_id = var.vpc_id ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = var.allowed_cidr_blocks # ["203.0.113.0/24"] } egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } resource "aws_security_group" "internal" { name = "internal-servers-sg" vpc_id = var.vpc_id ingress { from_port = 22 to_port = 22 protocol = "tcp" security_groups = [aws_security_group.bastion.id] } } מתחבר אוטומטית דרך ה-bastion. עבור scp: Host bastion HostName 203.0.113.10 User ubuntu IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 60 Host *.internal User ubuntu IdentityFile ~/.ssh/id_ed25519 ProxyJump bastion .

Bastion לעומת AWS SSM: מה לבחור?

קריטריון Bastion Host AWS SSM Session Manager
IP ציבורי נדרש לא נדרש
מפתחות SSH כן לא (IAM)
הקלטת הפעלה דרך tlog/script מובנה (S3 + CloudTrail)
מהירות גבוהה בינונית (זמן השהיה)
מורכבות הגדרה נמוכה בינונית (IAM + Agent)

SSM טוב לתרחישים פשוטים, אבל לעבודה אינטראקטיבית תכופה, bastion מהיר יותר ומוכר יותר. אנחנו לעתים קרובות משלבים: bastion ל-SSH, SSM לאוטומציה. בנוסף, bastion מפחית את עלות תקריות האבטחה כאשר הוא מוגדר כראוי.

אילו אמצעי אבטחה הם חובה על Bastion?

הקשחה בסיסית על ה-bastion:

sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
echo "AllowUsers bastion-user" >> /etc/ssh/sshd_config
echo "Port 2222" >> /etc/ssh/sshd_config
systemctl reload sshd

fail2ban לחסימת ניסיונות פריצה:

[sshd] enabled = true maxretry = 3 bantime = 3600 findtime = 600 

MFA דרך libpam-google-authenticator הוא חובה לייצור. לצוותים של 10 ומעלה, שלב עם Duo או Okta דרך RADIUS. זה מספק אימות דו-שלבי בנוסף למפתחות SSH.

רשימת בדיקה להקמת Bastion Host:

  • הפצה מינימלית (Ubuntu LTS, Debian, Alpine)
  • SSH על פורט לא סטנדרטי
  • מפתחות בלבד + MFA
  • fail2ban עם maxretry=3
  • קבוצת אבטחה עם רשימת IPs מותרים
  • הקלטת הפעלה (tlog, auditd)
  • עדכונים שוטפים

תהליך: מביקורת ועד פריסה

  1. ביקורת תשתית נוכחית — ניתוח VPC, קבוצות אבטחה, שיטות גישה קיימות.
  2. עיצוב ארכיטקטורה — תכנית עם bastion, ניתוב, יתירות.
  3. פריסה דרך Terraform — יצירת bastion host, קבוצות אבטחה, NAT אם נדרש.
  4. הגדרת SSH ו-MFA — הקשחה, ProxyJump, אינטגרציה עם IdP ארגוני.
  5. בדיקה ותיעוד — אימות חיבורים, כתיבת הוראות לצוות.
  6. הדרכה ותמיכה — הסבר על התהליך, מתן runbook.

לוח זמנים ועלות

הקמת bastion בסיסית עם הקשחה אורכת בין 3 ל-5 שעות. אינטגרציה עם SSM או Teleport אורכת בין יום ל-2 ימי עבודה. העלות מחושבת באופן אישי לפי מורכבות התשתית ודרישות הביקורת. בממוצע, חיסכון ברישיונות וניהול מגיע עד 70% לאחר היישום.

מה כלול בהקמת Bastion במפתח מלא

  • עיצוב ארכיטקטורה (תכנית VPC, קבוצות אבטחה, NAT)
  • פריסת bastion דרך Terraform/CloudFormation
  • הגדרת SSH ProxyJump ותצורות צוות
  • MFA (TOTP או ארגוני)
  • מערכת ביקורת הפעלה (tlog, auditd, או Teleport)
  • תיעוד והדרכת צוות

אנחנו מבטיחים שאחרי ההקמה, תעבור כל ביקורת. למהנדסים שלנו יש 7+ שנות ניסיון ב-DevOps ויותר מ-50 פרויקטי אבטחת תשתית.

הזמן הקמת bastion — קבל ייעוץ והערכת פרויקט. צור קשר היום.