הבנת לינוקס nftables פיקוד #
השמיים nftables הפקודה היא כלי חומת אש רב עוצמה בלינוקס שמחליף iptables, ip6tables, arptables, ו ebtablesעם תחביר אחיד, nftables מפשט סינון חבילות רשת, NAT ותצורות רשת מתקדמות אחרות. הפקודה עובדת עם nft כלי עזר, אשר מתקשר עם תת-מערכת ה-netfilter של הליבה כדי לנהל את כללי הרשת.
תחביר ומבנה בסיסיים של nft פיקוד #
השמיים nft הפקודה בדרך כלל עוקבת אחר המבנה הזה:
nft [OPTIONS] COMMAND
- אפשרויותדגלים כמו
-a(הצג ידיות כלל) או-j(פלט בפורמט JSON). - פקודההפעולה הספציפית, כגון
add,delete,list, אוflush, משמש לניהול טבלאות, שרשראות או כללים.
nft טבלת Cheatsheet של פקודות #
| פיקוד | תיאור |
nft list tables |
רשימת כל הטבלאות |
nft add table inet filter |
צור טבלה חדשה בשם filter ב inet משפחה |
nft delete table inet filter |
מחק filter שולחן ב inet משפחה |
nft list ruleset |
רשום את כל הטבלאות, השרשראות והכללים בפורמט קריא לבני אדם |
nft flush ruleset |
מחיקת כל הטבלאות, השרשראות והכללים (ניקוי כל מערך הכללים) |
nft add chain inet filter input { type filter hook input priority 0; } |
הוסף input שרשרת ל filter שולחן עם input וו |
nft add rule inet filter input tcp dport 22 accept |
קבל תעבורת SSH נכנסת בפורט 22 |
nft delete rule inet filter input handle <handle_number> |
מחיקת כלל ב- input שרשרת על ידי ציון זיהוי הכלל |
nft add rule inet filter forward counter |
הוסף כלל נגדי ל- forward שרשרת לניטור תעבורה |
הוספה וניהול של טבלאות #
In nftables, טבלאות הן מכולות לשרשראות וכללים. כך ניתן ליצור ולנהל אותן:
צור טבלה #
nft add table inet my_table
פקודה זו יוצרת טבלה חדשה בשם my_table בתוך inet משפחה, התומכת גם ב-IPv4 וגם ב-IPv6.
מחיקת טבלה #
nft delete table inet my_table
מוחק את ה my_table מ inet מִשׁפָּחָה.
שרשראות ב nftables #
שרשראות הן רצפים של כללים המגדירים כיצד מטופלות חבילות. לכל שרשרת יש הגדרה ספציפית hook, אשר קובע את שלב סינון החבילות (למשל, input, output, או forward).
צור שרשרת #
nft add chain inet my_table my_chain { type filter hook input priority 0; }
זה יוצר input שרשרת ב my_table לסינון חבילות עם עדיפות של 0.
מחיקת שרשרת #
nft delete chain inet my_table my_chain
מסיר את my_chain החל מ- my_table.
שולט ב nftables #
כללים מציינים פעולות עבור חבילות התואמות תנאים מסוימים. להלן דוגמאות להוספה, רישום ומחיקה של כללים.
הוספת כללים #
nft add rule inet my_table my_chain tcp dport 80 accept
כלל זה מאפשר תעבורה ביציאת TCP 80 (HTTP).
כללי רישום #
nft list chain inet my_table my_chain
מציג את כל הכללים ב my_chain.
מחיקת כללים #
nft delete rule inet my_table my_chain handle <handle_number>
מסיר כלל על ידי ציון מספר ה-handle שלו, אשר ניתן להציג על ידי nft list chain inet my_table my_chain -a.
דוגמה nftables תצורה: הגדרת חומת אש בסיסית #
הנה תצורת חומת אש בסיסית המאפשרת SSH ו-HTTP/HTTPS נכנסים, תוך חסימת כל תעבורה אחרת:
nft הוסף טבלה inet filter nft הוסף שרשרת inet filter input { סוג מסנן hook input priority 0\; מדיניות drop\; } nft הוסף כלל inet filter input tcp dport 22 קבל # אפשר SSH nft הוסף כלל inet filter input tcp dport 80 קבל # אפשר HTTP nft הוסף כלל inet filter input tcp dport 443 קבל # אפשר HTTPS nft הוסף כלל inet filter input ct state established,related קבל # אפשר חיבורים נוצרים
מתקדם: כללים מבוססי מצב עם מעקב אחר חיבורים #
nftables כולל תמיכה מובנית במעקב אחר חיבורים, המאפשרת לך לנהל כללים מבוססי מצב.
דוגמה: אפשר חיבורים קשורים ובייצור #
nft add rule inet filter input ct state established,related accept
זה מאפשר חבילות מחיבורים שכבר קיימים או קשורים לחיבורים קיימים, מה שעוזר להפחית עיבוד חוזר מיותר של חיבורים שהותרו בעבר.
<br> סיכום #
השמיים nftables הפקודה היא כלי מודרני ורב-תכליתי לסינון מנות רשת, המספק תחביר אחיד ואפשרויות גמישות לניהול כללי חומת אש. nftables, באפשרותך ליצור תצורות חומת אש יעילות וקלות לתחזוקה המתאימות הן להגדרות פשוטות והן לסביבות ארגוניות מורכבות.