בפוסט הקודם, ראינו כיצד להגדיר את IPTables כך שיפעל כחומת אש. כעת נוכל לראות כיצד ליצור סקריפטים להפעלת כללים באופן אוטומטי בעת הפעלת המערכת, וגם כיצד למחוק או לעצור זמנית את הכללים הללו.
לפני שנעשה את התסריט ונראה לך איך זה נראה, בואו נדבר קצת על NAT ועל הרעיון של מה שאנחנו רוצים לעשות עם ציוד זה.
NAT והקשר של הדוגמה.
כאשר אנו מדברים על NAT, אנו יכולים לבלבל זאת עם ניתוב, מכיוון ששניהם אחראים על חיבור שתי רשתות שונות זו לזו. ההבדל האמיתי הוא שניתוב מוחל על מנת לעבור מרשת מקומית אחת לאחרת ורשת אחרת זו יכולה להתחבר לנתב ולצאת לאינטרנט.
ואילו כאשר אנו מדברים על NAT, אנו מדברים על ניתוב מנות מרשת מקומית או פרטית לרשת ציבורית או לאינטרנט. היא עושה זאת על ידי מיסוך החבילות על ידי הצבת ה- IP הציבורי איתו הוא עובר לאינטרנט. כלומר, איננו זקוקים לנתב מכיוון שה- IP הציבורי נמצא בבעלות ישירה של מחשב GNU / Linux.
נעבוד עם הסיסמה שאנחנו משתמשים בלינוקס שלנו כנתב / חומת אש כדי ללכת לאינטרנט מרשת מקומית. אבל כאן יכולים להופיע שני תרחישים.
- שהלינוקס שלנו נמצא בין הנתב של ספק השירות לרשת המקומית.
במקרה זה, תהיה רשת אחת בין הנתב למערכת הלינוקס שלנו, ורשת שונה בין מערכת הלינוקס לרשת המקומית. משמעות הדבר היא שהנתב שלנו לא יצטרך לבצע NAT כשלעצמו; ניתוב תעבורה פשוט, כפי שהוסבר בפוסט הקודם, יספיק.
- שללינוקס שלנו יש ממשק המחובר לרשת המקומית ודרך הממשק האחר הוא מקבל ישירות IP ציבורי שאיתו הוא מנווט.
המשמעות היא שעל לינוקס שלנו לעשות NAT כדי שהחבילות יוכלו להגיע לאינטרנט.
לצורך המעבדה הקטנה הזו אם כן, אנו נגיד כי הלינוקס שלנו מקבלת IP ציבורי ישירות וכך תוכל לבדוק את ההשפעות של NAT.
כדי לעשות NAT אנו משתמשים בתחביר
iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE
איפה eth1 הוא הממשק שבו אנו מקבלים את ה- IP הציבורי, כלומר לאן אנו הולכים לאינטרנט.
יצירת סקריפט iptables
נניח אם כן: 172.26.0.0 היא הרשת המקומית שלנו ו- 81.2.3.4 היא ה- IP הציבורי שאיתו אנו עוברים לאינטרנט. (זה ip סטטי). יש לי את הממשקים eth0 (רשת מקומית)
eth1 (רשת ציבורית).
זה בעצם מורכב מיצירת סקריפט שניתן לקרוא לו מ /etc/init.d/firestop (למשל). ומתוך סקריפט זה אנו יכולים להתחיל, לעצור או לבדוק את מצב התצורה שלנו, כפי שאנו עושים עם כל שד מערכת.
נניח שכללי ה- IPTABLES שלי הם:
#! / bin / bash # חומת האש של הבית שלי. # שם קובץ / etc / firewall_on # מאת Jlcmux Twitter: @Jlcmux # # מדיניות בסיסית. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT כדי לשתף אינטרנט מ eth0 ל- eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - למקור 81.2.3.4 # # אפשר חיבורים נכנסים שהתחילו ה- iptables שלי -מצב קדימה -מ -מדינה הוקמה, קשורים -j קבלה # # טבלאות תנועה יוצאות מורשות- A FORWARD -i eth0 -o eth1 -p tcp --port 80 -j חטיפות קבלה -A FORWARD -i eth0 -o eth1 -p tcp --port 443 -j קבלות טבליות -A FORWARD -i eth0 -o eth1 -p udp --port 53 -j קבל
הסבר:
התסריט בעצם מבצע את הפעולות הבאות:
- ראשית הגבל את כל הניווט, החיבורים והתנועה. (מדיניות בסיסית של חומת האש)
- ואז ליצור את ה- NAT עם היעד eth1. המציין שיש לנו ip ציבורי סטטי «81.2.3.4»
- זה פותח את היציאות הדרושות לקבלת חבילות החיבורים שיזמתי.
- מקבל תעבורת HTTP, HTTPS ויוצא DNS יוצאים.
אם אנו רוצים להשתמש בציוד שלנו כדי לנווט עלינו לחזור על השורות ולהחליף קדימה ל- INPUT או OUTPUT לפי הצורך.
בטל סקריפט.
כעת אנו הולכים ליצור סקריפט העוקף את כל האמור לעיל ומשאיר את המחשב נקי מכל אלה. (למטרות בדיקה או שאנחנו רק רוצים לכבות את חומת האש).
#! / bin / bash # חומת האש של הבית שלי. # שם קובץ / etc / firewall_off # מאת Jlcmux בטוויטר: @Jlcmux # # מחיקת כללי iptables -F # # החלת מדיניות ברירת מחדל (כל התעבורה מקובלת) iptables -P קלט קבל iptables -P OUTPUT קבלה iptables -P קדימה קבלה
אוטומציה.
כעת עלינו ליצור את הסקריפט בתוך /etc/init.d/ כך שהשירות יופעל אוטומטית ונוכל לנהל אותו ביתר קלות.
#! / bin / bash # חומת האש של הבית שלי. # שם קובץ /etc/init.d/ חומת אש # מאת Jlcmux טוויטר: @Jlcmux מקרה 1 $ בהתחלה) / etc / firewall_on ;; עצור) / etc / firewall_off ;; סטטוס) iptables -L ;; *) הד "תחביר שגוי. תקף = /etc/init.d/ התחלת חומת האש | עצור | סטטוס ;; esac
הסבר:
אנו ממקמים את הסקריפט האחרון בקובץ /etc/init.d/ בשם "firewall" . לאחר מכן, אם ברצוננו לנהל את חומת האש, נוכל להשתמש בפקודה /etc/init.d/firewall start. אנו יכולים גם לעצור אותה או לבדוק את מצבה באותו אופן.
עכשיו אנחנו הולכים לערוך את הקובץ /etc/rc.local ונוסיף משהו כמו: /etc/init.d/firewall start כך שהוא יופעל עם המערכת.
גם כן. זה החלק השני. אני מקווה שזה מביא משהו לכולכם. בהמשך נראה פרוקסי ו- IDS.