Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)
תוכן עניינים:
- מה זה נמל פתוח
- בדוק פורטים פתוחים באמצעות
nmap
- בדוק יציאות פתוחות באמצעות
netcat
- בדוק פתח יציאות באמצעות התקן פסאודו Bash
- סיכום
בין אם אתה פותר בעיות בקישוריות רשת או מגדיר תצורת חומת אש אחד הדברים הראשונים שיש לבדוק הוא אילו יציאות נפתחות בפועל במערכת שלך.
מאמר זה מתאר כמה גישות כדי לברר אילו יציאות נפתחות מבחוץ במערכת הלינוקס שלך.
מה זה נמל פתוח
יציאת האזנה היא יציאת רשת שאפליקציה מקשיבה לה. אתה יכול לקבל רשימה של יציאות ההאזנה במערכת שלך על ידי שאילתת מחסנית הרשת עם פקודות כגון
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
.
כיצד לבדוק אם יציאות האזנה בלינוקס (יציאות בשימוש)
מאמר זה מסביר כיצד לגלות את היציאות שבשימוש ואילו שירותים מקשיבים לאילו יציאות המשתמשות בפקודות netstat, ss ו- lsof. ההוראות חלות על כל מערכות ההפעלה מבוססות לינוקס ו- Unix כמו macOS.
כיצד לבדוק שטח דיסק בלינוקס באמצעות הפקודה df
כמה שטח נותר לי בכונן הקשיח? במערכות מבוססות לינוקס תוכלו להשתמש בפקודה df כדי לקבל דוח מפורט על השימוש בשטח הדיסק במערכת.
כיצד לבדוק את גרסת הגרעין בלינוקס
הגרעין הוא מרכיב הליבה של מערכת הפעלה. במדריך זה נראה לך מספר דרכים שונות לגלות איזו גרסה של גרעין לינוקס פועלת במערכת שלך.