כיצד להשתמש במנהור SSH כדי לגשת לשרתים מוגבלים ולעיין בצורה מאובטחת

לקוח SSH מתחבר לשרת Secure Shell, המאפשר לך להפעיל פקודות מסוף כאילו אתה יושב מול מחשב אחר. אך לקוח SSH מאפשר לך גם "לנהור" יציאה בין המערכת המקומית שלך לשרת SSH מרוחק.

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

אתה יכול לעשות זאת באמצעות sshהפקודה הכלולה ב- Linux, macOS ומערכות הפעלה אחרות דמויות UNIX. ב- Windows, שאינו כולל פקודת ssh מובנית, אנו ממליצים על הכלי החינמי PuTTY להתחבר לשרתי SSH. הוא תומך גם במנהרות SSH.

העברת נמל מקומי: הנגיש משאבים מרוחקים במערכת המקומית שלך

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

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

כדי להשתמש בהעברה מקומית, התחבר לשרת SSH כרגיל, אך ספק את -Lהטיעון. התחביר הוא:

ssh -L local_port: remote_address: remote_port שם משתמש@server.com

לדוגמא, נניח ששרת מסד הנתונים במשרדך ממוקם בכתובת 192.168.1.111 ברשת המשרד. יש לך גישה לשרת SSH של המשרד ב ssh.youroffice.com, וחשבון המשתמש שלך בשרת SSH הוא bob. במקרה כזה, הפקודה שלך תיראה כך:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

לאחר הפעלת פקודה זו, תוכל לגשת לשרת מסד הנתונים ביציאה 8888 ב- localhost. לכן, אם שרת מסד הנתונים הציע גישה לאינטרנט, תוכל לחבר // localhost: 8888 לדפדפן האינטרנט שלך כדי לגשת אליו. אם היה לך כלי שורת פקודה שזקוק לכתובת הרשת של מסד נתונים, היית מכוון אותו אל localhost: 8888. כל התעבורה הנשלחת לנמל 8888 במחשב האישי שלך תועבר ל 192.168.1.111:1234 ברשת המשרדית שלך.

זה קצת יותר מבלבל אם אתה רוצה להתחבר ליישום שרת הפועל באותה מערכת כמו שרת SSH עצמו. לדוגמה, נניח שיש לך שרת SSH הפועל ביציאה 22 במחשב המשרדי שלך, אך יש לך גם שרת מסד נתונים הפועל ביציאה 1234 באותה מערכת באותה כתובת. ברצונך לגשת לשרת מסד הנתונים מהבית, אך המערכת מקבלת רק חיבורי SSH ביציאה 22 וחומת האש שלה אינה מאפשרת שום חיבור חיצוני אחר.

במקרה זה, תוכל להפעיל פקודה כמו הבאה:

ssh -L 8888: localhost: 1234 [email protected]

כאשר אתה מנסה לגשת לשרת מסד הנתונים ביציאה 8888 במחשב הנוכחי שלך, התעבורה תישלח דרך חיבור SSH. כאשר הוא מגיע למערכת שמריצה את שרת SSH, שרת SSH ישלח אותו ליציאה 1234 ב- "localhost", שהוא אותו מחשב שמריץ את שרת ה- SSH עצמו. אז "localhost" בפקודה לעיל פירושו "localhost" מנקודת מבטו של השרת המרוחק.

לשם כך ביישום PuTTY ב- Windows, בחר חיבור> SSH> מנהרות. בחר באפשרות "מקומי". עבור "יציאת מקור", הזן את הנמל המקומי. עבור "יעד", הזן את כתובת היעד ואת היציאה בטופס remote_address: remote_port.

לדוגמה, אם ברצונך להגדיר את אותה מנהרת SSH כנ"ל, היית נכנס 8888כיציאת המקור localhost:1234וכיעד. לחץ על "הוסף" לאחר מכן ואז לחץ על "פתח" כדי לפתוח את חיבור ה- SSH. יהיה עליך להזין את הכתובת והיציאה של שרת SSH עצמו גם במסך הראשי של "מושב" לפני החיבור, כמובן.

העברת יציאות מרחוק: הנגיש משאבים מקומיים במערכת מרוחקת

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

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

כדי להשתמש בהעברה מרחוק, השתמש sshבפקודה עם -Rהארגומנט. התחביר זהה במידה רבה כמו למשלוח מקומי:

ssh -R remote_port: local_address: local_port [email protected]

נניח שאתה רוצה להפוך יישום שרת להקשיב ביציאה 1234 במחשב המקומי שלך זמין ביציאה 8888 בשרת SSH המרוחק. כתובת שרת SSH היא ssh.youroffice.comושם המשתמש שלך בשרת SSH הוא bob . הפעלת את הפקודה הבאה:

ssh -R 8888: localhost: 1234 [email protected]

לאחר מכן מישהו יכול להתחבר לשרת SSH ביציאה 8888 והחיבור הזה יעבור מנהרה ליישום השרת שפועל ביציאה 1234 במחשב המקומי ממנו יצרת את החיבור.

לשם כך ב- PuTTY ב- Windows, בחר חיבור> SSH> מנהרות. בחר באפשרות "מרחוק". עבור "יציאת מקור", הזן את היציאה המרוחקת. עבור "יעד", הזן את כתובת היעד והנמל בטופס local_address: local_port.

לדוגמא, אם תרצה להגדיר את הדוגמה שלמעלה, הזן 8888כיציאת המקור localhost:1234וכיעד. לחץ על "הוסף" לאחר מכן ואז לחץ על "פתח" כדי לפתוח את חיבור ה- SSH. יהיה עליך להזין את הכתובת והיציאה של שרת SSH עצמו גם במסך הראשי של "מושב" לפני החיבור, כמובן.

לאחר מכן אנשים יכלו להתחבר ליציאה 8888 בשרת SSH והתנועה שלהם תהיה מנהרה ליציאה 1234 במערכת המקומית שלך.

כברירת מחדל, שרת ה- SSH המרוחק יקשיב רק לחיבורים מאותו מארח. במילים אחרות, רק אנשים באותה מערכת כמו שרת SSH עצמו יוכלו להתחבר. זאת מטעמי ביטחון. יהיה עליך להפעיל את האפשרות "GatewayPorts" ב- sshd_config בשרת SSH המרוחק אם ברצונך לעקוף התנהגות זו.

העברת יציאות דינמיות: השתמש בשרת SSH שלך כ- Proxy

קשורים: מה ההבדל בין VPN ל- Proxy?

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

קשורים: מדוע שימוש ברשת Wi-Fi ציבורית עלול להיות מסוכן, גם כאשר ניגשים לאתרים מוצפנים

לדוגמא, נניח שאתה משתמש ברשת Wi-Fi ציבורית. אתה רוצה לגלוש בצורה מאובטחת מבלי להפסיק לחטט. אם יש לך גישה לשרת SSH בבית, תוכל להתחבר אליו ולהשתמש בהעברת יציאות דינמית. לקוח SSH ייצור פרוקסי SOCKS במחשב האישי שלך. כל התעבורה הנשלחת לאותו שרת proxy תישלח דרך חיבור שרת ה- SSH. איש שעוקב אחר רשת ה- Wi-Fi הציבורית לא יוכל לפקח על הגלישה שלך או לצנזר את האתרים אליהם אתה יכול לגשת. מנקודת המבט של כל אתרי אינטרנט שתבקר בהם, זה היה כאילו שישבת מול המחשב האישי שלך בבית. המשמעות היא גם שתוכל להשתמש בטריק הזה כדי לגשת לאתרים בארה"ב בלבד מחוץ לארצות הברית - בהנחה שיש לך גישה לשרת SSH בארה"ב, כמובן.

כדוגמה נוספת, ייתכן שתרצה לגשת ליישום שרת מדיה שיש לך ברשת הביתית שלך. מטעמי אבטחה, ייתכן שיהיה לך שרת SSH חשוף לאינטרנט בלבד. אינך מאפשר חיבורים נכנסים מהאינטרנט ליישום שרת המדיה שלך. אתה יכול להגדיר העברת יציאות דינמיות, להגדיר דפדפן אינטרנט לשימוש ב- proxy של SOCKS, ואז לגשת לשרתים הפועלים ברשת הביתית שלך דרך דפדפן האינטרנט כאילו אתה יושב מול מערכת ה- SSH שלך בבית. לדוגמא, אם שרת המדיה שלך ממוקם ביציאה 192.168.1.123 ברשת הביתית שלך, תוכל לחבר את הכתובת 192.168.1.123לכל יישום באמצעות ה- proxy של SOCKS והיית ניגש לשרת המדיה כאילו אתה נמצא ברשת הביתית שלך.

כדי להשתמש בהעברה דינמית, הפעל את הפקודה ssh עם -Dהארגומנט, כך:

ssh -D local_port שם משתמש@server.com

לדוגמא, נניח שיש לך גישה לשרת SSH ב- ssh.yourhome.comושם המשתמש שלך בשרת SSH הוא bob. אתה רוצה להשתמש בהעברה דינמית כדי לפתוח פרוקסי SOCKS ביציאה 8888 במחשב הנוכחי. הפעלת את הפקודה הבאה:

ssh -D 8888 [email protected]

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

לשם כך ב- PuTTY ב- Windows, בחר חיבור> SSH> מנהרות. בחר באפשרות "דינמי". עבור "יציאת מקור", הזן את הנמל המקומי.

לדוגמא, אם ברצונך ליצור שרת proxy של SOCKS ביציאה 8888, הזן 8888כיציאת המקור. לחץ על "הוסף" לאחר מכן ואז לחץ על "פתח" כדי לפתוח את חיבור ה- SSH. יהיה עליך להזין את הכתובת והיציאה של שרת SSH עצמו גם במסך הראשי של "מושב" לפני החיבור, כמובן.

לאחר מכן תוכל להגדיר יישום לגישה ל- proxy SOCKS במחשב המקומי שלך (כלומר, כתובת IP 127.0.0.1, המצביעה על המחשב המקומי שלך) ולציין את היציאה הנכונה.

קשורים: כיצד להגדיר שרת Proxy ב- Firefox

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

כשעושים זאת ב- Firefox, בחר "תצורת proxy ידנית", הזן "127.0.0.1" בתיבת המארח SOCKS והזן את היציאה הדינמית בתיבה "Port". השאר את תיבות ה- HTTP Proxy, SSL Proxy ו- FTP Proxy ריקות.

המנהרה תישאר פעילה ופתוחה כל עוד יהיה לך חיבור הפעלת SSH פתוח. כשתסיים את הפעלת ה- SSH שלך ותנתק משרת, המנהרה תהיה גם סגורה. פשוט התחבר מחדש לפקודה המתאימה (או לאפשרויות המתאימות ב- PuTTY) כדי לפתוח מחדש את המנהרה.