איך לבצע בדיקת איכות רשת, אבטחה ותיקול בלינוקס – חלק 12

A sound analysis of a computer network begins by understanding what are the available tools to perform the task, how to pick the right one(s) for each step of the way, and last but not least, where to begin.

זהו החלק האחרון של סדרת LFCE (Linux Foundation Certified Engineer), כאן נבחן כמה כלים ידועים לבדיקת ביצועים ולהגברת האבטחה של רשת, ומה לעשות כאשר הדברים לא הולכים כמצופה.

Linux Foundation Certified Engineer – Part 12
מציג את תוכנית התעודה של הקרן לינוקס

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

אילו שירותים רצים ומדוע?

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

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

חקירת חיבורי Socket עם ss

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

אך, במאמר זה נמקד במידע הקשור לאבטחת הרשת בלבד.

דוגמה 1: מציג את כל פתחי ה- TCP (סוקטים) הפתוחים בשרת שלנו

כל השירותים שפועלים על פורטים ברירת מחדלם (כמו http על 80, mysql על 3306) מוצגים לפי שמותיהם המתאימים. פורטים אחרים (מוסתרים כאן מסיבות פרטיות) מוצגים בצורה המספרית שלהם.

# ss -t -a
Check All Open TCP Ports

העמודה הראשונה מציגה את מצב ה-TCP, והעמודה השנייה והשלישית מציגות את כמות הנתונים שכרגע בתור לקבלה ושיגור. העמודות הרביעית והחמישית מראות את סוקט המקור והיעד של כל חיבור.
בנושא נוסף, כדאי לבדוק את RFC 793 כדי לרענן את הזיכרון שלך לגבי מצבי TCP אפשריים, מכיוון שעליך גם לבדוק את מספר ומצב החיבורים הפתוחים של TCP כדי להיות מודע להתקפות (D)DoS.

דוגמה 2: מציג את כל החיבורים הפעילים של TCP עם הטיימרים שלהם
# ss -t -o
Check all Active Connections

בפלט שמוצג לעיל, ניתן לראות כי ישנם 2 חיבורי SSH שהוקמו. אם תשים לב לערך של השדה השני של טיימר:, תגלה ערך של 36 דקות בחיבור הראשון. זאת הכמות של הזמן עד שהבדיקה הבאה לשמירה על החייאה תישלח.

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

Kill Active Process

לגבי החיבור השני, ניתן לראות כי הוא משמש כרגע (כפי שמוצג על ידי על).

דוגמה 3: סינון חיבורים לפי סוקט

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

# ss -tn sport = :80

התוצאה היא..

Filter Connections by Socket

הגנה נגד סריקת פורטים עם NMAP

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

A wise sysadmin needs to check how his or her systems are seen by outsiders, and make sure nothing is left to chance by auditing them frequently. That is called “defensive port scanning”.

דוגמה 4: הצגת מידע אודות פורטים פתוחים

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

# nmap -A -sS [IP address or hostname]

הפקודה לעיל תסרוק את המארח עבור זיהוי מערכת הפעלה וזיהוי גרסה, מידע על הפורטים, ומסלול מעקב (-A). בנוסף, -sS שולח סריקת TCP SYN, מונעת מ-NMAP להשלים את השלוש שלבי הקריאה של TCP ולכן בדרך כלל אין שרשורים במערכת היעד.

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

לדוגמה, הפלט של הפקודה לעיל הרצה נגד השרת הראשי של אוניברסיטה מקומית מחזיר את התוצאות הבאות (רק חלק מהתוצאה מוצג למען הקיצוניות):

Check Open Ports

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

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

דוגמה 5: הצגת מידע על פורט מסוים במערכת מקומית או מרוחקת
# nmap -p [port] [hostname or address]
דוגמה 6: הצגת מסלול עקבות (traceroute) וגילוי גרסת שירותים וסוג מערכת הפעלה, שם מארח
# nmap -A [hostname or address]
דוגמה 7: סריקת מספר פורטים או מארחים במקביל

ניתן גם לסרוק מספר פורטים (טווח) או תתי-רשתות, כך:

# nmap -p 21,22,80 192.168.0.0/24 

הערה: הפקודה לעיל סורקת את הפורטים 21, 22 ו-80 בכל המארחים בקטע הרשת הזה

ניתן לבדוק את דף העזרה (man page) לקבלת פרטים נוספים על איך לבצע סריקת פורטים מסוגים אחרים. Nmap הוא אכן כלי סריקת רשת עוצמתי וגמיש מאוד, וכדאי לך להכיר אותו היטב כדי להגן על המערכות שאתה אחראי עליהן מפני התקפות שמקורן בסריקת פורט זדונית שנעשית על ידי חוצנים.

Source:
https://www.tecmint.com/audit-network-performance-security-and-troubleshooting-in-linux/