VPN ארגוני על StrongSwan IKEv2: גישה מרחוק ללא לקוחות

כאשר עובדים אינם יכולים להתחבר לרשת הארגונית בשל היעדר לקוח VPN במכשירים, העבודה נעצרת. אנו מגדירים את StrongSwan IKEv2, פתרון המשתמש במנגנונים מובנים של Windows, macOS, iOS ו-Android, כך שאין צורך בתוכנה נוספת. הצוות שלנו מספק את הפרויקט במפתח מלא: מהפקת אישורים ועד אינטגרציה עם LDAP ותמיכה שוטפת, ומבטיח גישה מרחוק אמינה ללא פספוס מועדים.

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

שאלות נפוצות

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

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

נתקלנו פעמים רבות במצבים שבהם משתמשים ארגוניים לא יכלו להתחבר ל-VPN בגלל היעדר תוכנת לקוח במחשבים הניידים שלהם. פעם אחת נאלצנו להגדיר גישה מרחוק לחברה עם 300 עובדים, שבה כל משתמש שלישי עבד על macOS. IKEv2 פותר בעיה זו: לקוחות מקוריים ב-Windows, macOS, iOS ו-Android תומכים בו כברירת מחדל — ללא צורך בתוכנה נוספת. אנו מגדירים את StrongSwan, מימוש בוגר של IKEv2 עבור Linux, עם תמיכה מלאה באימות EAP ושילוב עם LDAP ארגוני. להלן נסקור את התצורה, בעיות טיפוסיות ותהליך היישום, שנמשך מיום אחד.

למה StrongSwan (IKEv2) עדיף על OpenVPN ו-WireGuard?

קריטריון StrongSwan (IKEv2) OpenVPN WireGuard
לקוחות מקוריים Windows, macOS, iOS, Android רק צד שלישי מובנה ב-Linux, iOS/Android דרך אפליקציה
ביצועים גבוהים (האצת AES בחומרה) בינוניים גבוהים מאוד
אימות EAP-MSCHAPv2, תעודות, RADIUS, LDAP תעודות, שם משתמש/סיסמה מפתח משותף
מורכבות הגדרה בינונית (דורש PKI) גבוהה (OpenSSL) נמוכה

לגישה מרחוק ארגונית עם מאות משתמשים, StrongSwan נוח יותר: אין צורך בהתקנת לקוח, וניתן לרכז אימות דרך RADIUS ו-LDAP. זה מפחית עומס על צוות התמיכה — משתמשים מתחברים בעצמם ללא מעורבות מנהל.

הגדרת StrongSwan שלב אחר שלב: 4 שלבים

שלב 1. התקנה ויצירת תעודות

התקינו את StrongSwan וכלי PKI, ולאחר מכן צרו CA פרטי ותעודת שרת. ה-CN של תעודת השרת חייב להתאים ל-FQDN הציבורי או ל-IP של השרת.

apt install strongswan strongswan-pki libcharon-extra-plugins
# CA
pki --gen --type rsa --size 4096 --outform pem > /etc/ipsec.d/private/ca.key
pki --self --ca --lifetime 3650 --in /etc/ipsec.d/private/ca.key \
    --dn "CN=VPN CA, O=Example Corp" \
    --outform pem > /etc/ipsec.d/cacerts/ca.crt
# Сертификат сервера (с флагами serverAuth и ikeIntermediate)
pki --gen --type rsa --size 2048 --outform pem > /etc/ipsec.d/private/server.key
pki --pub --in /etc/ipsec.d/private/server.key | \
    pki --issue --lifetime 730 \
    --cacert /etc/ipsec.d/cacerts/ca.crt \
    --cakey /etc/ipsec.d/private/ca.key \
    --dn "CN=vpn.example.com" \
    --san vpn.example.com \
    --flag serverAuth \
    --flag ikeIntermediate \
    --outform pem > /etc/ipsec.d/certs/server.crt

שלב 2. תצורה באמצעות swanctl

מאז StrongSwan 5.7+, השתמשו ב-apt install strongswan strongswan-pki libcharon-extra-plugins # CA pki --gen --type rsa --size 4096 --outform pem > /etc/ipsec.d/private/ca.key pki --self --ca --lifetime 3650 --in /etc/ipsec.d/private/ca.key \ --dn "CN=VPN CA, O=Example Corp" \ --outform pem > /etc/ipsec.d/cacerts/ca.crt # Сертификат сервера (с флагами serverAuth и ikeIntermediate) pki --gen --type rsa --size 2048 --outform pem > /etc/ipsec.d/private/server.key pki --pub --in /etc/ipsec.d/private/server.key | \ pki --issue --lifetime 730 \ --cacert /etc/ipsec.d/cacerts/ca.crt \ --cakey /etc/ipsec.d/private/ca.key \ --dn "CN=vpn.example.com" \ --san vpn.example.com \ --flag serverAuth \ --flag ikeIntermediate \ --outform pem > /etc/ipsec.d/certs/server.crt . דוגמה עם EAP-MSCHAPv2 ומאגר כתובות ל-250 לקוחות:

# /etc/swanctl/swanctl.conf
authorities {
  vpn-ca {
    cacert = ca.crt
  }
}
connections {
  ikev2-eap {
    version = 2
    proposals = aes256gcm16-sha256-ecp256,aes256-sha256-modp2048
    local_addrs = %any
    remote_addrs = %any
    local {
      auth = pubkey;
      certs = server.crt;
      id = vpn.example.com
    }
    remote {
      auth = eap-mschapv2;
      eap_id = %any
    }
    children {
      ikev2-eap {
        local_ts = 0.0.0.0/0
        remote_ts = dynamic
        dpd_action = clear
        esp_proposals = aes256gcm16-sha256,aes256-sha256
      }
    }
    pools = vpn-pool
    dpd_delay = 30s
    send_cert = always
  }
}
pools {
  vpn-pool {
    addrs = 10.20.0.0/24;
    dns = 10.0.0.1, 8.8.8.8
  }
}
secrets {
  eap-user1 {
    id = user1;
    secret = "UserPassword123"
  }
  eap-user2 {
    id = user2;
    secret = "AnotherPassword"
  }
}

טעינת תצורה ללא הפעלה מחדש: swanctl.conf.

שלב 3. חומת אש והעברת IP

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A FORWARD -s 10.20.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.20.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o ens3 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

אל תשכחו לשמור את הכללים: # /etc/swanctl/swanctl.conf authorities { vpn-ca { cacert = ca.crt } } connections { ikev2-eap { version = 2 proposals = aes256gcm16-sha256-ecp256,aes256-sha256-modp2048 local_addrs = %any remote_addrs = %any local { auth = pubkey; certs = server.crt; id = vpn.example.com } remote { auth = eap-mschapv2; eap_id = %any } children { ikev2-eap { local_ts = 0.0.0.0/0 remote_ts = dynamic dpd_action = clear esp_proposals = aes256gcm16-sha256,aes256-sha256 } } pools = vpn-pool dpd_delay = 30s send_cert = always } } pools { vpn-pool { addrs = 10.20.0.0/24; dns = 10.0.0.1, 8.8.8.8 } } secrets { eap-user1 { id = user1; secret = "UserPassword123" } eap-user2 { id = user2; secret = "AnotherPassword" } } . StrongSwan מטפל ב-NAT-T כראוי, וזה חשוב ללקוחות מאחורי NAT.

שלב 4. אימות דרך LDAP/RADIUS

לתשתיות גדולות (500+ משתמשים), חברו את FreeRADIUS עם backend של LDAP:

# /etc/strongswan.d/charon/eap-radius.conf
eap-radius {
  servers {
    primary {
      address = 10.0.0.5;
      secret = radius_shared_secret
    }
  }
}

בחיבור, שנו את swanctl --load-all. כל המשתמשים מאמתים דרך ספרייה מרכזית — AD או OpenLDAP.

איך לשלב את StrongSwan עם Active Directory?

השילוב עם Active Directory נעשה דרך פרוקסי RADIUS, כפי שמוצג בשלב 4. FreeRADIUS שואל את LDAP (AD) ומחזיר את התוצאה ל-StrongSwan. בנוסף, ניתן להגדיר הנפקת תעודות אוטומטית דרך Microsoft NDES או CA משלכם עם מדיניות קבוצתית. זה מאפשר למשתמשים להתחבר ללא הזנת סיסמה — רק באמצעות תעודה שהונפקה על ידי ה-CA הארגוני.

איך להגדיר לקוחות מקוריים?

Windows 10/11: הגדרות → VPN → הוספת חיבור VPN → IKEv2. סוג התחברות: שם משתמש וסיסמה. לפני כן, ייבאו את ca.crt לחנות 'רשויות אישורים מהימנות' (certmgr.msc).

macOS/iOS: הגדרות → VPN → IKEv2. התקינו את תעודת ה-CA דרך פרופיל (Apple Configurator או ידנית).

Android: IKEv2 מקורי (Android 11+) או אפליקציית StrongSwan.

אילו שגיאות טיפוסיות מתרחשות בהגדרת IKEv2?

הנפוצה ביותר היא ש-Windows לא מתחבר. יומני ניהול משא ומתן מפורטים עוזרים למצוא במהירות את הגורם:

swanctl --log journalctl -u strongswan -f 

כמעט תמיד הסיבה: בתעודת השרת חסר iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT iptables -A INPUT -p esp -j ACCEPT iptables -A FORWARD -s 10.20.0.0/24 -j ACCEPT iptables -A FORWARD -d 10.20.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o ens3 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 ב-Extended Key Usage, או שה-CA השורשי אינו מהימן בלקוח. בדקו את השרשרת וייבאו מחדש את ca.crt. השנייה בשכיחות היא אי-התאמה בין מזהה השרת (CN או SAN) לכתובת שהוזנה על ידי הלקוח. השלישית היא חסימת יציאות UDP 500 ו-4500 על ידי חומת האש. זמן האבחון אינו עולה על 30 דקות.

מה כלול?

  • שרת StrongSwan מוגדר עם תעודות ומאגר משתמשים
  • כללי חומת אש וסקריפטים לאוטומציה
  • הוראות לחיבור לקוחות מקוריים (Windows, macOS, iOS, Android)
  • שילוב עם LDAP/RADIUS (אופציונלי)
  • בדיקות והעברת תיעוד

ניטור חיבורים פעילים

לניטור מספר הפגישות המקבילות, ניתן להשתמש במדדי Prometheus דרך StrongSwan IPsec pki. האקספורטר אוסף נתונים על מצבי מנהרות ועומס CPU. אנו מבטיחים שאחרי ההגדרה, תהיה לכם תצוגה שקופה של החיבורים.

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

שלב לוח זמנים
פריסת שרת + PKI + בדיקה עם לקוחות מקוריים מיום אחד
שילוב LDAP/RADIUS +0.5–1 יום
פרופילי MDM למכשירים ארגוניים +0.5 יום

העלות מחושבת באופן אישי לאחר ביקורת תשתית. הזמינו הגדרת VPN — קבלו פתרון מוכן תוך 1-2 ימים. קבלו ייעוץ ממהנדס בנושא הגדרת StrongSwan. צרו קשר: נעריך את הפרויקט שלכם תוך יום אחד. היישום משתלם על ידי הפחתת עלויות תמיכה ביישומי לקוח ופישוט תהליך קליטת עובדים חדשים.