הרצאה מקיפה על iptables¶
מבוא¶
הכלי iptables הוא כלי לבקרת תעבורת רשת במערכות Linux. הוא משמש ליצירת חוקים שמגדירים כיצד להתמודד עם חבילות רשת נכנסות, יוצאות ועוברות דרך המערכת. iptables עובד עם ה-Kernel (הגרעין של מערכת ההפעלה) של לינוקס ומשתמש במנגנון ה-NETFILTER כדי לסנן חבילות ולבצע פעולות שונות כמו חסימה, ניתוב, הפניית פורטים והגבלת חיבורים.
מבנה כללי של iptables¶
שרשראות (Chains)¶
הכלי iptables עובד עם שלוש שרשראות עיקריות שמנהלות חוקים:
- INPUT – מטפלת בחבילות נכנסות למחשב.
- OUTPUT – מטפלת בחבילות שיוצאות מהמחשב.
- FORWARD – מטפלת בחבילות שעוברות דרך המחשב (למשל, כאשר המחשב משמש כנתב).
טבלאות (Tables)¶
הכלי iptables מחולק למספר טבלאות, וכל טבלה מכילה מספר שרשראות:
| שם הטבלה | שימוש |
|---|---|
| filter | טבלת ברירת המחדל לסינון תעבורה. מכילה את השרשראות INPUT, FORWARD, OUTPUT. |
| nat | משמשת ל-Network Address Translation (NAT), כמו הפניית פורטים (Port Forwarding). |
| mangle | שינוי שדות בחבילות כמו TTL, QoS ועוד. |
| raw | מאפשר לעקוף מעקב חיבורים (Connection Tracking). |
פקודות בסיסיות¶
בדיקת החוקים הקיימים¶
-L– מציג את החוקים.-v– מפרט מידע נוסף כמו מספר חבילות ובייטים.-n– מציג כתובות ומספרי פורטים ללא המרת DNS.
איפוס כל החוקים¶
-F– מוחק את כל החוקים בשרשראות.-X– מוחק שרשראות מותאמות אישית.-Z– מאפס מונים (counters) של חוקים.
קביעת מדיניות ברירת מחדל¶
-Pמגדיר מדיניות כללית (DROP= חסימה,ACCEPT= אישור).- חוסם חבילות נכנסות וחבילות שעוברות דרך המחשב, אך מאפשר חבילות יוצאות.
חוקי סינון (Filtering)¶
חסימת כתובת IP מסוימת¶
-A INPUT– מוסיף חוק לשרשרת ה-INPUT.-s 192.168.1.100– מתייחס לחבילות שמגיעות מהכתובת הזו.-j DROP– מבצע חסימה (משליך את החבילות).
חסימת טווח כתובות (CIDR)¶
- חוסם את כל הרשת
192.168.1.0/24.
חסימת תעבורה לפי פורט ספציפי¶
- חוסם חיבורים ל-SSH (פורט 22).
חסימת חיבורים נכנסים ממדינה מסוימת¶
ניתן להשתמש ב-GeoIP חסימה:
- חוסם חיבורים מסין (
CN).
חסימת Ping¶
- חוסם
pingנכנס.
חסימת חיבורים מרובים מאותו IP (הגנה מפני DoS)¶
- מגביל מקסימום 10 חיבורים בו-זמנית לכל IP לשרת ה-Web (פורט 80).
חוקי NAT (Network Address Translation)¶
הפניית פורטים (Port Forwarding)¶
- כל חיבור נכנס לפורט 8080 יופנה לכתובת 192.168.1.10:80.
שימוש במחשב כנתב (Enable IP Forwarding)¶
- מאפשר NAT ומאפשר למחשב לנתב תעבורה בין רשתות.
חוקי Mangle (שינוי חבילות)¶
הורדת TTL לחבילות יוצאות¶
- משנה את ערך TTL ל-64 (מונע ניתוב נוסף).
הגנה מתקדמת (Hardening)¶
מניעת SYN Flood (התקפת DoS)¶
- מגביל חיבורים חדשים ל-1 בשנייה.
חסימת Port Scanning¶
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
- חוסם חבילות עם דגלים חריגים (ניסיון סריקה).
שימוש בשרשראות מותאמות אישית¶
יצירת שרשרת חדשה לניהול חיבורים¶
- יוצר שרשרת
MYCHAINומנתב חבילות דרכה.