אנדרואיד

כיצד לבדוק (לסרוק) יציאות פתוחות בלינוקס

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)

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

Anonim

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

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

מה זה נמל פתוח

יציאת האזנה היא יציאת רשת שאפליקציה מקשיבה לה. אתה יכול לקבל רשימה של יציאות ההאזנה במערכת שלך על ידי שאילתת מחסנית הרשת עם פקודות כגון ss , netstat או lsof . כל יציאת האזנה יכולה להיות פתוחה או סגורה (סינון) באמצעות חומת אש.

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

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

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

בדוק פורטים פתוחים באמצעות nmap

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

אם קיים, nmap צריך להיות הכלי הראשון שלך בכל מה שקשור לסריקת יציאות. מלבד סריקת יציאות, nmap יכול גם לזהות כתובת מק, סוג מערכת הפעלה, גרסאות גרעין ועוד.

הפקודה הבאה שהונפקה מהקונסולה קובעת אילו יציאות מאזינות לחיבורי TCP מהרשת:

sudo nmap -sT -p- 10.10.8.8

ה- -sT מורה ל- nmap לסרוק יציאות TCP ו- -p- לסרוק את כל 65535 היציאות. אם -p- לא נעשה שימוש ב- nmap יסרוק רק 1000 יציאות.

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

הפלט שלמעלה מראה שרק יציאות 22 , 80 ו- 8069 נפתחות במערכת היעד.

כדי לחפש יציאות UDP השתמש -sU -sT :

sudo nmap -sU -p- 10.10.8.8

לקבלת מידע נוסף, בקר בדף nmap man וקרא על כל האפשרויות החזקות האחרות של הכלי הזה.

בדוק יציאות פתוחות באמצעות netcat

Netcat (או nc ) הוא כלי שורת פקודה שיכול לקרוא ולכתוב נתונים על חיבורי רשת, באמצעות פרוטוקולי TCP או UDP.

באמצעות netcat תוכלו לסרוק יציאה יחידה או טווח יציאה.

לדוגמה לסריקת יציאות TCP פתוחות במחשב מרוחק עם כתובת IP 10.10.8.8 בטווח 20-80 , תשתמש בפקודה הבאה:

nc -z -v 10.10.8.8 20-80

האפשרות -z אומרת ל- nc לסרוק יציאות פתוחות בלבד, מבלי לשלוח נתונים כלשהם וה- -v הוא למידע רב יותר.

הפלט ייראה כך:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

כדי לחפש יציאות UDP העבירו את אפשרות -ה לפקודה nc :

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

בדוק פתח יציאות באמצעות התקן פסאודו Bash

דרך נוספת לבדוק אם יציאה מסוימת פתוחה או סגורה היא באמצעות מעטפת Bash /dev/tcp/.. או /dev/udp/.. pseudo התקן.

בעת ביצוע פקודה ב- /dev/$PROTOCOL/$HOST/$IP פסאודו-התקן, Bash יפתח חיבור TCP או UDP למארח שצוין ביציאה שצוינה.

ההצהרה הבאה if..else תבדוק אם היציאה 443 ב- kernel.org פתוחה:

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

כיצד פועל הקוד למעלה?

פסק הזמן הקבוע ברירת המחדל בעת חיבור ליציאה באמצעות מכשיר פסאודו הוא עצום ולכן אנו משתמשים בפקודת timeout כדי להרוג את פקודת הבדיקה לאחר 5 שניות. אם נוצר החיבור ליציאת kernel.org 443 , פקודת הבדיקה תחזור לאמיתה.

אתה יכול גם להשתמש בלולאה for כדי לבדוק אם טווח יציאה:

for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done

הפלט ייראה כך:

port 22 is open port 80 is open

סיכום

הראינו לכם מספר כלים בהם תוכלו להשתמש כדי לסרוק יציאות פתוחות. ישנם גם כלים ושיטות אחרות לבדיקת יציאות פתוחות, לדוגמה, באפשרותך להשתמש במודול socket Python, curl , telnet או wget .

מסוף