מעבדות קשורות:
הסבר על VPN Site To Site הגדרתו בעזרת IPsec והסבר על IKE וPerfect Forward Secrecy
הסבר על OpenVPN וביצוע Client To Site בעזרת pfSense
VPN הוא קיצור של Virtual Private Network המטרה של VPN בשונה מProxy זה ליצור חיבור מאובטח לרשת, לרוב רשת ארגונית, מטרתו היא ליצור Tunneling זאת אומרת חיבור של נניח בניין אחד לבניין אחר וזאת על מנת להעביר מידע על גבי רשת האינטרנט שהיא אינה מאובטחת, לצורה מאובטחת ומוצפנת.
OpenVPN VS Ipsec
OpenVPN משתמש בספריית OpenSSL בשביל להצפין את התעבורה לעומת IPSEC אשר משתמש ב AES ישירות
בנוסף על זאת הוא משתמש ב SSL\TLS בשביל לבצע את האימות אל מול שרת ה VPN לעומת IPSEC אשר משתמש בIKE
אחד הנושאים החשובים זה שOpenVPN משתמש ב TCP\UDP בשביל לבצע את ה Encapsulating של התעבורה לעומת IPSEC במשתמש בפרוטוקול הIP הבסיסי
ודבר אחרון הוא השימוש של כל אחד:
- IPSEC הוא פרוטוקול שהשימוש בו יהיה יותר בשביל site to site
- OpenVPN הוא יותר לשימוש של Client To Site כמו חיבורים של עבודה מהבית או התחברות של מחשב בודד לרשת הארגונית
——
במאמר זה נתעמק דווקא ב Client To Site זאת אומרת שכמו בארגון שלכם, חברה שבה אתם עובדים, אנשים מתחברים מהבית אל הארגון, צריך פתרון שבו המשתמש הנמצא בבית, נניח והוא גר ברמת גן והמשרדים בתל אביב.
במצב כזה צריך לדאוג שהוא יתחבר אל משאבי הארגון בצורה בטוחה, הצורה הזו נקראת VPN שכן אנחנו ניצור מצב "כאילו" המחשב שלו הנייד לצורך הדוגמה, מחובר ישירות לרשת הארגונית.
בקצרה – מתווסף במחשב הנייד עוד כרטיס רשת, עם כתובת IP פנימית ארגונית, אם המשתמש יבצע פינג לשרת בארגון (עם כתובת פנימית גם כן) הוא יגיע אליו – או אם נניח המשתמש רוצה לגשת לכונן הרשת הארגוני , הוא יצליח.
דוגמה עם סיפור:
דנה היא עובדת בחברת עו"ד , והיום היא עובדת מהבית , המטרה היא לחבר את דנה מהבית לארגון בצורה בטוחה שכן דנה גם רוצה גישה לכונן הרשת הארגוני, חלקכם יכול לחשוב על לחבר את דנה למחשב במשרד שלה בעזרת תוכנות כמו Anydesk או Teamviewer.
אבל זו טעות, שכן כל חולשה שעלולה להתגלות במוצרים האלו, עלולים ליצור בעיית אבטחה, בעיה נוספת הא שאנחנו לא מספקים גישה מאובטחת מספיק, ב Anydesk דרוש רק קוד וסיסמא, אכן זה צורה יותר מאובטחת מרק קוד, אבל מה קורה כאשר אנחנו רוצים לשנות את הקוד? צריך להגיע פיזית למחשב של דנה (או להתחבר מרחוק) ולשנות את הקוד.
אנחנו גם לא יודעים אם לחברת anydesk יש גישה למחשבי הארגון באם יחליטו לנסות לגשת , וכל בעית אבטחה שתוכלו לעלות בנושא זה.
מה עם בעיות לא אבטחתיות, למשל המחשב של דנה במשרד כבוי? מה עם שליטה של מנהל הרשת למי גישה מהבית ולמי אין אם כל אחד יכול להפעיל תוכנת השתלטות?
מטרתו של VPN היא לחבר את המחשב דנה לרשת הארגונית, כך שהמחשב "כאילו" נמצא פיזית בארגון ומחובר אליו בכבל, אבל כדאי שזה יהיה מאובטח, אנחנו צריכים לייצר Tunnel מעין צינור מאובטח למידע שמחבר את דנה לרשת הארגונית
מעבדה
בשביל מעבדה זו נצטרך pfSense מותקן
- הסבר על Firewall והתקנת pfsense
- Windows 10\ Server מותקן
- Kali
התרשים שנגדיר ידמה את התרחיש הבא:
השרת Windows Server 2019 או כל מערכת הפעלה של ווינדוס או לינוקס- נשתמש בזה על מנת לבדוק שיש פינג מקאלי אליו וכך אנחנו יודעים שהOpenVPN חיבר אותנו לארגון
כרטיס הרשת ב Kali
שני כרטיסי רשת ל pfSense
אחד הוא NAT ואחד הוא LAN או נניח סוויצ' וירטואלי בשם שלכם, נניח אצלי הגדרתי Tal
בשרת \ ווינדוס הגדרתי את אותו LAN בלבד כמו בתרשים במקרה אצלי זה Tal
בכרטיס הרשת של ווינדוס הגדרתי את הכתובת הבאה
על מנת להתחיל להגדיר את OpenVPN אנחנו תחילה צריכים ליצור תעודת CA – זאת אומרת תעודה שממנה ניצור את התעודות לשרת ולמשתמשים
כעת לחצו על Add
ניתן שם שמצהיר שזו תעודת CA ואת ה Common Name אפשר להשאיר כמו שהוא
תעודות – כעת ניצור תעודה לשרת ה OpenVPn שבו הוא ישתמש על מנת לאמת את המשתמש
זאת אומרת שאנחנו ניצור בהמשך תעודה למשתמש מאותו הCA כך למעשה שרת ה OpenVPN יאמת את התעודה של המשתמש המתחבר אל השירות
נעבור לCertificates
ונלחץ על Add
ניתן שם לתעודה שמציגה שזה התעודה של השרת OpenVPN שלנו גם ב Common Name
** חשוב מאוד להגדיר את סוג התעודה ל Server Certificate!!**
בסיום לחצו על Save
כעת ניצור משתמש שאיתו בהמשך נתחבר ל VPN
לחצו על System -> User Manager
נלחץ על Add
ואז נגדיר שם משתמש וסיסמא
כעת סמנו בחץ את Click to create a user certificate
כעת לאחר שסימנתם בV קיבלתם את החלון ליצירת תעודה
תנו שם לתעודת המשתמש ותוכלו להבחין שהתעודת CA שממנה יווצר התעודה הנוכחית היא CA-TAL שיצרנו בהתחלה
בסיום יש לנו משתמש ותעודה מוכנה
כעת נעבור ל VPN ואז OpenVPN
נלחץ על Add
ניתן שם לחיבור VPN (נתתי שם ג'נרי)
וב Server Mode חשוב להגדיר את Remote Access SSL\TLS + User Auth
Peer To Peer TLS SSL – אומר שאם נרצה להגדיר OpenVPN Site To Site והאימות וההצפנה יבוצעו ע"י תעודות
Peer To Peer Shared Key – בדומה ל IPSEC החיבור ל Site השני יתבצע ע"י Shared Key שחייב להיות זהה בשני האתרים
Remote Access SSL\TLS – לחיבור משתמשים אבל הזיהוי יהיה ע"פ התעודה בלבד (פחות מאובטח)
Remote Access User Auth – מספיק רק שם משתמש וסיסמא בשביל להתחבר לVPN
Remote Access SSL\TLS + User Auth – מחייב תעודה ושם משתמש על מנת להתחבר לשירות ה VPN
כעת לאחר שבחרנו את צורת האימות
נמשיך
את התעודה שהיא למעשה תעודת הCA שיצרנו קודם נגדיר ב Peer Certificate
והתעודה לשרת שגם הגדרנו קודם, נגדיר ב Server Certificate
כעת נגדיר את הרשת שהוא למעשה יחלק כמו DHCP לכל מחשב שיתחבר ל VPN, אפשר להגדיר רשת חדשה (זה העדיפות) אבל בגלל שאנחנו בסביבת מעבדה, נגדיר את הרשת 192.168.10.0 (זוהי רשת שלא קיימת ב pfsense והיא תהווה הרשת הוירטואלית)
ולהגדיר גם Redirect IPV4 Gateway – הגדרה זו אומרת שכל התעבורה של המשתמש תעבור דרך הVPN, כך שאם יש לנו מערכות הגנה בארגון מבחינת DNS כמו Umberlla או Application Control אז זה "יגן" על המשתמש
נוכל לסמן UDP Fast i\o שהוא ניסיוני ואמור לגרום לVPN לעבוד מהר יותר – אני לא סימנתי, אבל אתם יכולים
וסימון חשוב הוא ה Gateway Creation לסמן את IPV4
כעת שמרו
חשוב מאוד! אם יש לכם Snort בטלו אותו כעת! כיוון שאנחנו בסביבת מעבדה, לא נקפנג אותו שיתאים לVPN ולתעבורה וגם בגלל שאני משתמש בקאלי , ה IPS יחסום כל פינג מקאלי לרשת אחרת
כעת נבדוק את הסטטוס של ה OpenVPN ואם הוא תקין
Status -> System Logs -> OpenVPN
אם כתוב Initialization Sequence Completed זה אומר שהשירות פעיל
כעת על מנת להקל עלינו ולא ליצור קובץ OpenVPN ולטעון אליו תעודה וכתובת IP של שירות הVPN , יש לנו כלי ב pfSense שיעשה את זה עבורנו
נעבור ל System – > Package manager -> Available Packges
שם נחפש OpenVPN ונמצא חבילה בשם OpenVPN-client-export
נתקין את החבילה
כעת נחזור לVPN ול OpenVPN
נגולל בדף הכי למטה
ושם כל משתמש שניצור יופיע, שם המשתמש והתעודה שיצרנו לו, וגם בתעודה שרשומה הוא ישתמש על מנת ליצור את קובץ החיבור
נוריד את Most Clients
הקובץ שירד לכם, העתיקו אותו ל Kali
הקשתי כאן ls עם grep על מנת להציג לכם רק את הקובץ
כעת מתוך Desktop נרשום
sudo openvpn *************.ovpn
הכוכביות , זה אמור להיות הקובץ שלכם כמובן
לאחר שלחצתם אנטר, עליכם להזין את שם המשתמש והסיסמא שיצרתם ב pfsense
אם הכל הוגדר תקין נקבל את השורה Initialization Sequence Completed
כעת נבדוק שקאלי מגיע ל 192.168.1.1 שהוא ה Default Gateway ב pfsense בצד ה LAN
אם יש לכם פינג , זה אומר שאתם כבר נמצאים ברשת הארגונית
יש לנו גם שרת ווינדוס עם הכתובת 192.168.1.10 שנמצא בLAN (הרשת הארגונית)
נבצע פינג אליו, אם הצלחתם, זהו אתם ברשת הLAN והVPN עובד!
אפילו סריקת NMAP ניתן לבצע על השרת ווינדוס