כיצד להגדיר את מערכת האש UFW ב-Ubuntu וב-Debian

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

במאמר זה, נסביר כיצד להתקין ולהגדיר חומת אש UFW על ההפצות Ubuntu ו־Debian.

דרישות מוקדמות

לפני שתתחילו עם מאמר זה, וודאו שהתחברתם לשרת שלכם ב־Ubuntu או Debian עם משתמש sudo או עם חשבון root. אם אין לכם משתמש sudo, תוכלו ליצור אחד באמצעות ההוראות הבאות כמשתמש root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

התקנת חומת אש UFW על Ubuntu ו־Debian

חומת האש UFW (Uncomplicated Firewall) צריכה להיות מותקנת כבר כברירת מחדל ב־Ubuntu ו־Debian, אם לא, תוכלו להתקין אותה באמצעות מנהל החבילות APT באמצעות הפקודה הבאה.

$ sudo apt install ufw

בדיקת חומת אש UFW

לאחר שההתקנה הושלמה, תוכלו לבדוק את מצב ה־UFW על ידי הקלדת.

$ sudo ufw status verbose

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

Status: inactive

הפעלת חומת אש UFW

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

$ sudo ufw enable

כדי לנטרל את חומת האש UFW, השתמשו בפקודה הבאה, שתפטר את החומה ותנטרל אותה מהתחלת האתחול.

$ sudo ufw disable 

מדיניות ברירת מחדל של UFW

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

מדיניות חומת האש ברירת המחדל של UFW ממוקמת בקובץ /etc/default/ufw וניתן לשנותה באמצעות הפקודה הבאה.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

פרופילי יישומים של UFW

כאשר מתקינים חבילת תוכנה באמצעות מנהל החבילות APT, היא תכלול פרופיל יישום בתיקיית /etc/ufw/applications.d שמגדיר את השירות ומחזיק בהגדרות UFW.

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

$ sudo ufw app list

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

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

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

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

הפעלת IPv6 עם UFW

אם השרת שלך מוגדר עם IPv6, וודא כי UFW שלך מוגדר עם תמיכה ב-IPv6 ו-IPv4. כדי לוודא זאת, פתח את קובץ התצורה של UFW באמצעות העורך המועדף עליך.

$ sudo vi /etc/default/ufw

וודא כי “IPV6” מוגדר ל-"yes" בקובץ התצורה כפי שמוצג.

IPV6=yes

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

$ sudo ufw disable
$ sudo ufw enable

אפשר חיבורי SSH על UFW

אם הפעלת את הגנת הגישה הלשונית (UFW) כעת, היא תחסום את כל החיבורים הנכנסים ואם אתה מחובר לשרת שלך דרך SSH ממקום מרוחק, לא תוכל יותר להתחבר שוב.

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

$ sudo ufw allow ssh

אם אתה משתמש ביציאת SSH מותאמת אישית (לדוגמה יציאה 2222), אז עליך לפתוח את היציאה הזו בגנת הגישה הלשונית באמצעות הפקודה הבאה.

$ sudo ufw allow 2222/tcp

כדי לחסום את כל חיבורי ה-SSH, הקלד את הפקודה הבאה.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

הפעלת יציאות מסוימות ב-UFW

אתה יכול גם לפתוח יציאה מסוימת בגנת הגישה הלשונית כדי לאפשר חיבורים דרכה לשירות מסוים. לדוגמה, אם ברצונך להגדיר שרת אינטרנט המקשיב על יציאה 80 (HTTP) ו-443 (HTTPS) כברירת מחדל.

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

פתח את היציאה 80 HTTP ב-UFW
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
פתח את היציאה 443 HTTPS ב-UFW
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

אפשר טווחי יציאות ב-UFW

בהנחה שיש לך אפליקציות שאתה רוצה להריץ על טווח של יציאות (5000-5003), תוכל להוסיף את כל היציאות הללו באמצעות הפקודות הבאות.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

אפשר כתובות IP מסוימות

אם ברצונך לאפשר חיבורים בכל היציאות מכתובת ה-IP הספציפית 192.168.56.1, אז עליך לציין את "from" לפני כתובת ה-IP.

$ sudo ufw allow from 192.168.56.1

אפשר כתובות IP מסוימות על יציאה מסוימת

כדי לאפשר חיבור על פורט מסוים (לדוגמה פורט 22) ממכונת הבית שלך עם כתובת IP של 192.168.56.1, יש להוסיף את ״כל פורט״ ואת מספר הפורט אחרי כתובת ה-IP כפי שמוצג.

$ sudo ufw allow from 192.168.56.1 to any port 22

לאפשר תתי-רשתות לפורט מסוים

כדי לאפשר חיבורים לכתובות IP ספציפיות הנמצאות בטווח של 192.168.1.1 עד 192.168.1.254 לפורט 22 (SSH), יש לרוץ את הפקודה הבאה.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

לאפשר ממשק רשת ספציפי

כדי לאפשר חיבורים לממשק רשת ספציפי eth2 לפורט מסוים 22 (SSH), יש להריץ את הפקודה הבאה.

$ sudo ufw allow in on eth2 to any port 22

למנוע חיבורים ב-UFW

כברירת מחדל, כל החיבורים הנכנסים חסומים, אלא אם כן פתחת את החיבור ב-UFW באופן ספציפי. לדוגמה, פתחת את הפורטים 80 ו-443 והשרת שלך מותקף מרשת לא ידועה 11.12.13.0/24.

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

$ sudo ufw deny from 11.12.13.0/24

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

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

מחיקת כללי UFW

ישנם 2 דרכים למחוק כללי UFW, לפי מספר הכלל ולפי הכלל בפועל.

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

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

כדי למחוק את כלל המספר 1, השתמש בפקודה הבאה.

$ sudo ufw delete 1

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

$ sudo ufw delete allow 22/tcp

בדיקה של כללי ה־UFW

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

$ sudo ufw --dry-run enable

איפוס אש ה־UFW

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

$ sudo ufw reset
$ sudo ufw status

יכולות מתקדמות של ה־UFW

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

כיוונון של אש ה־UFW או הוספת פקודות iptables נוספות אינם מאושרים דרך הפקודה ufw, זהו נושא של עריכה של קבצי טקסט הבאים

  • /etc/default/ufw: הקובץ התצורה הראשי עם כללים מוגדרים מראש.
  • /etc/ufw/before[6].rules: בקובץ זה כללים מחושבים לפני הוספתם באמצעות הפקודה ufw.
  • /etc/ufw/after[6].rules: בקובץ זה כללים מחושבים לאחר הוספתם באמצעות הפקודה ufw.
  • /etc/ufw/sysctl.conf: קובץ זה משמש לכיוונון של הרשת בליבת הקרנל.
  • /etc/ufw/ufw.conf: קובץ זה מאפשר ל־ufw להפעיל בעת ההפעלה.

זהו! UFW הוא ממשק חזית מצוין ל iptables עם ממשק ידידותי למשתמש להגדיר כללים מורכבים עם פקודה יחידה של UFW.

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

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/