מאגר המידע הוראות פשוטות לעבודה עם שירות Profitserver
ראשי מאגר המידע הגדרת חומת אש בלינוקס

הגדרת חומת אש בלינוקס


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

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

הגדרת חומת אש בלינוקס

Firewalld (Firewall Daemon) היא תוכנית לניהול חומת האש במערכות הפעלה לינוקס. הוא מספק ממשק משתמש להגדרת חוקי חומת אש, התרת או חסימת חיבורים של יישומי רשת. הוא מותקן מראש כברירת מחדל ברוב הפצות השרת. אם Firewalld אינו מותקן מראש, ניתן להתקין אותו באופן עצמאי מהמאגרים הרשמיים של ההפצה.

עבור מערכות Red Hat (כגון RHEL, CentOS, Fedora) ההתקנה מתבצעת עם הפקודה:

yum install firewalld

עבור דביאן/אובונטו:

apt-get install firewalld

לאחר ההתקנה, ניתן להפעיל ולהפעיל אותו מיד עם הפקודה:

systemctl start firewalld

לאחר מכן, עליך להוסיף את השירות להפעלה:

systemctl enable firewalld
הוספת חומת אש בטעינה אוטומטית של לינוקס

בשלב זה, אנו ממליצים להשבית את ufw, שכן השימוש בו-זמני בכלי זה עם חומת אש או iptables אינו מומלץ. בדוק את המצב:

systemctl status ufw
בודק את ufw linux

כדי לעצור את זה, הזן את הפקודה:

systemctl stop ufw

לביטול מלא:

ufw disable

לאחר פעולות אלה, תוכל להמשיך להגדיר חומת אש.

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

firewall-cmd --get-zones

בדרך כלל, 4 אזורים עיקריים משמשים:

  1. הציבור: אזור זה מיועד לרשתות שאתה מחשיב כלא בטוחות;
  2. פְּרָטִי: חל על רשתות ביתיות או חיבורי רשת מהימנים אחרים;
  3. פנימי: משמש עבור רשתות פנימיות, כגון אלה בתוך ארגון או רשת ארגונית;
  4. DMZ: אזור זה הוא המקום בו ממוקמים בדרך כלל שרתים שאמורים להיות נגישים מהאינטרנט.

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

firewall-cmd --permanent --new-zone=nameyourzone

לאחר ההוספה, נדרשת טעינה מחדש:

firewall-cmd --reload

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

firewall-cmd --permanent --delete-zone=nameyourzone

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

firewall-cmd --zone=public --add-service=name

איפה שם הוא שם השירות. לדוגמה, כדי לאפשר תעבורה עבור Apache:

firewall-cmd --zone=public --add-service=http

כדי להגדיר יציאות מותרות, השתמש בפקודה:

firewall-cmd --zone=public --add-port=number/protocol

לדוגמה, יציאת 22 הסטנדרטית עבור SSH תיראה כך:

firewall-cmd --zone=public --add-port=22/tcp

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

firewall-cmd --zone=public rule

לדוגמה, כדי לאפשר תעבורה נכנסת מכל מקור ליציאה 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

כדי להסיר כלל:

firewall-cmd --permanent --remove-rule=rule_specification

איפה לשלוט הוא סוג הכלל (למשל, יציאה, שירות, חוק עשיר וכו'), ו כלל_מפרט הוא המפרט של הכלל עצמו.

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

firewall-cmd --runtime-to-permanent

כדי להחיל שינויים:

firewall-cmd --reload

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

firewall-cmd --list-all
חוקי לינוקס של חומת אש

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

journalctl -u firewalld

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

firewall-cmd --help

הגדרת iptables בלינוקס

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

iptables -V

אם הכלי אינו מותקן, יהיה צורך להתקין אותו. הפקודה להתקנה באובונטו, דביאן:

apt install iptables

עבור מערכות Red Hat (למשל, CentOS, Fedora):

yum install iptables

הפקודה להפעלה לאחר ההתקנה:

systemctl start iptables

כדי להוסיף להפעלה, בצע:

systemctl enable iptables

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

iptables -t table action chain additional_parameters

בואו נעמיק בכל פריט.

ל-Iptables יש ארבע טבלאות עיקריות: filter, nat, mangle ו-raw. כל אחת מהן מיועדת לעיבוד סוגים מסוימים של מנות ויש לה שרשראות חוקים משלה:

  1. לסנן: זוהי הטבלה הנפוצה ביותר, המכילה כללי סינון מנות. הוא משמש לקבלת החלטות אם לאפשר או לדחות מנות.
  2. נת: טבלה זו משמשת לשינוי כתובות רשת ויציאות במנות. הוא משמש לעתים קרובות להגדרת מסיכות (NAT).
  3. מִגהָצָה: בטבלה זו, אתה יכול לשנות כותרות מנות. הוא משמש לפעולות מנות מיוחדות, כגון סימון.
  4. חי: טבלה זו משמשת להגדרת כללים החלים לפני שהם עוברים דרך מערכת מעקב החיבורים. הוא משמש בדרך כלל להגדרת כללים שאסור לשנות על ידי מערכת המעקב, כגון שחרור מנות מכתובות מסוימות.

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

  1. קלט (נכנס). הכללים בשרשרת זו קובעים מה לעשות עם מנות נכנסות.
  2. פלט (יוצא). שרשרת זו חלה על כל החבילות שהמחשב שלך שולח להתקנים אחרים או מחשבים ברשת.
  3. FORWARD (העברה). הכללים בשרשרת זו מציינים מה לעשות עם מנות המועברות.

לבסוף, לכל שרשרת יש איזושהי פעולה (מטרה). בפועל, נעשה שימוש ב-5 פעולות עיקריות:

  1. מסכים: אפשר לחבילה לעבור דרך חומת האש.
  2. DROP: דחה את החבילה והשליך אותה ללא כל תגובה.
  3. דחה: דחה את החבילה ושלח לשולח הודעת שגיאה ICMP.
  4. LOG: רישום את החבילה ביומן המערכת ובצע פעולה נוספת (למשל, קבל או DROP).
  5. לַחֲזוֹר: הפסק לבדוק את הכללים בשרשרת הנוכחית וחזור לשרשרת השיחות (אם רלוונטי).

כדי להתחיל את ההגדרה, פתח את רשימת הכללים הקיימים עם הפקודה:

iptables -L
הגדרת חומת אש בלינוקס

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

שַׁרשֶׁרֶת קלט:

  1. אפשר תעבורה נכנסת באמצעות פרוטוקול TCP ביציאה 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. אפשר תעבורה נכנסת באמצעות פרוטוקול UDP ביציאה 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. חסום תנועה נכנסת מכתובת IP ספציפית:

iptables -A INPUT -s 192.168.1.100 -j DROP

שַׁרשֶׁרֶת תפוקה:

  1. אפשר תעבורה יוצאת באמצעות פרוטוקול TCP ביציאה 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. אפשר תעבורה יוצאת באמצעות פרוטוקול UDP ביציאה 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. חסום תעבורה יוצאת ליציאה ספציפית (לדוגמה, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

שַׁרשֶׁרֶת קָדִימָה:

  1. חסום תעבורה מועברת מטווח ספציפי של כתובות IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. חסום העברת מנות מממשק רשת ספציפי:

iptables -A FORWARD -i eth1 -j DROP

3. הגבל את מספר החיבורים בו-זמנית עבור יציאה ספציפית (בדוגמה זו, 10 חיבורים לדקה ביציאה 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

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

iptables -h
רשימת פקודות ההתקנה של iptables linux

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

iptables -L
בדיקת כללי לינוקס של iptables

כדי למחוק כלל ספציפי, השתמש בפקודה:

iptables -D chain rule_number

לדוגמה, אם ברצונך למחוק כלל מספר 1 משרשרת INPUT, הפקודה תיראה כך:

iptables -D INPUT 1

כדי למחוק את כל הכללים בפקודה אחת:

iptables -F

הערה חשובה: כללי iptables אינם נשמרים באופן אוטומטי לאחר אתחול המערכת או השירות. כדי לשמור את הכללים, יש להוסיף אותם לקובץ תצורה ולשחזר אותם לאחר אתחול מחדש. ה iptables-שמור ו iptables-restore כלי עזר יכולים לעזור בזה. כדי לשמור את הכללים, הזן את הפקודה:

iptables-save > /etc/iptables/rules.v4

זה שומר את כללי iptables הנוכחיים בקובץ rules.v4. כדי לשחזר לאחר אתחול מחדש, הזן:

iptables-restore < /etc/iptables/rules.v4

פקודה זו משחזרת את הכללים מהקובץ rules.v4.

סיכום

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

❮ מאמר קודם משתמשי לינוקס: ניהול והרשאות
המאמר הבא ❯ אבחון עומס שרת

שאל אותנו לגבי VPS

אנחנו תמיד מוכנים לענות על שאלותיכם בכל שעה ביום ובלילה.