כיצד אנו מגדירים MFA לאימות VPN (TOTP/RADIUS)

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

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

שאלות נפוצות

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

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

עובד איבד מחשב נייד עם פרטי התחברות שמורים של OpenVPN. הרשת הארגונית הייתה פתוחה לכל מי שהחזיק בתעודה ובסיסמה שלו. כך נראים רוב מקרי התקיפה של VPN—לא פריצה, אלא גניבת פרטי התחברות. גורם אימות שני—קוד TOTP—סוגר את התרחיש הזה לחלוטין: גם עם הסיסמה, תוקף לא יכול להתחבר ללא הקוד החד-פעמי. אנו מיישמים MFA ל-VPN באמצעות TOTP ושרת RADIUS כדי להגן על הגישה מרחוק של החברה שלך. לפי NIST, יישום אימות רב-גורמי מפחית את הסיכון לפריצת גישה מרחוק ב-80%.

סיסמה חד-פעמית מבוססת זמן (TOTP) היא תקן פתוח (RFC 6238), תואם לכל אפליקציית אימות: Google Authenticator, Authy, 1Password. בשילוב עם RADIUS, מקבלים מדיניות אימות מרכזית שעובדת עם כל שרת VPN—מ-OpenVPN ועד Cisco AnyConnect. לפי נתוני פריסה, TOTP מפחית את הסיכון לפריצת VPN ב-80% בהשוואה להגנה מבוססת סיסמה בלבד, וחיסכון בעלויות רישוי מגיע ל-60%.

כיצד פועל MFA ל-VPN עם TOTP ו-RADIUS

הזרימה הסטנדרטית: לקוח VPN → שרת VPN (OpenVPN/WireGuard/Cisco) → שרת RADIUS → LDAP/AD לבדיקת סיסמה + TOTP לגורם השני.

FreeRADIUS הוא הבחירה הנפוצה ביותר עבור התקנה מקומית (on-premise). הוא תומך ב-rlm_totp או באינטגרציה דרך rlm_exec עם מאמת חיצוני. TOTP משתמש ב-RFC 6238—תואם לכל יישום TOTP.

# /etc/freeradius/3.0/mods-enabled/ldap (фрагмент)
ldap {
  server = "ldap.corp.example.com"
  identity = "cn=radius,ou=service,dc=corp,dc=example,dc=com"
  password = "..."
  base_dn = "ou=users,dc=corp,dc=example,dc=com"
  filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
  start_tls = yes
  tls {
    ca_file = /etc/ssl/certs/corp-ca.crt
  }
}
# /etc/freeradius/3.0/sites-enabled/default (фрагмент authorize)
authorize {
    filter_username
    ldap
    if (ok || updated) {
        update control {
            Auth-Type := LDAP
        }
    }
    totp
}

בצד שרת OpenVPN, ההגדרה נעשית עם auth-user-pass-verify או דרך התוסף radiusplugin.so:

# /etc/openvpn/server.conf (фрагмент)
plugin /usr/lib/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf
verify-client-cert require username-as-common-name

המשתמש מזין סיסמה בפורמט סיסמה+קוד TOTP (שרשור) בעת החיבור, או—אם הלקוח תומך ב-challenge-response—הסיסמה וה-OTP מוזנים בשני שדות נפרדים דרך זרימת ה-challenge-response של RADIUS.

למה TOTP, לא SMS או הודעות Push?

קודי TOTP נוצרים מקומית במכשיר, אינם דורשים אינטרנט, ואינם תלויים בספק הסלולרי. בניגוד ל-SMS, לא ניתן ליירט TOTP באמצעות SIM-swap. הודעות Push עלולות להיחסם אם הטלפון לא מחובר. TOTP תמיד עובד, ואורך חיי הקוד הוא 30 שניות. TOTP מאובטח פי שניים מ-SMS במונחים של מקרים שנמנעו, ועלויות היישום נמוכות ב-60% בשל היעדר עלויות שער SMS. פתרונות MFA קנייניים דורשים הוצאות משמעותיות, בעוד שהפתרון שלנו המבוסס על TOTP ו-FreeRADIUS חוסך לתקציב שלך סכומים ניכרים.

כיצד להנפיק סודות TOTP?

התהליך כולל:

  • יצירת סוד—מפתח base32 ייחודי נוצר לכל משתמש (לדוגמה, openssl rand -base64 20).
  • אחסון ב-LDAP—הסוד נכתב לתכונת המשתמש, לדוגמה, totpSecret. אנו משתמשים בחיבור LDAPS מאובטח.
  • מסירת קוד QR—דרך פורטל שירות עצמי או ערוץ מאובטח (דואר אלקטרוני ארגוני).
  • אישור—המשתמש מזין את הקוד הראשון שנוצר, המערכת מאמתת ומפעילה את הסוד.
  • קודי גיבוי—8–10 קודים חד-פעמיים נוצרים, מהופכים (hashed) ונשמרים לכניסה במקרה של אובדן טלפון.
דוגמה לסקריפט יצירת קודי גיבוי
#!/bin/bash for i in {1..10}; do openssl rand -hex 4 done 

מה כלול בעבודה

במסגרת הפריסה, אנו מספקים:

  • ביקורת על תשתית ה-VPN הקיימת (פרוטוקולים, גרסאות, מדיניות).
  • פריסת אשכול FreeRADIUS עם שכפול מסד נתונים (PostgreSQL) ואיזון עומסים (keepalived/DNS round-robin).
  • אינטגרציה עם Active Directory או כל שרת LDAP: סנכרון משתמשים, קבוצות, תכונות TOTP.
  • הגדרת פורטל שירות עצמי לקישור TOTP עצמאי (הנפקת קוד QR, קודי גיבוי).
  • הנפקת סודות בכמות גדולה באמצעות סקריפטים (אוטומציה עם Ansible, יצירה, הפצת הוראות).
  • תיעוד ניהול ותרחישי שחזור (runbook).
  • הדרכת משתמשים ותמיכה בהשקה.

טעויות נפוצות וכיצד להימנע מהן

  • אחסון סודות TOTP בטקסט פשוט—הצפנה או hashing הם חובה. ב-LDAP, השתמש בתכונה מסוג octet string והפעל TLS.
  • היעדר קודי גיבוי—בלעדיהם, משתמש מאבד גישה אם הוא מאבד את הטלפון. ספק תמיד 8–10 קודי שחזור.
  • הגדרת לקוח RADIUS שגויה—בדוק כתובות IP וסודות משותפים בשרת ה-VPN ובקובץ clients.conf.
  • התעלמות משעון השרת—TOTP תלוי זמן; חוסר סנכרון של יותר מ-30 שניות גורם לכשלים. הגדר NTP בכל שרתי ה-RADIUS.

השוואת שיטות MFA ל-VPN

שיטה אבטחה נוחות תלות ברשת עלות יישום
TOTP גבוהה גבוהה לא בינונית
SMS נמוכה (SIM-swap) בינונית כן נמוכה
Push בינונית גבוהה כן גבוהה

לוחות זמנים לפריסה

תרחיש לוח זמנים
FreeRADIUS + OpenVPN, עד 50 משתמשים 1-2 ימים
אינטגרציה עם AD, פורטל שירות עצמי 3-5 ימים
Cisco ASA / Palo Alto + FreeRADIUS + AD 3-5 ימים
ריבוי אתרים, HA RADIUS, 500+ משתמשים 1-2 שבועות

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

NIST Special Publication 800-53 — MFA הוא אמצעי חובה לגישה מרחוק.