בקצרה, נתאר פורטים בתוך רשת המחשבים ובהמשך, נדבר על איך נוכל לרשום כל פורט פתוח בלינוקס.
ניתן להגדיר פורט כישות הגיונית במונחי רשתות מחשבים ותוכנה.
הוא משמש כנקודת קצה לתקשורת לזיהוי תהליך או יישום נתון ב- מערכת הפעלה לינוקס . נמל הוא א 16 סיביות (o עד 65535) מספר המבדיל אפליקציה בודדת מאחרות במערכות קצה שונות.
שניים מפרוטוקולי התחבורה באינטרנט המפורסמים ביותר, User Datagram Protocol (UDP) ו פרוטוקול בקרת שידור (TCP) ופרוטוקולים אחרים מיישמים מספרי יציאה עבור הפעלות רבות של תקשורת (מספרי יציאות יעד ומקור בצירוף כתובת ה-IP של היעד והמקור).
שילוב של פרוטוקול, יציאה וכתובת IP כמו TCP/UDP נקרא א שֶׁקַע. יש צורך שלכל השירותים יהיה שקע ספציפי.
פונקציית lambda java
קטגוריות של נמל
יציאות אלו מחולקות לשלוש קטגוריות לנוחות השימוש מכיוון שמגוון היציאות גדול. כל הקטגוריות מסומנות כטווח ערכי היציאה:
0-1023: הנמלים האלה הם ידוע היטב והתקשר 'מערכת' נמלים. הם שמורים לתהליכים של המערכת המספקים מגוון עצום של שירותי רשת. לתהליך צריך להיות הרשאות של משתמש-על לכריכה עם כל 'ידוע היטב' נמל.
1024-49151: הנמלים האלה הם 'רשום' וקרא ל 'מִשׁתַמֵשׁ' נמלים. הם מיועדים באמצעות IANA לשירותים ייחודיים. תהליך עשוי לקבל אימות בפניהם על פי בקשה. זה לא צריך שום הרשאה של משתמש-על כדי להשתמש ביציאות אלה במקרה של רוב המערכות.
49152-65535: הנמלים האלה הם 'דִינָמִי' וקרא ל 'פְּרָטִי' נמלים. אי אפשר להירשם איתם IANA. סוגים אלה של יציאות פתוחים לשימוש עבור שירותים מותאמים ופרטיים ועשויים להיות מוקצים גם כיציאות ארעיות (הידועות בשם קצרי מועד יציאות המוחלות על ידי IP) באופן אוטומטי.
יש כל כך הרבה דרכים לבדיקת יציאות פתוחות בלינוקס. כברירת מחדל, יציאה תיסגר אלא אם יישום כלשהו יחיל אותה. יש להקצות יציאה לתהליך או שירות אם הוא פתוח.
פתח את רשימת היציאות
קל יותר לדעת איזו יציאה נמצאת בשימוש במקום איזו יציאה פתוחה. לפיכך, הסעיף שלהלן יספק שיטות לרישום כל יציאה שנמצאת בשימוש כרגע.
קיימים מספר כלים למשימה זו בלינוקס. רובם זמינים מובנה בהפצת לינוקס.
לדעת איזו יציאה פתוחה כעת יכול להיות מועיל בתרחישים רבים. ניתן לקבוע יציאה ייעודית עבור יישום מובטח. יציאה פתוחה עשויה להוות אינדיקציה חזקה של חדירה לרשת.
השיטות משמשות על אובונטו 20.04 LTS המוזכרים להלן.
רשום יציאות ופרוטוקולים פתוחים באמצעות קובץ /etc/services
הקובץ, כלומר, /etc/services מכיל פרטים על השירותים הפועלים (כרגע). זה קובץ גדול.
$cat /etc/services | less
רשום יציאות פתוחות עם netstat
ה netstat ניתן לתאר את הכלי ככלי להצגת חיבורי רשת עבור טבלאות ניתוב, TCP ומספר ממשקי רשת. כמו כן, זה מקל על סטטיסטיקות של פרוטוקול רשת. נוכל לרשום כל יציאה פתוחה של מערכת על ידי שימוש בכלי netstat.
נוכל לבצע את הפקודה הבאה:
$ netstat -atu
בואו נסביר במהירות את הפירוט של כל דגל שהשתמשנו בו בפקודה לעיל:
1. א: דגל זה מודיע ל-netstat על הצגת כל שקע.
2. t: דגל זה מודיע ל-netstat על רישום יציאות TCP.
3. ב: דגל זה מודיע ל-netstat על רישום יציאות UDP.
ה netstat לפקודה יש וריאציה נוספת המוזכרת להלן:
$ netstat -lntu
שני דגלים חדשים בפקודה לעיל, אשר מוסברת כדלקמן:
1. ל: דגל זה מודיע ל-netstat להדפסת שקעי ההאזנה בלבד.
2. נ: דגל זה מודיע ל-netstat על הצגת מספר היציאה.
אנחנו יכולים להשתמש בדגל, כלומר, '-p' כדי להציג את תהליך PID שמשתמש בכל יציאה.
$ netstat -lntup
בדוק יציאות פתוחות באופן מקומי
הפקודה netstat זמינה בכל מערכת הפעלה של מחשב לניטור חיבורי רשת. הפקודה שלהלן מחילה netstat כדי להציג כל יציאת האזנה עם פרוטוקול TCP:
netstat -lt
הבה נגדיר בקצרה את הדגלים הקיימים בפקודה לעיל:
1. -ל: זה מפרט את יציאות ההאזנה.
2. -t: זה מציין את פרוטוקול TCP.
התוצאה מסודרת היטב בעמודות המציגות את הפרוטוקול, ידידותית לאדם, מנות שנשלחו והתקבלו, מצב יציאה, כתובות IP מרוחקות ומקומיות.
אם נשנה את פרוטוקול TCP עבור פרוטוקול UDP, הפלט יציג יציאות פתוחות בלבד. התוצאה תוצג מבלי לתאר את המצב עקב סתירה לפרוטוקול TCP.
netstat -lu
אנו יכולים להתעלם מתיאור פרוטוקולים ולהחיל רק את האפשרות --האזין או -l לקבלת פרטים על כל יציאה שמאזינה בחופשיות של הפרוטוקול:
netstat --listen
האפשרות שלמעלה תציג את הפרטים עבור פרוטוקולי שקע Unix, UDP ו-TCP.
כל דוגמה לעיל מציגה כיצד להדפיס את הפרטים דרך יציאות האזנה ללא חיבורים מורשים. הפקודות שלהלן מציגות כיצד להציג יציאות האזנה וחיבורים מורשים.
netstat -vatn
איפה:
1. -ב: הוא משמש למילה מילולית.
2. -א: הוא מציג חיבורים פעילים.
3. -t: הוא מציג חיבורי tcp.
4. -n: הוא מציג יציאות (ערך מספרי).
נניח שאנו מזהים תהליך חשוד במערכת שלנו ואנו רוצים לבדוק יציאות קשורות אליו. אנו יכולים להשתמש בפקודה lsof המשמשת לרישום קבצים פתוחים הקשורים לתהליכים.
lsof -i 4 -a -p
איפה,
1. -i: הוא מפרט את הקבצים המשתפים פעולה עם האינטרנט, ה 6 אפשרות קיימת עבור IPv6, וה 4 אפשרות הוראות להדפסה בלבד IPv4.
2. -א: זה מורה על התוצאה להיות נתת.
3. -p: הוא מציין את מספר ה-PID של התהליך שאנו רוצים לבדוק.
תמונת סימון
רשום יציאות פתוחות עם ss
ה ss ניתן לציין את הכלי כשירות לחקור את השקע. השימוש בכלי זה זהה ל- netstat פקודה.
אנו יכולים להריץ את הפקודה שלהלן לרשימת היציאות הפתוחות:
$ ss -lntu
הדגלים לעיל זהים ל- netstat פקודה. הפונקציות המתוארות על ידי הכלי ss הן די זהות גם כן.
1. ל: דגל זה מודיע ל-ss על הצגת שקעי ההאזנה.
2. נ: דגל זה מודיע ל-ss לא לנסות לסכם שמות שירותים.
3. t: דגל זה מודיע ל-ss עבור שקעי TCP לתצוגה.
4. ב: דגל זה מודיע ל-ss להצגת שקעי UDP.
רשום יציאות פתוחות עם lsof
ניתן להשתמש בפקודה lsof לרישום קבצים פתוחים. אבל, זה יכול לשמש גם כדי להציג את היציאות הפתוחות.
נוכל לבצע את הפקודה הבאה:
$ lsof -i
לקבלת היציאות הפתוחות של פרוטוקול מסוים (UDP, TCP וכו'), ציין זאת לאחר השימוש ב- '-אני' דגל, נוכל לבצע את הפקודה הבאה:
$ lsof -i
רשום יציאות פתוחות עם nmap
ניתן להגדיר את הפקודה nmap כפקודה חזקה עבור סריקת יציאות/אבטחה וחקר רשת. זה גם יכול לדווח על כל יציאה פתוחה בתוך המערכת.
אנו יכולים לבצע את הפקודה הבאה לרשימת יציאות ה-TCP הפתוחות.
$ sudo nmap -sT -p- localhost
ישנם שני חלקים של פקודה זו המוזכרת לעיל:
1. -st: זה מודיע לכלי nmap לסריקה TCP נמלים.
2. -p-: זה מודיע לכלי nmap לסריקת כל 65535 נמלים. כלי nmap יסרוק 1000 יציאות רק כברירת מחדל אם לא נעשה בהן שימוש.
אם נצטרך לרשום את היציאות הפתוחות של UDP, נוכל לבצע את הפקודה הבאה:
$ sudo nmap -sU -p- localhost
אנו יכולים גם לבצע את הפקודה הבאה לקבלת שני יציאות UDP ו-TCP:
$ sudo nmap -n -PN -sT -sU -p- localhost
רשום יציאות פתוחות עם netcat
ניתן לתאר את הכלי netcat כשירות שורת פקודה לקריאה וכתיבה של נתונים על פני חיבורי רשת רבים בפרוטוקולי UDP ו-TCP. כמו כן, ניתן להשתמש בו כדי לרשום יציאות פתוחות. כלי זה יכול ליישם בדיקות על יציאה מסוימת או על מגוון יציאות.
פקודת netcat למטה משמשת לסריקת היציאה ממנה 1-1000. כברירת מחדל, הוא יישם את הסריקה בפרוטוקול TCP:
$ nc -z -v localhost 1-1000
כמו כן, ניתן להרחיב אותו לכל הרשימה של יציאות מסוימות:
$ nc -z -v localhost 1-65535
בואו נעשה פירוט של הדגלים האלה במהירות.
1. מ: זה מודיע לפקודת netcat לסריקת יציאות פתוחות בלבד, ללא העברת נתונים.
2. ב: זה מודיע לפקודת netcat להפעלה במצב מילולי.
להתחבר ל-Java של מסד נתונים
נוכל לסנן את התוצאה בעזרת grep עבור מונח 'הצליח' לקבלת רק את היציאות הפתוחות דרך רשימה זו.
$ nc -z -v 127.0.0.1 20-80 | grep succeeded
אם ברצוננו ליישם את הסריקה על פרוטוקול UDP, ה. אנחנו יכולים לכלול את '-ב' דֶגֶל.
$ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded