אנדרואיד

כיצד להגדיר חומת אש עם חומת אש ב- centos 7

Настройка firewall в CentOS 7 (firewalld)

Настройка firewall в CentOS 7 (firewalld)

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

Anonim

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

FirewallD הוא פיתרון חומת אש מלא שמנהל את כללי ה- iptables של המערכת ומספק ממשק D-Bus להפעלה עליהם. החל מ- CentOS 7, FirewallD מחליף iptables ככלי ברירת המחדל של ניהול חומת האש.

במדריך זה אנו מראים לך כיצד להגדיר חומת אש עם FirewallD במערכת CentOS 7 שלך ולהסביר לך את המושגים הבסיסיים של FirewallD.

תנאים מוקדמים

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

מושגי חומת אש בסיסיים

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

ניתן להגדיר ולנהל את firewall-cmd בעזרת כלי שורת הפקודה של firewall-cmd .

אזורי חומת אש

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

להלן האזורים המסופקים על ידי FirewallD שהוזמנו על פי רמת האמון של האזור מבלתי אמון לאמון:

  • ירידה: כל החיבורים הנכנסים מושמטים ללא כל הודעה. רק חיבורים יוצאים מותרים. חסום: כל החיבורים הנכנסים נדחים באמצעות הודעה icmp-host-prohibited על icmp6-adm-prohibited עבור IPv4 ו- icmp6-adm-prohibited עבור IPv6n. רק חיבורים יוצאים מותרים. ציבורי: לשימוש באזורים ציבוריים לא מהימנים. אינך סומך על מחשבים אחרים ברשת, אך אתה יכול לאפשר חיבורים נכנסים שנבחרו. חיצוני: לשימוש ברשתות חיצוניות עם הפעלת מסכות NAT כאשר המערכת שלך פועלת כשער או נתב. מותר להשתמש רק בחיבורים נכנסים שנבחרו. פנימי: לשימוש ברשתות פנימיות כאשר המערכת שלך פועלת כשער או נתב. מערכות אחרות ברשת מהימנות בדרך כלל. מותר להשתמש רק בחיבורים נכנסים שנבחרו. dmz: משמש למחשבים שנמצאים באזור המפורז שלך עם גישה מוגבלת לשאר הרשת שלך. מותר להשתמש רק בחיבורים נכנסים שנבחרו. עבודה: משמש למכונות עבודה. בדרך כלל מהימנים על מחשבים אחרים ברשת. מותר להשתמש רק בחיבורים נכנסים שנבחרו. בית: משמש למכונות ביתיות. בדרך כלל מהימנים על מחשבים אחרים ברשת. מותר להשתמש רק בחיבורים נכנסים שנבחרו. מהימן: כל חיבורי הרשת מתקבלים. סמוך על כל המחשבים ברשת.

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

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

הגדרות קבע של חומת אש והגדרות קבועות

חומת האש משתמשת בשתי מערכות תצורה מופרדות, זמן ריצה ותצורה קבועה.

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

כברירת מחדל, בעת ביצוע שינויים בתצורת חומת האש באמצעות כלי השירות של firewall-cmd ה- firewall-cmd , השינויים מוחלים על תצורת זמן הריצה. כדי להפוך את השינויים לקבועים עליך להשתמש באפשרות --permanent .

התקנה והפעלה של FirewallD

  1. חומת האש מותקנת כברירת מחדל ב- CentOS 7, אך אם היא לא מותקנת במערכת שלך, אתה יכול להתקין את החבילה על ידי הקלדה:

    sudo yum install firewalld

    שירות חומת האש מושבת כברירת מחדל. אתה יכול לבדוק את מצב חומת האש באמצעות:

    sudo firewall-cmd --state

    כדי להפעיל את שירות FirewallD ולהפעיל אותו בסוג האתחול:

    sudo systemctl start firewalld sudo systemctl enable firewalld

עבודה עם אזורי חומת אש

לאחר הפעלת השירות FirewallD לראשונה, האזור public מוגדר כאזור ברירת מחדל. ניתן להציג את אזור ברירת המחדל על ידי הקלדה:

sudo firewall-cmd --get-default-zone

public

כדי לקבל רשימה של כל האזורים הזמינים, הקלד:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

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

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

התפוקה שלמעלה מגלה לנו ששני הממשקים eth0 ו- eth1 מוקצים לאזור הציבורי.

ניתן להדפיס את הגדרות תצורת האזור באמצעות:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

מהפלט שלמעלה, אנו יכולים לראות שהאזור הציבורי פעיל ומוגדר כברירת מחדל, ומשמש גם את ממשקי eth0 וגם eth1 . כמו כן, הקשרים הקשורים ללקוח DHCP ו- SSH מותרים.

sudo firewall-cmd --list-all-zones

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

שינוי אזור ממשק

ניתן לשנות את אזור הממשק בקלות על ידי שימוש באפשרות - --zone בשילוב עם --change-interface . הפקודה הבאה תקצה את ממשק eth1 לאזור העבודה:

sudo firewall-cmd --zone=work --change-interface=eth1

אמת את השינויים על ידי הקלדה:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

שינוי אזור ברירת המחדל

לשינוי אזור ברירת המחדל, השתמש --set-default-zone ואחריו שם האזור שברצונך להגדיר כברירת מחדל.

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

sudo firewall-cmd --set-default-zone=home

אמת את השינויים באמצעות:

sudo firewall-cmd --get-default-zone

home

פתיחת נמל או שירות

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

כדי לקבל רשימה של כל סוגי השירותים המוגדרים כברירת מחדל:

sudo firewall-cmd --get-services

תוכל למצוא מידע נוסף על כל שירות על ידי פתיחת קובץ ה-.xml המשויך בספריית /usr/lib/firewalld/services . לדוגמה, שירות HTTP מוגדר כך:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

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

sudo firewall-cmd --zone=public --add-service=http אם אתה משנה את אזור ברירת המחדל, תוכל --zone את האפשרות - אזור.

כדי לוודא שהשירות התווסף בהצלחה השתמש באפשרות - --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

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

השתמש ב - --list-services יחד עם האפשרות --permanent כדי לאמת את השינויים שלך:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

התחביר להסרת השירות זהה להוספת שירות. פשוט השתמש --remove-service במקום --remove-service --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

הפקודה שלמעלה מסירה את שירות http מהתצורה הקבועה של האזור הציבורי.

מה אם אתה מנהל יישום כמו Plex Media Server שעבורו אין שירות מתאים?

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

לדוגמה, שרת ה- Plex מקשיב ביציאה 32400 ומשתמש ב- TCP, כדי לפתוח את היציאה באזור הציבורי לסשן הנוכחי, השתמש באפשרות --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp פרוטוקולים יכולים להיות tcp או udp .

כדי לוודא --list-ports נוספה בהצלחה השתמש באפשרות - --list-ports :

sudo firewall-cmd --zone=public --list-ports

32400/tcp

כדי להשאיר את הפורט 32400 פתוח לאחר אתחול מחדש, הוסף את הכלל להגדרות הקבע על ידי הפעלת אותה פקודה באמצעות האפשרות --permanent .

התחביר להסרת יציאה זהה להוספת יציאה. פשוט השתמש --remove-port במקום באפשרות --add-port .

sudo firewall-cmd --zone=public --remove-port=32400/tcp

יצירת שירות FirewallD חדש

כפי שכבר הזכרנו, שירותי ברירת המחדל מאוחסנים בספריה /usr/lib/firewalld/services . הדרך הקלה ביותר ליצור שירות חדש היא להעתיק קובץ שירות קיים לספריית /etc/firewalld/services , שהוא המיקום של שירותים שנוצרו על ידי המשתמש ולשנות את הגדרות הקובץ.

לדוגמה, כדי ליצור הגדרת שירות עבור שרת המדיה של Plex אנו יכולים להשתמש בקובץ השירות SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

פתח את קובץ ה- plexmediaserver.xml החדש שנוצר plexmediaserver.xml את השם והתיאור הקצר עבור השירות בתוך ו תגיות. התג החשוב ביותר שעליך לשנות הוא תג port , המגדיר את מספר היציאה והפרוטוקול שברצונך לפתוח.

בדוגמה הבאה אנו פותחים יציאות 1900 UDP ו- 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

שמור את הקובץ וטען מחדש את שירות FirewallD:

sudo firewall-cmd --reload

כעת תוכל להשתמש בשירות plexmediaserver באזורים שלך זהה לכל שירות אחר..

העברת נמל עם חומת אש

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

sudo firewall-cmd --zone=external --add-masquerade

  • העבר תנועה מנמל אחד למשנהו באותו שרת

בדוגמה הבאה אנו מעבירים את התנועה מנמל 80 לפורט 8080 באותו שרת:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

  • העבר תנועה לשרת אחר

בדוגמה הבאה אנו מעבירים את התנועה מנמל 80 לפורט 80 בשרת עם IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

  • העבר תנועה לשרת אחר בנמל אחר

בדוגמה הבאה אנו מעבירים את התנועה מנמל 80 לפורט 8080 בשרת עם IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

יצירת ערכת כללים עם FirewallD

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

  1. שנה את אזור ברירת המחדל ל- dmz

    אנו נשתמש באזור dmz (מפורז) מכיוון שברירת המחדל הוא מאפשר רק תנועת SSH. כדי לשנות את אזור ברירת המחדל ל- dmz ולהקצות אותו לממשק eth0 , הפעל את הפקודות הבאות:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    פתח יציאות HTTP ו-

    לפתיחת יציאות HTTP ו- HTTPS להוסיף כללי שירות קבועים לאזור dmz:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    בצע את השינויים בתוקף באופן מיידי על ידי טען מחדש של חומת האש:

    sudo firewall-cmd --reload

    אמת את השינויים

    כדי לבדוק את הגדרות התצורה של אזור dmz:

    sudo firewall-cmd --zone=dmz --list-all

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    הפלט שלמעלה אומר לנו ש- dmz הוא אזור ברירת המחדל, מיושם על ממשק eth0 והיציאות ssh (22) http (80) ו- https (443) פתוחות.

סיכום

למדת כיצד להגדיר ולנהל את שירות FirewallD במערכת CentOS שלך.

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

iptables אבטחה של Centos - -