בתקשורת מחשבים, פורט (באנגלית: Port) הוא נקודת מעבר מידע ← מעין פתח דרכו יוצא מידע ו\או נכנס מידע.
הנושא מאד מורכב ויכול לבלבל ובמאמר זה אני מנסה לעשות לו מבוא פשטני המותאם לציבור כללי, לפי סדר הפרקים להלן.
מערכת פורטים
מערכת פורטים היא רכיב בכל כרטיס רשת שהוא רכיב חומרה בכלל מערכות המחשב הביתיות והתעשייתיות כיום ומאפשר חיבור של המחשב עם רשתות תקשורת שונות כגון רשת האינטרנט.
נכון לכתיבת מאמר זה, הסטנדרט בקרב יצרני מערכות מחשוב, הוא לייצר מערכות מחשב עם כרטיסי רשת המכילים לפחות שתי מערכות פורטים באורך שאינו יותר מ-16 ביטים כל אחת.
כלומר, תוצאת החישוב של 2 בחזקת 16 אשר הינה 65,536.
בהתאם לכך, כיום נפוצות ביותר שתי מערכות הפורטים להלן.
- מערכת TCP עם 65,535 כתובות פורטים
- מערכת UDP עם 65,536 כתובות פורטים
לאחר אתחול מערכת מחשב, מערכת הפעלה תשתמש במערכת הפורטים.
כתובת פורט
כתובת פורט מיוצגת במספר טבעי והיא בדרך כלל תהיה תואמת לפחות לפרוטוקול תקשורת מסוים (למשל TCP או UDP או שניהם ועוד מצבים אפשריים).
כאן יש טבלה של פורטים נפוצים ותאימה אפשרית לפרוטוקולים שונים לכל כתובת פורט.
לפחות במקרים מסוימים, שירות FTP מקבל בקשות העברת קבצים על כתובת הפורט 21 ומעביר את הקבצים על פורט 20 אך אם הסטנדרט אחר המידע יועבר בצורה אחרת.
כתובת פורט חלופית
כתובת פורט חלופית היא כתובת פורט שונה מכתובת פורט ברירת המחדל, עבור תוכנה מסוימת (עבור שירות תוכנתי מסוים).
לתוכנות שונות, כגון תוכנת שרת בפרוטוקול SSH ("שרת SSH"), ניתן לשנות את כתובת הפורט הדיפולטיבית לחלופית; כך למשל, אם כתובת הפורט הדיפולטיבית ל SSH היא 22 ניתן לשנותה לכל כתובת פורט פתוחה ממערכת פורטים נתונה עימה ניתן ליצור חיבורים ב SSH (כגון מערכת הפורטים TCP).
החלפת כתובת פורט מבוצעת בדרך כלל מקבצי התוכנה שלה. למשל, אמור להיות קובץ קונפיגורציה ראשי בו יוגדר לתוכנה לאיזו כתובת פורט להאזין.
כתובת פורט זו אמורה להיות פתוחה וללא כללי פילטור פורט שימנע עבודה סבירה עם התוכנה.
קבוצות כתובות פורטים
ניתן לחלק את סט הפורטים הנפוץ בגודל בערך 66,550 פורטים (הגודל המדויק תלוי בפרוטוקול תקשורת הכולל את מושג ה"פורט") לקבוצות שונות, לפי הקשר.
לפי הבנתי, ארגון IANA הגדיר את התקנים להלן ביחס למערכות הפורט השונות:
- 0-1023: פורטיי מערכת (System ports)
- 1024-49151: פורטיי משתמש (User ports)
- 49152-65535: פורטים פרטיים ו\או דינאמיים (Dynamic and/or Private ports) ; מכונים גם "פורטים אפמראליים" (Ephemeral ports)
לפחות במערכות הפעלה מסוימות (כגון מערכות הפעלה ממשפחת הלינוקס) שימוש בפורטים מתחת לפורט 1024 מצריך הרשאות root, שהוא סט הרשאות מקסימלי במערכת הפעלה.
אם יתקיים מצב זהה או דומה או לא, תלוי במפתחיי מערכת ההפעלה הספציפית.
כתובות פורט חשובות מאד
להלן מספר כתובות פורט נפוצות מאד. באופן כללי ניתן להשתמש בכל הפורטים להלן לפי כלליי פרוטוקול TCP ושימוש ניסיוני לפחות לפי כללי פרוטוקול UDP:
- 80: כתובת הפורט המשמש לחיבוריי HTTP (תעבורת מידע לפי כלליי פרוטוקול HTTP)
- 443: כתובת הפורט המשמש לחיבוריי HTTPS (חיבוריי HTTP מאובטחים) לפי כלליי פרוטוקול SSL/TLS כגון פתיחת אתר ווב בעזרת דפדפן ווב (או הורדת מידע מאתר דרך תוכנת ממשק משתמש שורת פקודה כגון curl); פורט זה משמש גם לתקשורת עם תוכנות המאפשרות שיתוף מסך כגון Skype ו Zoom
- 22: כתובת הפורט המשמש לחיבוריי SSH/SFTP
- 587: כתובת הפורט המשמש לחיבוריי SMTP המתאפיינים בתעבורת מידע מסוג אימייל; ניתן להשתמש בו בעקיפין דרך תוכנת דפדפן כגון אתר Hotmail או Gmail וכו'
- 3306: כתובת הפורט המשמש לחיבורים לבסיסי נתונים מסוג MySQL
- עוד כתובות פורטים נפוצים מאד הם כתובת הפורט 500 המשמש לתוכנות VPN client שונות וכן כתובת פורט 5938 (המשמש לתוכנות שליטה מרחוק ממערכת מחשב A על מערכת מחשב B)
התחברות דרך פורט
המונח התחברות דרך פורט (באנגלית: Connection through a port) משמש לתאר מצב בו מערכת מחשב אחת מתחברת עם מערכת מחשב אחרת, דרך פורט, לצורך תעבורת מידע.
התחברות דרך פורט בדרך כלל כרוכה בהחלפת מידע דו-כיוונית אך ככלל רק כזו שקשורה בפעולת ההתחברות ולא בשום נושא אחר; לאחר השלמת כל שלב של תהליך ההתחברות, ניתן יהיה להעביר מידע לפחות חד-כיוונית.
- העברת מידע חד-כיוונית יכולה להיות מנקודת קצה A לנקודת קצה B או ההפך
- איך מידע יעבור תלוי בפרוטוקול תקשורת הכולל את המושג פורט; בהתאם לכך דרך איזה פורט יעבור מידע ואיזה מידע תלוי בכללי פילטור פורט
מצב פורט
מצב פורט (באנגלית: Port status) מתאר האם תוכנה מסוימת מעבירה מידע דרך פורט או לא.
כשנאמר "פורט במצב האזנה" הכוונה היא ש"התוכנה מאזינה" או "התוכנה מקשיבה" ושמידע בהקשרה עובר דרכו.
(לא ש"הפורט מאזין" או ש"הפורט מקשיב" על תוכנה).
ברירת המחדל של פורט היא פתוח-ולא-בהאזנה אך בעזרת כללי פילטור ניתן לשנות את מצב הפורט כך שיהיה סגור כל הזמן ← בעזרת כללי פילטור פורט כך שאף פעם לא יהיה פתוח-בהאזנה.
אף תוכנה לא מאזינה על פורט סגור.
כללי פילטור פורט
כללי פילטור פורט הם כללים המוגדרים בתוכנת פיירוול (firewall) המטפלת בתקשורת מחשבים שמטרתם למנוע ממידע לעבור דרך פורטים באופן מלא או באופן חלקי (אם באופן חלקי אז לפי כללי סינון נקודתיים מאד).
בעזרת כללי פילטור ניתן למנוע כל מעבר חבילות מידע מוגדרות וגם להחזיר תשובה שפורט סגור או לגרום לכך שלא תוחזר כל תשובה.
מה ההבדל בין TCP/UDP לבין TCP/IP
לפני שאסביר את ההבדל בין TCP/IP לבין TCP/UDP אגיד שבשיח על רשתות תקשורת ה-TCP בשניהם זהה.
ההבדל הוא בכך שסט המונחים הראשון (TCP/IP) מתאר עבודה עם פורטים ועם רשת תקשורת מסוימת יחדיו, מסוג LAN או מסוג WAN, אבל בעיקר WAN-Internet וסט המונחים השני (TCP/UDP) מתאר עבודה עם פורטים לפי פרוטוקול TCP, לפי פרוטוקול UDP או לפי שניהם בו זמנית (הן ברשתות LAN והן ברשתות WAN).
הערות כלליות
- פורט מתורגם לעברית כ"פתחה".
- למערכת הפעלה שניונית ("וירטואלית") אשר נריץ על מערכת הפעלה ראשונית, יש מערכת פורטים משל עצמה התלויה בכרטיס רשת וירטואלי ודומה בהתנהגותה למערכת הפורטים של מערכת ההפעלה הראשונית; במקרה כזה גם כתובת האי פי שונה (מנגנון NAT יתרגם את כתובות ה IP האלה לכתובת IP ציבורית עצמאית אחת).