אנדרואיד

כיצד להגדיר מנהור ssh (העברת נמל)

ª

ª

תוכן עניינים:

Anonim

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

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

ישנם שלושה סוגים של העברת יציאת SSH:

  • שילוח נמל מקומי. - מעביר חיבור ממארח ​​הלקוח למארח שרת SSH ואז לנמל מארח היעד. הסר העברת יציאה. - מעביר יציאה ממארח ​​השרת למארח הלקוח ואז לנמל מארח היעד. העברת יציאה דינמית. - יוצר שרת פרוקסי SOCKS המאפשר תקשורת בין מגוון יציאות.

, נדבר על אופן הקמת מנהרות SSH מקודדות, מרוחקות ודינאמיות.

שילוח נמל מקומי

העברת יציאות מקומית מאפשרת לך להעביר יציאה במחשב המקומי (לקוח ssh) ליציאה במחשב המרוחק (שרת ssh), אשר מועבר אז ליציאה במחשב היעד.

בסוג זה של העברה, לקוח ה- SSH מקשיב ביציאה נתונה ומנהג כל חיבור ליציאה ליציאה שצוינה בשרת ה- SSH המרוחק, אשר מתחבר ליציאה במחשב היעד. מכונת היעד יכולה להיות שרת SSH מרוחק או כל מכונה אחרת.

העברת יציאות מקומית משמשת לרוב לחיבור לשירות מרוחק ברשת פנימית כמו בסיס נתונים או שרת VNC.

בלינוקס, macOS ומערכות יוניקס אחרות ליצירת העברת יציאה מקומית מעבירים את אפשרות ה- -L ללקוח ssh :

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

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

  • LOCAL_PORT - ה- ip ומספר היציאה של המחשב המקומי. כאשר LOCAL_IP מושמט, לקוח ה- ssh נקשר על localhost. DESTINATION:DESTINATION_PORT - ה- IP או שם המארח והיציאה של מכונת היעד. SERVER_IP - משתמש ה- SSH המרוחק וכתובת ה- IP של השרת.

אתה יכול להשתמש בכל מספר יציאה שגדול מ- 1024 כ- LOCAL_PORT . יציאות שמספרן פחות מ- 1024 הן יציאות בעלות הרשאות וניתן להשתמש בהן רק על ידי root. אם שרת ה- SSH שלך מאזין ביציאה שאינה 22 (ברירת המחדל), השתמש באפשרות -p .

יש לפתור את שם מארח היעד משרת SSH.

נניח שיש לך שרת מסד נתונים של MySQL הפועל במחשב db001.host ברשת פנימית (פרטית), ביציאה 3306, הנגישה מה pub001.host המכונה, ואתה רוצה להתחבר באמצעות לקוח mysql המקומי של המחשב שלך לשרת מסד הנתונים. לשם כך תוכלו להעביר את החיבור כך:

ssh -L 3336:db001.host:3306 [email protected]

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

כעת אם db001.host:3306 את לקוח מסד הנתונים של המכונה המקומי שלך ל- 127.0.0.1:3336 , החיבור יועבר ל db001.host:3306 MySQL שרת דרך מכונת pub001.host שתפעל כשרת ביניים.

באפשרותך להעביר יציאות מרובות ליעדים מרובים בפקודה ssh יחידה. לדוגמה, יש לך שרת מסד נתונים אחר של MySQL הפועל במחשב db002.host ואתה רוצה להתחבר לשני השרתים מהלקוח המקומי שלך שתפעיל:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

כדי להתחבר לשרת השני תשתמש ב- 127.0.0.1:3337 .

כאשר מארח היעד זהה לשרת SSH במקום לציין את ה- IP של מארח היעד או את שם המארח, תוכלו להשתמש localhost .

נניח שאתה צריך להתחבר למחשב מרוחק דרך VNC הפועל באותו שרת והוא אינו נגיש מבחוץ. הפקודה בה תשתמש היא:

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

האפשרות -f אומרת לפקודת ssh לרוץ ברקע ו- -N לא לבצע פקודה מרחוק. אנו משתמשים localhost מכיוון ש- VNC ושרת SSH פועלים באותו מארח.

העברת יציאה מרחוק

העברת יציאה מרחוק היא ההפך משילוב יציאה מקומי. זה מאפשר לך להעביר יציאה במחשב המרוחק (שרת שרת) ליציאה במחשב המקומי (לקוח ssh), שמועבר אז ליציאה במחשב היעד.

בסוג זה של העברה, שרת ה- SSH מקשיב ביציאה נתונה ומנהג כל חיבור לאותה יציאה ליציאה שצוינה בלקוח ה- SSH המקומי, אשר מתחבר ליציאה במחשב היעד. מכונת היעד יכולה להיות המקומית או כל מכונה אחרת.

בלינוקס, macOS ומערכות יוניקס אחרות ליצירת העברת יציאה מרחוק מעבירים את האפשרות -R ללקוח ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

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

  • REMOTE_PORT - ה- IP ומספר היציאה בשרת ה- SSH המרוחק. REMOTE ריק פירושו שרת ה- SSH המרוחק יתחבר לכל הממשקים. DESTINATION:DESTINATION_PORT - ה- IP או שם המארח והיציאה של מכונת היעד. SERVER_IP - משתמש ה- SSH המרוחק וכתובת ה- IP של השרת.

שילוח נמל מקומי משמש לרוב למתן גישה לשירות פנימי למישהו מבחוץ.

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

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

הפקודה שלמעלה תגרום לשרת ה- ssh להאזנה ביציאה 8080 ומנהרה את כל התנועה מיציאה זו למחשב המקומי שלך ביציאה 3000 .

כעת המפתח the_ssh_server_ip:8080 שלך יכול להקליד את the_ssh_server_ip:8080 בדפדפן שלו ולהציג בתצוגה מקדימה את היישום המדהים שלך.

העברת יציאה דינמית

העברת יציאות דינמית מאפשרת לך ליצור שקע במחשב המקומי (לקוח ssh) המשמש כשרת proxy של SOCKS. כאשר לקוח מתחבר ליציאה זו החיבור מועבר למחשב המרוחק (שרת ssh), אשר מועבר ליציאה דינמית במחשב היעד.

בדרך זו, כל היישומים המשתמשים בפרוקסי ה- SOCKS יתחברו לשרת SSH והשרת יעביר את כל התעבורה ליעדו בפועל.

בלינוקס, macOS ומערכות יוניקס אחרות ליצירת העברת יציאה דינמית (SOCKS) מעבירות את אפשרות ה- -D ללקוח ssh :

ssh -D LOCAL_PORT SSH_SERVER

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

  • LOCAL_PORT - ה- ip ומספר היציאה של המחשב המקומי. כאשר LOCAL_IP מושמט, לקוח ה- ssh נקשר על localhost. SERVER_IP - משתמש ה- SSH המרוחק וכתובת ה- IP של השרת.

דוגמה אופיינית להעברת יציאה דינמית היא מנהרה של תנועת דפדפן האינטרנט דרך שרת SSH.

הפקודה הבאה תיצור מנהרת SOCKS ביציאה 9090 :

ssh -D 9090 -N -f [email protected]

לאחר הקמת המנהור תוכלו להגדיר את האפליקציה שלכם לשימוש בה. מאמר זה מסביר כיצד להגדיר את תצורת הדפדפן Firefox ו- Google Chrome לשימוש בפרוקסי ה- SOCKS.

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

הגדר מנהרת SSH במערכת Windows

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

  1. הפעל מרק והזן את כתובת ה- IP של שרת SSH בשדה Host name (or IP address) .

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

    הגדרת אימות מפתח ציבורי תאפשר לך להתחבר לשרת מבלי להזין סיסמה.

סיכום

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

אבטחת ssh