הרצאה מקיפה על iptables¶
מבוא¶
הכלי iptables הוא כלי לבקרת תעבורת רשת במערכות Linux. הוא משמש ליצירת חוקים שמגדירים כיצד להתמודד עם packets רשת נכנסות, יוצאות ועוברות דרך המערכת. iptables עובד עם ה-Kernel (הגרעין של מערכת ההפעלה) של לינוקס ומשתמש במנגנון ה-NETFILTER כדי לסנן packets ולבצע פעולות שונות כמו חסימה, routing, הפניית פורטים והגבלת חיבורים.
מבנה כללי של iptables¶
שרשראות (Chains)¶
הכלי iptables עובד עם שלוש שרשראות עיקריות שמנהלות חוקים:
- INPUT – מטפלת בpackets נכנסות למחשב.
- OUTPUT – מטפלת בpackets שיוצאות מהמחשב.
- FORWARD – מטפלת בpackets שעוברות דרך המחשב (למשל, כאשר המחשב משמש כנתב).
טבלאות (Tables)¶
הכלי iptables מחולק למספר טבלאות, וכל טבלה מכילה מספר שרשראות:
| שם הטבלה | שימוש |
|---|---|
| filter | טבלת ברירת המחדל לסינון תעבורה. מכילה את השרשראות INPUT, FORWARD, OUTPUT. |
| nat | משמשת ל-Network Address Translation (NAT), כמו הפניית פורטים (Port Forwarding). |
| mangle | שינוי שדות בpackets כמו TTL, QoS ועוד. |
| raw | מאפשר לעקוף מעקב חיבורים (Connection Tracking). |
פקודות בסיסיות¶
בדיקת החוקים הקיימים¶
-L– מציג את החוקים.-v– מפרט מידע נוסף כמו מספר packets ובייטים.-n– מציג כתובות ומספרי פורטים ללא המרת DNS.
איפוס כל החוקים¶
-F– מוחק את כל החוקים בשרשראות.-X– מוחק שרשראות מותאמות אישית.-Z– מאפס מונים (counters) של חוקים.
קביעת מדיניות ברירת מחדל¶
-Pמגדיר מדיניות כללית (DROP= חסימה,ACCEPT= אישור).- חוסם packets נכנסות וpackets שעוברות דרך המחשב, אך מאפשר packets יוצאות.
חוקי סינון (Filtering)¶
חסימת כתובת IP מסוימת¶
-A INPUT– מוסיף חוק לשרשרת ה-INPUT.-s 192.168.1.100– מתייחס לpackets שמגיעות מהכתובת הזו.-j DROP– מבצע חסימה (משליך את הpackets).
חסימת טווח כתובות (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 (שינוי packets)¶
הורדת TTL לpackets יוצאות¶
- משנה את ערך TTL ל-64 (מונע routing נוסף).
הגנה מתקדמת (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
- חוסם packets עם דגלים חריגים (ניסיון סריקה).
שימוש בשרשראות מותאמות אישית¶
יצירת שרשרת חדשה לניהול חיבורים¶
- יוצר שרשרת
MYCHAINומנתב packets דרכה.