מעבדות קשורות
הסבר על OpenVPN וביצוע Client To Site בעזרת pfSense – הגדרת עבודה מהבית
הסבר על VPN והגדרתו בעזרת OpenVPN ו IPsec והסבר על IKE
VPN הוא קיצור של Virtual Private Network המטרה של VPN בשונה מProxy זה ליצור חיבור מאובטח לרשת, לרוב רשת ארגונית, מטרתו היא ליצור Tunneling זאת אומרת חיבור של נניח בניין אחד לבניין אחר וזאת על מנת להעביר מידע על גבי רשת האינטרנט שהיא אינה מאובטחת, לצורה מאובטחת ומוצפנת.
קיים עוד סוג של VPN והוא VPN Site To Site ומטרתו היא לחבר בין שני ארגונים הנמצאים במיקומים גאוגרפיים שונים
לדוגמה לחברת רואי חשבון יש שני בניינים, האחד בתל אביב ואחד בירושלים, הם מעוניינים לחבר את שני הבניינים כאילו היו באותו הLAN, זאת אומרת עובד בבניין תל אביב הנמצא ברשת 192.168.1.0/24 ונניח שכתובתו היא 192.168.1.10 רוצה לבצע פינג למחשב בסניף ירושלים ששם הרשת היא 172.16.10.0/24 והכתובת של העובד בירושלים היא 172.16.10.10.
זאת אומרת שהפינג יהיה מ 192.168.1.10 ל 172.16.10.10, כמובן שאם הבניינים נמצאים במיקום אחר ולא באותו הLAN הם למעשה לא יכולים לבצע פינג אחד לשני, אבל בשביל החיבור הזה בדיוק נשתמש ב VPN
ע"י VPN נחבר את שני הבניינים אחד אל השני כך שהם יהיו "כאילו" באותו הLAN וכך נגיע לכלל משתמשי הארגון מתוך LAN
בהמשך נבצע מעבדה בדיוק כזו.
הסברים ועניינים טכניים
VPN הוא שם כללי לחיבור הרכיב לרשת מסוימת, VPN משתמש בIPsec על מנת להצפין ולאמת את המידע העובר בין שתי הנקודות
IPSEC
הוא קיצור של Internet Protocol Security והוא סט של פרוטוקולים ליצירת התקשרות ואימות מאובטחת מוצפנת מקצה אחד לקצה אחר.
IPSEC מצפין כל Packet בנפרד – זאת אומרת שכל "פקטה" ו"פקטה" עוברת הצפנה בתוך אותה השיחה.
- IPSEC משתמש ב AES בשביל להצפין את השיחה
- בשביל אימות IPSEC משתמש ב IKE
- IPSEC מעביר את המידע ב Tunnling שבה הוא משתמש בפרוטוקול ה IP בשביל לבצע Encapsulating לPacktes
- השימוש הכי נפוץ של IPSEC הוא בשביל VPN Site to Site שעליו ארחיב בהמשך
על מנת לחבר VPN Site To Site , אנחנו צריכים מנגון שיבצע את האימות מכל צד, זאת אומרת שאם ניקח דוגמה לכך שלארגון יש בניין בירושלים ובניין נוסף בתל אביב אנחנו צריכים שבכל צד יהיה Firewall והוא זה שיבצע את ה VPN ויצור לנו Tunneling מאובטח.
על מנת שהאימות יתבצע, נשתמש ב IKE
לIPSEC כמה מנגנונים שונים:
Authentication Header – מספק אימות ל IP Header ולמידע בתוכו, אך לא מספק הצפנה
Encapsulating Security Payload – בקיצור ESP מספק אימות והצפנה ל IP Payload (זאת אומרת למידע עצמו) השימוש בו יוחלט לפי ההגדרה של Tunnel Mode או Transport Mode
Access Control – הIPSEC יכול לאפשר למידע לעבור או לא לפי מישהו המשתמש או המכשיר
Tunnel mode and Transport mode – ישנם שני מצבים האחד הוא Tunnel Mode שמצפין את כל חבילת המידע זאת אומרת שכל ה Packet מוצפנת ואילו Transport Mode הוא מצב שבו רק ה Payload , זאת אומרת רק ה DATA שב Packet עוברת הצפנה ולא ה Header או שאר חבילת המידע.
Dead Peer Detection – במקרה בו צד אחד הפסיק להגיב, IPSEC במנגון זה ינסה לבד ליצור את החיבור ובכך לשחזר אותו
NAT Traversal – מאפשר ל IPSEC להתגבר על מצבים בהם המכשירים (FW לדוגמה) נמצאים מאחורי NAT
עוד שימושים שקיימים ב IPSEC
- IPCOMP – שהוא IP Compression מטרתו היא לכווץ את חבילות המידע עצמן, הכוונה היא למידע עצמו ה Payload לפני ההצפנה.
Perfect Forward Secrecy
PFS בקיצור הוא מנגון הגנה שבה הוא מבטיח שלא יתאפשר מצב בו מפתח בודד אחד אשר הושג ע"י תוקף, יגרום לכך שהתוקף יכול להאזין לכל השיחות ולעקוף את ההצפנה.
באם תרחיבו בקריאה כאן
הסבר על תקשורת מאובטחת SSL \ TLS הצפנה\הצפנות RSA ומנגנון החלפת מפתחות Diffie Hellman
תוכלו לקרוא שיכול להיות מצב בו התוקף John יכול להתחזות לאליס או לבוב ובכך להשיג את המפתחות של כל אחד, בעיה נוספת היא שאם וכאשר השיג את המפתח בינהם, מטרת ה PFS היא לא לאפשר לשיחות חדשות או אחרות של שני הגורמים להיות חשופים גם כן.
PFS משתמש במנגנון Diffie Hellman להחלפת מפתחות וזאת ע"י כך שאם ישנם שני גורמים כמו אליס ובוב הם ישתמשו ב PKI, זאת אומרת שה Shared Key שהוא המפתח הסימטרי בין שתי הישויות לא יעבור אל אחד הצדדים לא הצפנה.
לדוגמה: בוב רוצה לשלוח הודעה לאליס, הוא תחילה יקח את ה Public Key של אליס ויצפין את ה Shared Key שהוא יצר, רק ה Private Key של אליס יכול כעת לפתוח את ההודעה, בוב יעביר את ההודעה לאליס, היא תפתח עם המפתח הפרטי שלה ותקח את ה Shared Key וכעת הם יעברו להשתמש בהצפנה סימטרית
אז מה מיוחד בPFS , שכן הוא מייצר לכל שיחה מפתח חדש וכך אם היה מצב בו התוקף השיג את המפתח, הוא לא יכול לפתוח שיחות קודמות או עתידיות של שני הגורמים אלו או אחרים.
IKE – Internet Key Exchange
הוא פרוטוקול בשימוש של VPN והוא מבצע את האימות בין שני המכשירים (ע"י Firewall) והוא מכיל שני שלבים
Phase 1 – השלב הראשון הוא security association בקיצור SA, בשלב זה הIKE פונה לצד השני ומבצע אימות מולו, לאחר שהאימות הצליח, הם יקבעו כיצד עליהם להצפין את השיחה וכיצד בדיוק הם יבצעו אימות.
Security Association – מכיל בתוכו SPI שמזהה את סוג ה SA
* הSA מכיל בתוכו את סוגי הפרוטוקולים וההצפנה שבהם ישתמשו על מנת להצפין את התעבורה
* ה lifetime של ה SA וכמה זמן ישאר בתוקף
* הכתובות IP של כל צד והפורטים שבהם ישתמשו
Phase 2 – מתרחש ה security association בקיצור SA השני – ובו יבוצע האימות וההצפנה האמיתית של הנתונים (Packets) והתעבורה, בשלב זה הם יתאמו בינהם את הפרמטרים של איזה אלגורתים הצפנה להשתמש (AES) אורך המפתח והזמן בו SA יהיה בתוקף
IKEv1 הוא הפרוטוקול הישן יותר ואילו IKEv2 הוא החדש יותר ונמצא יותר בשימוש
ישנהם שני מצבים שניתן להגדיר את ה IKE, מצב אחד הוא Main Mode ומצב שני הוא Aggressive Mode
Main Mode – מבצע אימות משולש מול שני הFW ובהם מחליף מידע על צורת האימות וסוג ההצפנה – מצב זה מאובטח יותר ונותן הגנה טובה יותר נגד התקפת MITM
Aggressive Mode – מצב זה הוא מהיר יותר שכן הוא מבצע אימות רגיל ולא משולש ולכן מהיר יותר ולרוב ישתמשו בו כאשר המכונות מאחורי NAT וכתובת ה IP החיצונית לא ידועה, אך הוא פחות מאובטח מ Main Mode
סוגים נוספים של VPN
PPTP – הוא קיצור של Point-to-Point Tunneling Protocol הוא פרוטוקול VPN דיי מיושן שגם חברות התקשורת (בזק לדוגמה) עושים או עשו בו שימוש, הוא פחות מאובטח מפרוטוקולים אחרים.
L2TP – היא קיצור של Layer 2 Tunneling Protocol הוא מבצע Encapsulating למידע בעובר בתוך ה Tunneling , וכמו IPSEC הוא מאפשר העברת מידע "ברשת" לא מאובטחת מכו האינטרנט לצורה מאובטחת ומוצפנת .
הוא מאובטח יותר מ PPTP והשימוש בו יהיה לרוב ביחד עם IPSEC על מנת להגביר את האבטחה.
SSTP – הוא קיצור של Secure Socket Tunneling Protocol והוא פרוטוקול שפותח על ידי מיקרוסופט והוא משתמש בSSL\TLS זאת אומרת תעודות אבטחה על מנת להצפין את התעבורה
OpenVPN – הוא פרוטוקול קוד פתוח שמשתמש ב SSL\TLS גם כן על מנת להצפין את התעבורה, השימוש בו הוא יותר לחבר Client – To – Network מאשר IPSEC שהשימוש בו הוא יותר ל Site To Site
SoftEther VPN – הוא גם פרוטוקול קוד פתוח והוא בשימוש גם ל client to site ו site to site
מעבדה
במעבדה זו השתמשתי בכמה מדריכים הנמצאים באתר
- הסבר על Firewall והתקנת pfsense
- Kali מותקן
במעבדה זו נשתמש בתרשים הבא:
בתרשים זה אנחנו "מדמיינים" שני בניינים של ארגון, האחד בתל אביב והשני בירושלים
כרטיס הרשת שהוא NAT ישמש ככזה "הכאילו" מחובר לרשת אינטרנט
ואילו כרטיס הרשת Jerusalem הוא זה של הרשת הפנימית של אותו "הבניין"
אז pfsense FW1 יהיה תל אביב
ועוד FW pfSense יהיה ירושלים ונגדיר את כרטיסי הרשת כך
כעת לאחר התקנת FW תל אביב מספר 1
**חשוב מאוד להגדיר כרגע בגלל שזו סביבת מעבדה – את כל החוקים על Allow**
נגדיר שרשת LAN היא רשת 192.168.2.0 ולכן ה Default Gateway שלנו הוא 192.168.2.1
נעבור ל IPSEC תחת VPN
נלחץ על Add P1
כעת ניתן שם הסבר לחיבור
את הכתובת בצד השני של הFirewall שהזה הכתובת של FW ירושלים
ונלחץ על הכפתור Generate New Pre-Shared Key
את הקוד שנוצר, *** העתיקו לקובץ טקסט בצד*** נצטרך אותו אחר כך
אפשר להבחין ב Phase 1 כמו שהסברתי על IKE ולהגדיר צופן אחר וגם Hash אחר
אני משאיר את זה כך וממשיך לAdvanced Options
על חלק מהאופציות כאן הסברתי, השארתי את ברירת המחדל, אם אתם רוצים לשנות משהו תוכלו לשנות
כעת יצרנו את Phase 1
לא לשכוח לבצע Apply Changed כל הגדרה שעשיתם
עכשיו ניצור Phase 2 שלב 2 ב IKE
נלחץ על Show Phase 2 Entries
כעת לחצו על Add P2
כעת ניתן שם ונגדיר ב
Local Network את הרשת המקומית של תל אביב שהיא 192.168.2.0
ואת ה Remote Network שזו הרשת המרוחקת והיא ירושלים זה 192.168.1.0
נרד קצת למטה, נוכל להבחין שמוגדר ESP
נשאיר את זה כך ונמשיך
כעת סיימנו עם FW תל אביב
נעבור לFW ירושלים
כעת נגדיר אותו הדבר רק שהפעם ה Remote Gateway זה הכתובת של תל אביב
והיא 192.168.19.142
וכעת העתיקו את הpre Shared Key שהעתקנו קודם לכן
כך זה צריך להיראות
גם כאן ניצור את IKE שלב 2
ואז add p2
נגדיר את הרשתות
ה Local Network של ירושלים היא 192.168.1.0
הRemote Network שזה הרשת הפנימית בתל אבי היא 192.168.2.0
נשמור ונסגור
כעת נבדוק שהכל תקין, נכנס ל Status ואז ל IPSEC
ושם נוכל לראות שהStatus הוא Established
כעת נבדוק שאכן הכל עובד ויש תקשורת בין שני האתרים
נקח את ה kali ונגדיר לו כרטיס רשת של ירושלים
לאחר מכן נגדיר לו כתובת IP בטווח של רשת זו
לאחר ההגדרה לא לשכוח לכבות ולהדליק את כרטיס הרשת
כעת נבדוק שיש לנו פינג לdefault Gateway של הראוטר בצד של תל אביב והוא 192.168.2.1
מעולה!