17 בינואר 2021
Edit on GitHub
— Post available in English

שירות VPN אישי ופרטי בענן של AWS

מדריך הפעלת שרת VPN פרטי על גבי הענן של AWS, צעד אחר צעד.

Blog picture

🔐 במדריך הבא נלמד איך ליצור שרת VPN פרטי בענן של AWS 🔐

מה זה בכלל VPN

בגדול הרעיון הוא לנתב את כל תעבורת הרשת דרך מחשב אחר (שרת ה-VPN) כך שמבחינת מקבל הבקשה שלנו המחשב ששלח את הבקשה זה שרת ה-VPN ומבחינת ספקית האינטרנט שלנו (וכל מי ש"יושב" עליה, כמו המדינה) אנחנו ניגשנו לשרת ה-VPN.

למה זה טוב?

להרבה דברים, למשל התחברות לרשת פנימית של ארגון, ועוד.

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

נשים לב שבמחינת האתר, כל זה רק ברמת ה-IP (יענו ה"מספר טלפון" האינטרנטי שלכם) אבל אם מתחברים או מזדהים באמצעות פייסבוק וכו' האתר בהחלט ידע גם ידע מי אתם בלי קשר לכתובת ממנה באתם.

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

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

אבל גם בבחירה בשירות בטוח ואמין, עדיין ישנם יתרונות מסוימים ביצירת שרת VPN פרטי.

השוואה קצרה של ספק VPN מול שרת VPN פרטי (שכמובת לא כוללת את כל האספקטים!)

  • כתובות שירותי ה-VPN ידועים לכולם, ולכן גם הספקית\סינון\מדינה מבינים שאת.ה ניגש לשרת VPN ואולי יחלטו לחסום את התקשורת, וגם האתר אולי יחליט שהוא לא מעוניין לתת שירות למשתמשי VPN, אבל בשרת פרטי כתובת IP לא מזוהה כשירות VPN אלא ככתובת תמימה של AWS וסיכוי אפסי שיתחילו לחסום כתובות של AWS (ואם כן.. הבעיה האחרונה תהיה ה-VPN הקטן שלכם) , נכון גם לספק האינטרנט, וגם לאתר שאליו גולשים.
  • בשרת פרטי הכתובת בשליטתך, רוצה להחליף? תרים מכונה חדשה והופ, יש חדש.
  • בשרת פרטי אין סיכוי שמישהו אחר יאסוף נתונים מהשרת, השרת הוא שלך ובשליטתך הבלעדית, כל עוד לא גונבים לך את המפתחות אליו כמובן 😄
  • מבחינת עומסים, סיכוי מאוד נמוך לבעיות בשרת פרטי כי זה שרת שרק אתם מתחברים אליו, בשונה מספק VPN שייתכנו עומסים, אם כי שוב זה תלוי באמינות סםק ה VPN.
  • עלות די דומה בס"כ אם כי בשרת פרטי העלות היא שעתית וניתן בכל רגע להוריד את השירות מהאוויר ולהפסיק לשלם.
  • כשאת.ה היחיד שמשתמש בכתובת IP אין הגנת "רעש" כמו בספק VPN שעוד אלפי אחרים גולשים דרכו גם, ולכן ברגע שמישהו הבין מה ה-IP שלך ויודע לקשר אליו את הIP של ה VPN הוא יכול עקרונית ל"תשאל" את האתר אם הכתובת הייתה שם (זה ממש סיזיפי, אבל אפשרי).

יצירת שרת OpenVPN ב-AWS

החלטתם ללכת על שרת פרטי? אתם לא צריכים להיות אנשי Devops! זה קל ופשוט.

ראשית צריך ליצור (אם עדיין אין) חשבון ב- AWS (זה לא החשבון קניות ב Amazon הרגיל)

חשוב מאוד לשים לב, מאוד מאוד מאוד מומלץ לשים סיסמה טובה ואימות דו שלבי, כי הכרטיס אשראי מוצמד לחשבון, ואם האקר מצליח להכנס לחשבון הוא יכול לעשות ככל העולה על רוחו ובפוטנציאל לבצע פעולות בעלות של אלפי דולרים לפני שבכלל אפשר לשים לב (וכן מומלץ גם להגדיר התראות בממשק כך ש-AWS ישלחו התראות בחריגה מסכום חיוב משוער מסוים)

אחרי שסיימנו את יצירת החשבון הגיע הזמן להרים את המכונה 💪

המדריך אמור להתאים גם ללא ידע מוקדם או הבנה במחשוב ענן ובכלל, אם כי ממליץ לקרוא את הטקסט ולהבין את הפעולות (וזה בכלל לא מסובך!)

ראשית נכנס ללשונית של השירותים ונבחר ב EC2 שזה שירות הרצת מכונות וירטואליות עם גישה מהרשת שזה בעצם בדיוק מה שאנחנו רוצים, מחשב בענן של AWS.

נבחר בחוות השרתים שבה אנו מעוניינים להתארח, מן הסתם נעדיף חוות שרתים שקרובה פיזית כך שהתקשורת שלנו לענן תהיה מהירה ככל האפשר.

אחרי שבחרנו את החוות שרתים שבה נרים את השרת, הגיע הזמן להרים אותו.

נבחר AMI שזה בעצם אימייג'

(מה זה אימייג'? לצורך העניין זה מערכת הפעלה מוכנה לשימוש עם סט התקנות נדרשות מותקנות מראש)

נבחר בטאב AWS Marketplace ובחיפוש openvpn

ו select

(האימייג המוצג מוגבל ל-2 מכשירים במקביל ניתן גם לבחור עם 10 או 25 חיבורים מקבילים)

חשוב לשים לב ששימוש באימייג עולה כסף (פר שעה) נוסף על החיוב הרגיל של AWS

ניתן להשתמש ב AMI ללא עלות נוספת (לבד מהחיוב הרגיל ל AWS) אבל זה דורש התעסקות עם התקנות בסוף המדריך יש נספח איך , לדעתי שווה את זה.

נבחר את סוג המכונה שאנחנו רוצים, לצורך הדוגמה וכנראה לשימוש אישי t2.micro בהחלט מספיק.

לא מספיק לכם? תמיד אפשר ליצור מחדש ולבחור מכונה חזקה יותר, רק שימו לב לחיובים 😏

בחלון הבא אין מה לשנות פשוט להמשיך עם ההגדרות הדיפולטיות

נרים את המכונה

ניצור מפתח לגישה למכונה (אפשר לבחור כמובן גם מפתח קיים, אם קיים) חשוב מאוד להוריד ולשמוש את המפתח במקום שמור, זה המפתח גישה למכונה.

ו.. נעלה את המכונה לאוויר

נמתין ל AWS שיכינו את המכונה

והנה היא, נלחץ על הקישור

ניתן שם קריא ונאה למכונה החדשה

נמתין עד שהמכונה תהיה מוכנה ונעתיק את הכתובת IP הציבורית של המכונה

נתקין putty על המחשב.

בסיום ההתקנה נחפש את התכנה puttygen בכדי להמיר את הקובץ מפתח שהורדנו מפורמט pem לפורמט pkk.

נפתח את התכנה, ונבחר ב conversions -> import key נבחר את קובץ ה pem שהורדנו מקודם.

וניצור קובץ pkk

נאשר

והגיע הזמן להתחבר למכונה ב- SSH

הפעם נחפש במחשב putty

ונזין את השם והכתובת openvpn@{the public ip}

בעץ התפריט נבחר connection -> SSH -> Auth ונטען את קובץ ה pkk

ונלחץ על open

נאשר את הסכם השימוש yes

ונקסט נקסט נקסט (מקש ה Enter)

והשרת מוכן!

נזין את הפקודות הבאות בכדי להגדיר סיסמה

sudo su
passwd openvpn

ונזין פעמיים את הסיסמה שאנו מעוניינים בה

ניגש בדפדפן לכתובת הציבורית של השרת עם הפורט 943

זה אמור להראות ככה https://{public ip}:943/admin

בדפדפן תוצג שגיאה בגלל ששם המתחם לא אומת. זה בסדר, ונשאיר את זה בצד כרגע (אפשר כמובן לסדר את זה, אבל לא רלוונטי כרגע)

נבחר ב מתקדם

ונבחר להמשיך לאתר

נזין את שם המשתמש openvpn ואת הסיסמה שיצרנו מקודם

עוד משהו לאשר

נלך ל vpn settings ונגדיר כמו בתמונה ונשאר את השינויים

תקפוץ התראה בראש הדף ונבחר לעדכן גם מה שרץ כרגע

עכשיו השרת מוגדר כהלכה 🚀🚀🚀




אם השרת לא בשימוש כדאי למחוק אותו, עולה 💲💲💲 להחזיק סתם באוויר.








חיבור Windows לשרת ה-VPN

נזין שוב בשורת הכתובת הפעם בלי תוספת admin

נזין שם משתמש וסיסמה כמו מקודם ונבחר את הקליינט שנרצה להוריד

אחרי ההורדה נתקין את התכנה

ובסיום יופיע לנו האייקון בשלחן העבודה

נלחץ עליו

נצא מהטיפים (או שלא...)

נאשר הכל

ונפעיל את החיבור

נזין שם משתמש וסיסמה כמו מקודם

ו.. הנה אנחנו גולשים כמו מאירלנד!!!








חיבור טלפון לשרת ה-VPN

וכמובן ה- VPN זמין גם מהטלפון, נלך ל Google Play (אפשר כמובן גם להוריד ידנית אם כי פחות מומלץ)

ונתקין את OpenVPN Connect

נזין את כתובת ה IP הציבורית

נאשר

נזין את שם המשתמש והסיסמה (אפשר גם לבחור שיתחבר אוטו' אבל לא חובה)

נפעיל את החיבור

נאשר גישה לשינוי תעבורת הרשת

והכל מוכן

והנה שוב אנו באירלנד






נספח

התקנה ללא רכישת OpenVPN AMI

שימוש בAMI של OpenVPN מהמרקטפלייס של AWS עולה כסף, ואפילו מעט יותר ממה שמשלמים לAWS עצמה על המכונה.

ניתן גם להתקין את OpenVPN על AMI (אימייג') רגיל, כך שהעלות תהיה רק על המכונה עצמה אבל זה דורש התקנה ידנית של OpenVPN

איך עושים את זה? זה קל.

בממשק של AWS בוחרים AMI של דביאן (נבדק על debian-stretch-hvm-x86_64-gp2-2019-04-27-83345)

ב-Security Rules נוודא שהפורטים הבאים פתוחים

  • TCP 443, 943, 945
  • UDP 1194

מתחברים ב-SSH (עם שם המשתמש admin ומפתח pkk בדיוק כמו מקודם)

ומתחילים את ההתקנה עצמה

עדכון המערכת

sudo apt update

התקנת כלי רשת

sudo apt install net-tools

הורדת OpenVPN

curl -O http://swupdate.openvpn.org/as/openvpn-as-2.5.2-Debian9.amd_64.deb

התקנת OpenVPN

sudo dpkg -i openvpn-as-2.5.2-Debian9.amd_64.deb

הרצת OpenVPN

sudo /usr/local/openvpn_as/bin/ovpn-init

ואם נדרש למחוק קינפוג קיים אז להזין DELETE

ומכאן בדיוק כמו מקודם (רק ביותר זול 😉)