מה זה ufw - חומת האש שנועדה בדיוק בשביל לא להתפלש עם iptables¶
אם קראתם על iptables והרגשתם שהתחביר שלו מרגיש כמו שפה זרה, אתם לא לבד. בדיוק בגלל זה נוצר ufw, ראשי תיבות של Uncomplicated Firewall - "חומת אש בלי סיבוכים" - כלי שנועד לתת לכם את אותה הגנה בדיוק, בלי שתצטרכו לזכור עשרות דגלים ולהבין את כל מבנה הטבלאות והשרשראות מלכתחילה.
ufw הוא לא מנוע חדש, הוא ממשק חדש¶
הנקודה הכי חשובה להבין היא ש-ufw לא מחליף את netfilter, המנגנון שבליבת לינוקס שבאמת מסנן תעבורה. ufw פשוט יושב מעל iptables (ובגרסאות חדשות, מעל nftables) ומתרגם פקודות קריאות וברורות לכללים המורכבים שאותו מנגנון מבין. בפועל, אם תריצו iptables אחרי שהגדרתם כללים ב-ufw, תראו שהכללים המורכבים שם.
התקנה והפעלה בסיסית¶
ברוב הפצות לינוקס מבוססות Debian ו-Ubuntu, ufw מותקן כברירת מחדל או זמין להתקנה מיידית:
חשוב מאוד להיזהר בשלב הזה - אם אתם מתחברים לשרת מרחוק דרך SSH, ולא הגדרתם כלל שמתיר SSH לפני הפעלת ufw, אתם עלולים לנעול את עצמכם החוצה מהשרת שלכם. לכן הפעולה הראשונה, עוד לפני ההפעלה, היא תמיד לוודא שכלל שמתיר SSH כבר קיים.
הפקודות הבסיסיות שמכסות רוב המקרים¶
allow ssh מתיר גישת SSH (פורט 22) לפי שם שירות מוכר, בלי שצריך לזכור את מספר הפורט בכלל. allow 443/tcp מתיר תעבורת HTTPS. deny חוסם פורט ספציפי, למשל Telnet הישן והלא בטוח. ו-status מציג את כל הכללים הפעילים כרגע, בפורמט קריא בהרבה מהפלט הארוך של iptables.
הגבלה לפי כתובת מקור¶
ufw מאפשר גם להגביל תעבורה לכתובת מקור ספציפית, שימושי מאוד למשל כשרוצים לאפשר SSH רק מכתובת IP מסוימת של הצוות:
הפקודה הזו קריאה כמעט כמו משפט באנגלית רגילה, וזו בדיוק המטרה של ufw - שהכוונה מאחורי כלל תהיה ברורה גם למי שלא זוכר תחביר iptables בעל פה.
מדיניות ברירת מחדל¶
בדומה לכל חומת אש רצינית, ufw מגיע עם אפשרות לקבוע מדיניות שחוסמת כברירת מחדל את כל מה שלא הותר במפורש:
זה מיישם את אותו עיקרון deny by default שכבר מכירים מחומות אש אחרות - חוסמים הכל בכניסה, ומתירים רק מה שהוגדר במפורש. תעבורה יוצאת בדרך כלל נשארת מותרת, כי ברוב המקרים הסיכון המרכזי הוא במה שמנסה להיכנס, לא במה שהשרת עצמו יוזם.
מתי ufw מספיק, ומתי כדאי לרדת ל-iptables¶
ufw מכסה נהדר את רוב הצרכים היומיומיים של ניהול שרת בודד - פתיחת פורטים, חסימת כתובות, הגבלת גישה לפי מקור. אבל כשצריך לוגיקה מורכבת יותר, כמו תרגום כתובות (NAT) מתוחכם, כללים שתלויים בזמן, או שילוב עם כלים אחרים ברמת הליבה, iptables הישיר, או nftables המודרני יותר, נותן שליטה עדינה בהרבה. רוב מנהלי המערכת מתחילים עם ufw, ועוברים ל-iptables רק כשהם באמת נתקלים בתרחיש שדורש את זה.
למה כדאי להכיר את שניהם¶
מי שמכיר רק ufw ידע להגן על שרת בודד היטב, אבל עלול להיתקע כשהוא נתקל בשרת שכבר מוגדר עם iptables ישיר, כי הפקודות שם נראות זרות לגמרי. הבנה של שניהם - הרעיון הבסיסי מ-iptables, והנוחות המעשית מ-ufw - היא השילוב שהופך אתכם למישהו שבאמת שולט בחומת האש של המערכת, לא רק מפעיל פקודות ממדריך.
קורס הרשתות המלא נמצא כאן, חינם ובעברית, כולל תרגול מעשי על אבטחת שרתים וחומות אש.
יש לכם שאלה על הגדרת ufw בשרת שלכם? שאלו בדיסקורד.
לסיכום¶
ufw לא מחליף שום דבר ברמת המנוע, הוא פשוט הופך את השפה שדרכה אתם מדברים איתו לקריאה ופחות מפחידה. למתחילים ולרוב תרחישי היום-יום הוא בדיוק הכלי הנכון, ולמקרים המורכבים יותר, הבסיס של iptables תמיד נשאר שם מתחת.