Netfilter
Netfilter הוא חלק בליבה של לינוקס המאפשר לפעולות שונות הקשורות לרשתות להיות מיושמות בצורה מותאמת אישית (בעזרת handlers). Netfilter מציע פונקציות שונות לסינון מנות, תרגום כתובות רשת, ותרגום פורטי תקשורת, המספקות את הפונקציונליות הנדרשת לניתוב מנות ברשת, כמו גם את היכולת למנוע ממנות להגיע למקומות רגישים בתוך רשת מחשבים.
Netfilter למעשה מייצג קבוצה של hooks בתוך הליבה של לינוקס, המאפשר למודולי ליבה ספציפיים לרשום פונקציות callback במחסנית הרשת של הליבה. פונקציות אלה, שבדרך כלל מחילות כללי שינוי או סינון על התעבורה, נקראות עבור כל חבילה שחוצה את ה-hook המתאים בתוך מחסנית הרשת.
היסטוריה
[עריכת קוד מקור | עריכה]בשנת 1998 התחיל ראסטי ראסל את פרויקט Netfilter / iptables. פרויקט זה הוא בעצם המשך לפרויקט ipchains שגם הוא נוצר על ידי ראסל. בשנת 1999, כשגדל הפרויקט, הוא ייסד את קבוצת ליבת ה-Netfilter (או פשוט קבוצת הליבה). התוכנה שהם מייצרים (הנקראת netfilter) משתמשת ברישיון הציבורי הכללי של גנו (GPL), ובמארס 2000 מוזגה לתוך גרסה 2.3.x של הליבה של לינוקס.
בחודש אוגוסט 2003 הארלד וולט הפך ליו"ר של קבוצת הליבה. בחודש אפריל 2004, בעקבות הפרת תנאי הרישיון של הפרויקט, בהפצת התוכנה משובצת בנתבים של חברת Sitecom אשר סירבה לבצע את התנאים של GPL, הוציא הארלד בבית משפט גרמני צו היסטורי נגד החברה. בחודש ספטמבר 2007 פטריק מקהארדי, שהוביל את הפיתוח בשנים האחרונות, נבחר ליו"ר חדש של קבוצת הליבה.
מסגרות (Framework) Netfilter
[עריכת קוד מקור | עריכה]תת-המערכת netfilter מספקת את הפונקציות הבאות:
- בחירת מנות (iptables)
- סינון מנות
- תרגום כתובות רשת (NAT)
- עיבוד מנות (שינוי התוכן של כותרות מנות לפני או אחרי הניתוב)
- מעקב אחר חיבורים
- איסוף נתונים סטטיסטיים ברשת
להלן כמה מסגרות נפוצות המבוססות על תת-מערכת ה-Netfilter של ליבת לינוקס:
- IPVS (IP Virtual Server): פתרון לאיזון עומסים בשכבת תחבורה (net/netfilter/ipvs). יש תמיכה עבור IPv4 מקרנלים מוקדמים מאוד, ותמיכה עבור ב-IPv6 כלולה מאז הליבה 2.6.28. תמיכת ליבת IPv6 עבור IPVS פותחה על ידי Julius Volz ו-Vince Busam מגוגל[1].
- IPsets: מסגרת המורכבת מכלי מרחב משתמש הנקרא ipset וחלק ליבה (net/netfilter/ipset). IPsets היא בעצם סט של IPsets. מסגרת ערכי ה-IP פותחה על ידי Jozsef Kadlecsik[2].
- iptables: כנראה חומת האש הפופולרית ביותר של לינוקס, iptables היא הקצה הקדמי של netfilter, והיא מספקת שכבת ניהול עבור netfilter: למשל, הוספה ומחיקה של כללי netfilter, הצגת נתונים סטטיסטיים, הוספת טבלה, איפוס המונים של טבלה, ועוד.
במרחב המשתמש, יש את הכלים iptables וכלי שורת הפקודה ip6tables, המשמשים להגדרה, תחזוקה ובדיקה של טבלאות IPv4 ו-IPv6, בהתאמה. הן iptables והן ip6tables משתמשים בקריאות המערכת setsockopt/getsockopt כדי לתקשר עם הקרנל ממרחב המשתמש.
קישורים חיצוניים
[עריכת קוד מקור | עריכה]- אתר האינטרנט הרשמי של Netfilter (באנגלית)
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ The Linux Virtual Server Project - Linux Server Cluster for Load Balancing, www.linuxvirtualserver.org
- ^ IP sets, ipset.netfilter.org