כיצד לרשום יציאות פתוחות ב- Linux?

How List Open Ports Linux



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

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







במדריך זה, עיין כיצד לרשום יציאות פתוחות ב- Linux.



יציאות על לינוקס

הנמלים משמשים נקודת קצה של תקשורת. זהו מספר של 16 סיביות (0 עד 65535 עשרוני). למרות שהטווח גדול, לנוחות השימוש, היציאות מסווגות לשלוש קטגוריות. כל קטגוריה מסומנת כטווח ערך הנמל:



  • 0 עד 1023: אלה היציאות הידועות, הידועות גם בשם יציאות המערכת, השמורות לתהליכי מערכת המציעים מגוון רחב של שירותי רשת. כדי להתחבר ליציאה ידועה, תהליך חייב להיות בעל הרשאת משתמש-על.
  • 1024 עד 49151: אלה היציאות הרשומות, הידועות גם בשם יציאות המשתמש, המיועדות על ידי IANA לשירותים ספציפיים. על פי בקשה, תהליך עשוי להיות בעל גישה אליהם. במקרה של רוב המערכות, זה לא דורש שום הרשאת משתמש -על כדי להשתמש ביציאות אלה.
  • 49152 עד 65535: אלה היציאות הדינאמיות, הידועות גם בשם היציאות הפרטיות. לא ניתן לרשום יציאות אלה ב- IANA. יציאות אלה פתוחות לשימוש עבור שירותים פרטיים או מותאמים אישית והן עשויות להיות מוקצות באופן אוטומטי כנמלים חולפים (יציאות קצרות טווח המשמשות את ה- IP).

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





רשימת יציאות פתוחות

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

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



השיטות הבאות מוצגות ב- Ubuntu 20.04.1 LTS.

רשום פרוטוקולים ויציאות פתוחות מ /etc /services

קובץ /etc /services מכיל מידע אודות השירותים הפועלים כעת. זה קובץ גדול, כל כך מוכן להציף אותו.

$חתול /וכו/שירותים| פָּחוּת

רשום יציאות פתוחות באמצעות netstat

כלי netstat הוא כלי להצגת חיבורי רשת עבור TCP, טבלאות ניתוב וממשקי רשת שונים. הוא מציע גם סטטיסטיקות פרוטוקול רשת. באמצעות netstat, אנו יכולים לרשום את כל היציאות הפתוחות של המערכת.

הפעל את הפקודה הבאה netstat:

$netstat -אטו

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

  • ל : אומר ל- netstat להציג את כל השקעים
  • t : אומר ל- netstat לרשום יציאות TCP
  • u : אומר ל- netstat לרשום יציאות UDP

להלן וריאציה נוספת של הפקודה netstat:

$netstat -לנטו

בפקודה יש ​​שני דגלים חדשים. למה הם מתכוונים?

  • ה : אומר ל- netstat להדפיס רק את שקעי ההאזנה
  • נ : אומר ל- netstat להציג את מספר היציאה

כדי להציג את ה- PID של התהליך המשתמש ביציאה, השתמש בדגל -p:

$netstat -אינטופ

רשום יציאות פתוחות באמצעות ss

כלי ss הוא כלי עזר לחקר שקע. השימוש בו דומה ל- netstat.

כדי להציג את היציאות הפתוחות, הפעל את הפקודה ss הבאה:

$ss-לנטו

הדגלים דומים ל- netstat. גם הפונקציות שהם מתארים דומים למדי.

  • ה : אומר ל- ss להציג שקעי האזנה
  • נ : אומר שאסור לנסות לפתור שמות שירותים
  • t : אומר ל- ss להציג שקעי TCP
  • u : אומר ל- ss להציג שקעי UDP

רשום יציאות פתוחות באמצעות lsof

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

הפעל את הפקודה lsof הבאה:

$lsof-אני

כדי לקבל את היציאות הפתוחות של פרוטוקול ספציפי (TCP, UDP וכו ') ולאחר מכן הגדר אותו לאחר הדגל -i, השתמש ב:

$lsof-אני <נוהל>

רשום יציאות פתוחות באמצעות nmap

הכלי nmap הוא כלי רב עוצמה לחקר רשתות וסריקת אבטחה/יציאות. הוא יכול לדווח על כל היציאות הפתוחות במערכת.

כדי להציג את יציאות ה- TCP הפתוחות, הפעל את הפקודה הבאה nmap. כאן, כתובת ה- IP היא של המחשב המארח:

$סודו nmap -רחוב -p-מארח מקומי

כאן, ישנם שני חלקים של טיעון הפקודה.

  • -רחוב : חלק זה אומר ל- nmap לסרוק אחר יציאות TCP.
  • -p- : זה אומר ל- nmap לסרוק את כל 65535 היציאות. אם לא נעשה בו שימוש, nmap יסרוק כ -1,000 יציאות כברירת מחדל.

אם אתה צריך לרשום את יציאות UDP הפתוחות, הפעל את הפקודה הבאה nmap:

$סודו nmap -שֶׁלָה -p-מארח מקומי

כדי לקבל את יציאות ה- TCP וה- UDP הפתוחות, השתמש בפקודה הבאה:

$סודו nmap -P N -רחוב -שֶׁלָה -p-מארח מקומי

רשום יציאות פתוחות באמצעות netcat

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

הפקודה הבאה של netcat תסרוק את היציאה מ -1 עד 1000. פקודת netcat תבצע את הסריקה בפרוטוקול TCP כברירת מחדל:

$nc-עם -vמארח מקומי1-1000

ניתן להרחיב אותו גם לרשימת כל היציאות האפשריות:

$nc-עם -vמארח מקומי1-65535

בואו נעשה פירוט מהיר של הדגלים.

  • עם : אומר ל- netcat לסרוק רק יציאות פתוחות מבלי לשלוח נתונים
  • v : אומר ל- netcat לרוץ במצב מילולי

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

$nc-עם -vמארח מקומי0-65535 2> &1 | אחיזההצליח

אם ברצונך לבצע את הסריקה בפרוטוקול UDP, הוסף את הדגל -u.

$nc-עם -v -uמארח מקומי0-65535 2> &1 | אחיזההצליח

מחשבות אחרונות

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

מחשוב שמח!