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

במאמר זה נבחן את היסודות של firewalld, הדמון גדר אש דינמי ברירת המחדל ב-Red Hat Enterprise Linux 7, ואת שירות iptables, שירות גדר אש מורשתי עבור Linux, שבו רוב מנהלי המערכות והרשת מכירים היטב, והמופעל גם ב-RHEL 7.
A Comparison Between FirewallD and Iptables
תחת הקרקע, גם firewalld ושירות iptables משוחחים עם מסגרת ה-netfilter בליבה דרך אותו ממשק, לא במפתיע, פקודת ה-iptables. אך, להבדיל משירות ה-iptables, firewalld יכול לשנות את ההגדרות במהלך הפעולה הרגילה של המערכת ללא אובדן חיבורים קיימים.
Firewalld צריך להיות מותקן כברירת מחדל במערכת ה- RHEL שלך, אם כי יתכן שהוא לא פועל. ניתן לאמת זאת עם הפקודות הבאות (firewall-config היא כלי הגדרת ממשק המשתמש):
# yum info firewalld firewall-config

וגם,
# systemctl status -l firewalld.service

מצד שני, שירות ה-iptables לא כלול כברירת מחדל, אך ניתן להתקין אותו דרך.
# yum update && yum install iptables-services
שני הדמונים יכולים להתחיל ולהפעיל את עצמם להתחלה בעת האתחול עם פקודות ה-systemd הרגילות:
# systemctl start firewalld.service | iptables-service.service # systemctl enable firewalld.service | iptables-service.service
קרא גם: פקודות שימושיות לניהול שירותי systemd
כגבי קבצי התצורה, שירות ה-iptables משתמש ב- /etc/sysconfig/iptables
(שלא יתקיים אם החבילה לא מותקנת במערכת שלך). בתיבת RHEL 7 המשמשת כצומת אשכול, הקובץ הזה נראה כך:

בעוד ש-firewalld שומרת את התצורה שלה בשני ספריות, /usr/lib/firewalld
ו- /etc/firewalld
:
# ls /usr/lib/firewalld /etc/firewalld

נבחן את קבצי התצורה הללו יותר מאוחר במאמר זה, לאחר שנוסיף כמה כללים כאן ושם. עד כה יהיה מספיק להזכיר לך שתמיד תוכל למצוא מידע נוסף על שני הכלים באמצעות.
# man firewalld.conf # man firewall-cmd # man iptables
מלבד זאת, זכור לצפות ב- ביקורת פקודות חיוניות ותיעוד מערכת – חלק 1 של הסדרה הנוכחית, שבו תיארתי מספר מקורות שבהם תוכל לקבל מידע על החבילות שמותקנות במערכת ה- RHEL 7 שלך.
שימוש ב-Iptables לשליטה בתעבורת הרשת
אולי תרצה להתייחס להגדרת חומת Iptables – חלק 8 של סדרת מדריך מוסמך מכון לינוקס (LFCE) כדי לרענן את הזיכרון שלך על אינטרנלים iptables לפני שתמשיך הלאה. כך נוכל לקפוץ ישר לדוגמאות.
דוגמה 1: מאפשר תנועה אינגרירית ומוצא של תנועת אינטרנט
יציאות טלפון 80 ו443 הם היציאות הברירת מחדל המשמשות את שרת האינטרנט Apache לניהול תנועה אינטרנט רגילה (HTTP) ובטוחה (HTTPS). אפשר לאפשר תנועת אינטרנט נכנסת ויוצאת דרך שתי היציאות בממשק enp0s3 כדלקמן:
# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT # iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
דוגמה 2: לחסום את כל (או חלק) החיבורים הנכנסים מרשת ספציפית
עשויים להיות פעמים בהן תצטרך לחסום את כל (או חלק) סוגי התעבורה המקוריים מרשת ספציפית, נניח 192.168.1.0/24 למשל:
# iptables -I INPUT -s 192.168.1.0/24 -j DROP
יזרוק את כל החבילות המגיעות מהרשת 192.168.1.0/24, ובניגוד לכך,
# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT
ירשום רק תנועה נכנסת דרך היציאה 22.
דוגמה 3: הפנייה של תנועה נכנסת למיקום אחר
אם אתה משתמש בתיבת RHEL 7 לא רק כגיה התוכנה, אלא גם כגיה המבוססת חומת אש אמיתית, כך שהיא נמצאת בין שתי רשתות שונות, יש להפעיל כבר הפניה של פריסת כתובות IP במערכת שלך. אם לא, עליך לערוך את /etc/sysctl.conf
ולהגדיר את ערך של net.ipv4.ip_forward ל-1, כך:
net.ipv4.ip_forward = 1
ואז לשמור את השינוי, לסגור את עורך הטקסט ולהריץ את הפקודה הבאה כדי ליישם את השינוי:
# sysctl -p /etc/sysctl.conf
לדוגמה, ייתכן ויש לך מדפסת מותקנת בתיבה פנימית עם כתובת IP 192.168.0.10, עם שירות CUPS המאזין בפתחה 631 (בשני השרתים המדפסת ובחומת האש שלך). כדי להעביר בקשות הדפסה מלקוחות בצד השני של החומה, עליך להוסיף את הכלל הבא של iptables:
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631
יש לזכור ש-iptables קורא את הכללים שלו בסדר רציונלי, כך שעליך לוודא שהמדיניות הברירת מחדל או הכללים המאוחרים לא ימחקו את אלו שמוצגים בדוגמאות למעלה.
התחלה עם FirewalD
אחת השינויים שהוצגו עם firewalld הם אזורים. המושג הזה מאפשר להפריד רשתות לאזורים שונים בהתאם לרמת האמון שהמשתמש החליט לשים על המכשירים והתעבורה ברשת זו.
כדי לרשום את האזורים הפעילים:
# firewall-cmd --get-active-zones
בדוגמה למטה, ה-אזור הציבורי פעיל, והממשק enp0s3 הוקצה לו אוטומטית. כדי להציג את כל המידע על אזור מסוים:
# firewall-cmd --zone=public --list-all

מכיוון שניתן לקרוא עוד על אזורים במדריך האבטחה של RHEL 7, נציין כאן רק כמה דוגמאות ספציפיות.
דוגמא 4: אישור שירותים דרך הגימה
כדי לקבל רשימת השירותים התומכים, יש להשתמש בפקודה הבאה:
# firewall-cmd --get-services

כדי לאפשר תעבורת רשת http ו-https דרך הגימה, באופן מיידי ובהפעלה אחריות:
# firewall-cmd --zone=MyZone --add-service=http # firewall-cmd --zone=MyZone --permanent --add-service=http # firewall-cmd --zone=MyZone --add-service=https # firewall-cmd --zone=MyZone --permanent --add-service=https # firewall-cmd --reload
אם לא נכתב --zone
, אז נעשה שימוש באזור ברירת המחדל (ניתן לבדוק עם firewall-cmd –get-default-zone).
כדי להסיר את הכלל, יש להחליף את המילה add ב remove בפקודות האמורות לעיל.
דוגמא 5: הפנית IP / פורט
תחילה, עליכם לוודא אם המעטפת מופעלת עבור האזור הרצוי:
# firewall-cmd --zone=MyZone --query-masquerade
בתמונה למטה, אנו רואים ש-המעטפת מופעלת עבור האזור החיצוני, אך לא עבור הציבורי:

ניתן להפעיל את המעטפת עבור הציבורי:
# firewall-cmd --zone=public --add-masquerade
או להשתמש במעטפת ב-החיצוני. הנה מה שעלינו לעשות כדי לשכפל דוגמא 3 עם firewalld:
# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10
ואל תשכחו לטעון מחדש את הגימה.
ניתן למצוא דוגמאות נוספות ב-חלק 9 מסדרת ה-RHCSA, בו נבאר כיצד לאפשר או להשבית את היציאות שבדרך כלל משמשות על ידי שרת אינטרנט ושרת FTP, וכיצד לשנות את הכלל התואם כאשר נערכים שינויים ביציאה ברירת המחדל עבור שירותים אלו. בנוסף, ניתן להפנות לוויקי ה-firewalld לדוגמאות נוספות.
קרא גם: דוגמאות שימושיות של FirewallD להגדרת הגנת אש ב-RHEL 7
מסקנה
במאמר זה הוסבר מהו גימה, מהן השירותים הזמינים ליישומה ב-RHEL 7, וסופק מספר דוגמאות היכולות לעזור לך להתחיל עם המשימה הזו. אם יש לך הערות, הצעות או שאלות, אנא תגיב דרך הטופס למטה. תודה מראש!
Source:
https://www.tecmint.com/firewalld-vs-iptables-and-control-network-traffic-in-firewall/