דף הבית » איך ל » המדריך למתחילים ל- iptables, חומת האש של לינוקס

    המדריך למתחילים ל- iptables, חומת האש של לינוקס

    Iptables הוא כלי חומת אש גמיש ביותר הבנוי עבור מערכות ההפעלה לינוקס. בין אם אתה טירון לינוקס חנון או מנהל מערכת, יש כנראה כמה הדרך כי iptables יכול להיות שימוש נהדר לך. המשך לקרוא כפי שאנו מראים לך כיצד להגדיר את חומת האש לינוקס תכליתי ביותר.

    תמונה על ידי ezioman.

    על iptables

    iptables הוא כלי שורת הפקודה של חומת האש המשתמשת ברשתות מדיניות כדי לאפשר או לחסום את התנועה. כאשר החיבור מנסה לבסס את עצמו על המערכת שלך, iptables מחפש כלל ברשימה שלה כדי להתאים אותו. אם הוא אינו מוצא אחד, הוא משתמש בפעולת ברירת המחדל.

    iptables כמעט תמיד מגיע מותקן מראש על כל הפצה לינוקס. כדי לעדכן / להתקין אותו, פשוט לאחזר את החבילה iptables:

    sudo apt-get להתקין iptables

    יש חלופות GUI ל iptables כמו Firestarter, אבל iptables זה לא ממש קשה פעם יש לך כמה פקודות למטה. אתה רוצה להיות זהיר מאוד בעת קביעת הכללים iptables, במיוחד אם אתה SSH'd לתוך שרת, כי פקודה אחת לא נכונה יכולה לנעול אותך לצמיתות עד שזה קבוע באופן ידני במכונה פיזית.

    סוגי שרשראות

    iptables משתמש בשלוש רשתות שונות: קלט, קדימה ופלט.

    קלט - שרשרת זו משמשת לשליטה בהתנהגות עבור חיבורים נכנסים. לדוגמה, אם משתמש מנסה SSH למחשב / שרת, iptables ינסה להתאים את כתובת ה- IP ואת היציאה לכלל בשרשרת הקלט.

    קדימה - שרשרת זו משמשת לחיבורים נכנסים שאינם מועברים באופן מקומי. תחשוב על נתב - הנתונים תמיד נשלחים אליו אבל לעתים רחוקות באמת מיועד לנתב עצמו; הנתונים מועברים רק למטרה. אלא אם כן אתה עושה איזשהו ניתוב, NATing, או משהו אחר במערכת שלך הדורש העברה, אתה אפילו לא תשתמש שרשרת.

    יש דרך אחת בטוח לבדוק אם המערכת שלך משתמש / צריך את שרשרת קדימה.

    iptables -Lv

    צילום המסך שלמעלה הוא של שרת שפועל במשך מספר שבועות ואין לו מגבלות על חיבורים נכנסים או יוצאים. כפי שאתה יכול לראות, את שרשרת הקלט עיבוד 11GB של מנות שרשרת הפלט יש עיבוד 17GB. שרשרת הקדמית, לעומת זאת, לא צריכה לעבד מנות אחת. הסיבה לכך היא כי השרת אינו עושה כל סוג של העברת או בשימוש כמכשיר עובר.

    פלט - שרשרת זו משמשת לחיבורים יוצאים. לדוגמה, אם אתה מנסה ping howtogeek.com, iptables יהיה לבדוק את שרשרת הפלט שלה כדי לראות מה הכללים לגבי פינג ו howtogeek.com לפני קבלת החלטה לאפשר או להכחיש את ניסיון החיבור.

    האזהרה

    למרות pinging חיצוני המארח נראה כמו משהו זה רק צריך לעבור את שרשרת הפלט, יש לזכור כי כדי להחזיר את הנתונים, את שרשרת הקלט ישמש גם כן. בעת שימוש ב- iptables כדי לנעול את המערכת שלך, זכור כי הרבה פרוטוקולים ידרוש תקשורת דו כיוונית, כך הן רשתות קלט פלט צריך להיות מוגדר כראוי. SSH הוא פרוטוקול נפוץ שאנשים שוכחים לאפשר בשתי הרשתות.

    התנהגות ברירת המחדל של שרשרת המדיניות

    לפני שתכנס ותגדיר כללים ספציפיים, אתה רוצה להחליט מה אתה רוצה את התנהגות ברירת המחדל של שלוש רשתות להיות. במילים אחרות, מה אתה רוצה iptables לעשות אם החיבור אינו תואם את כל הכללים הקיימים?

    כדי לראות מה שרשתות המדיניות שלך מוגדרות כעת לבצע בתנועה ללא תחרות, הפעל את iptables -L פקודה.

    כפי שאתם יכולים לראות, השתמשנו גם בפקודה grep לתת לנו פלט נקי. ב מסך זה, הרשתות שלנו כרגע הבנתי לקבל תנועה.

    פעמים רבות יותר מאשר לא, אתה רוצה את המערכת שלך כדי לקבל חיבורים כברירת מחדל. אלא אם שינית את כללי שרשרת המדיניות בעבר, הגדרה זו כבר צריכה להיות מוגדרת. כך או כך, הנה הפקודה לקבל חיבורים כברירת מחדל:

    iptables - קבלת ההצעה
    iptables -
    iptables - פוליטיקה קדימה

    כברירת מחדל לכלל הקבלה, תוכל להשתמש ב- iptables כדי להכחיש כתובות IP ספציפיות או מספרי יציאה, תוך המשך קבלת כל החיבורים האחרים. נגיע לפקודות האלה בעוד רגע.

    אם אתה מעדיף להכחיש את כל החיבורים ולציין באופן ידני אילו מהם ברצונך לאפשר לחיבור, עליך לשנות את מדיניות ברירת המחדל של הרשתות שלך כדי לרדת. עושה את זה יהיה כנראה רק שימושי עבור שרתים המכילים מידע רגיש ורק פעם יש את אותן כתובות IP להתחבר אליהם.

    iptables - קלט פוליטי DROP
    iptables - פוליטיקה תפוקה DROP
    iptables - פוליטיקה קדימה DROP

    תגובות ספציפיות לחיבור

    עם מדיניות ברירת המחדל של שרשרת תצורה, אתה יכול להתחיל הוספת כללים iptables כך שהוא יודע מה לעשות כאשר הוא נתקל בחיבור מ או אל כתובת IP מסוימת או יציאה. במדריך זה, אנחנו הולכים לעבור על שלושת הבסיסיים ביותר בשימוש נפוץ "תגובות".

    קבל - אפשר את החיבור.

    זרוק - זרוק את הקשר, מתנהג כאילו זה לא קרה. זה הכי טוב אם אתה לא רוצה את המקור כדי להבין את המערכת קיימת.

    דחה - אל תאפשר את החיבור, אך שלח שגיאה. זה הכי טוב אם אתה לא רוצה מקור מסוים כדי להתחבר למערכת שלך, אבל אתה רוצה שהם ידעו כי חומת האש שלך חסם אותם.

    הדרך הטובה ביותר להראות את ההבדל בין שלושת הכללים היא להראות איך זה נראה כאשר המחשב מנסה פינג מכונת לינוקס עם iptables מוגדר עבור כל אחת ההגדרות האלה.

    מתן אפשרות לחיבור:

    משליך את החיבור:

    דחיית החיבור:

    אפשור או חסימה של חיבורים ספציפיים

    כאשר רשתות המדיניות שלך מוגדרות, תוכל כעת להגדיר את iptables כדי לאפשר או לחסום כתובות ספציפיות, טווחי כתובות ויציאות. בדוגמאות אלה, נגדיר את החיבורים DROP, אבל אתה יכול להחליף אותם הסכם או דחה, בהתאם לצרכים שלך וכיצד הגדרת את רשתות המדיניות שלך.

    הערה: בדוגמאות אלה, אנחנו הולכים להשתמש iptables -A כדי לצרף כללים לרשת הקיימת. iptables מתחיל בראש הרשימה שלו ועובר כל הכלל עד שהוא מוצא אחד שהוא תואם. אם אתה צריך להוסיף כלל מעל אחד אחר, אתה יכול להשתמש iptables -I [שרשרת] [מספר] כדי לציין את המספר שהוא צריך להיות ברשימה.

    חיבורים מכתובת IP יחידה

    דוגמה זו מראה כיצד לחסום את כל החיבורים מכתובת ה- IP 10.10.10.10.

    iptables -A INPUT - 10.10.10.10-D DROP

    חיבורים ממגוון כתובות IP

    דוגמה זו מראה כיצד לחסום את כל כתובות ה- IP בטווח הרשת 10.10.10.0/24. ניתן להשתמש בסימון netmask או סטלאש סטנדרטי כדי לציין את טווח כתובות ה- IP.

    iptables -A INPUT - 10.10.10.0/24-DROP

    או

    iptables -A INPUT -s 10.10.10.0/255.255.255.0-DROP

    חיבורים ליציאה מסוימת

    דוגמה זו מראה כיצד לחסום חיבורי SSH מ -10.10.10.10.

    iptables -A INPUT -p tcp - dsh ssh-s 10.10.10.10-D DROP

    אתה יכול להחליף "ssh" עם כל פרוטוקול או מספר היציאה. ה -p tcp חלק מהקוד אומר iptables איזה סוג של חיבור פרוטוקול משתמש. אם חסמת פרוטוקול המשתמש ב- UDP במקום ב- TCP, לאחר מכן -p udp יהיה צורך במקום זאת.

    דוגמה זו מראה כיצד לחסום חיבורי SSH מכל כתובת IP.

    iptables-INPUT -P tCP - dsp ssh-drop

    ארצות חיבור

    כפי שציינו קודם לכן, הרבה פרוטוקולים הולכים לדרוש תקשורת דו כיוונית. לדוגמה, אם ברצונך לאפשר חיבורי SSH למערכת, שרתי הקלט והפלט יצטרכו להוסיף להם כלל. אבל, מה אם אתה רק רוצה SSH נכנס למערכת שלך כדי להיות מותר? לא הוספת כלל לרשת הפלט גם לאפשר ניסיונות SSH היוצא?

    זה המקום שבו מדינות חיבור נכנסים, אשר נותנים לך את היכולת שאתה צריך לאפשר תקשורת דו כיוונית אבל רק לאפשר חיבורים דרך אחת כדי להיות הוקמה. תסתכל על דוגמה זו, כאשר חיבורי SSH מ 10.10.10.10 מותרים, אבל חיבורי SSH ל 10.10.10.10 הם לא. עם זאת, המערכת רשאית לשלוח מידע על SSH כל עוד הפגישה כבר הוקמה, מה שהופך את התקשורת SSH אפשרי בין שני המארחים.

    iptables -A INPUT -p tcp - ssh-ss-10.10.10.10 -m מצב - חדש, הוקם- JCEPT

    iptables -AUTPUT -P tcp --ספורט 22 -ד 10.10.10.10 -m מצב המדינה הוקם- JCEPT

    שמור שינויים

    השינויים שתבצע את הכללים iptables יהיה scrapped בפעם הבאה כי שירות iptables מקבל מחדש אבל אם אתה מבצע פקודה כדי לשמור את השינויים. פקודה זו יכולה להשתנות בהתאם להפצה שלך:

    אובונטו:

    sudo / sbin / iptables-save

    Red Hat / CentOS:

    / sbin / שירות iptables שמירה

    או

    /etc/init.d/iptables שמור

    פקודות אחרות

    רשום את כללי iptables המוגדרים כעת:

    iptables -L

    הוספת -v אפשרות ייתן לך מנות ומידע בתים, והוספת -n יהיה ברשימה כל מספרית. במילים אחרות - hostnames, פרוטוקולים ורשתות מופיעים כמספרים.

    כדי לנקות את כל הכללים המוגדרים כעת, באפשרותך להוציא את הפקודה 'סומק'.

    iptables -F