
net.ipv4.ip_forward נמצא ב-/etc/sysctl.conf וברירת המחדל שלו 0 משיקולי אבטחה. משנים אותו ל-1.sysctl -p מיישם את השינוי בקרנל בלי ריסטארט.iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. הטבלה nat וה-chain POSTROUTING הם שמטפלים בתעבורה היוצאת.service iptables save, כי בלי שמירה החוקים נעלמים בהפעלה מחדש.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת iptables - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
עכשיו אנחנו נלמד כיצד בעזרת ה-IP טייבלס, מנגנון הפיירוורד של הלינוקס, אנחנו יכולים לייצר NAT, Network Address Translation, שזה בדיוק מה שהראוטר שלכם בבית עושה.
איך אנחנו יכולים לתת לרשת פנימית לקבל גישה אל הרשת החיצונית. כאן יש לי שרת שהוא עם גוי, גוי סרבר. אשר מחובר לרשת חיצונית, והמטרה שלי היא לאפשר לשרת הזה יציאה אל הרשת הפנימית שלי.
איך בעצם הגדרתי את זה בתוך סביבת ההדגמה? הלכתי בתוך הווירצ'ל בוקס לשרת סרבר 1, סרבר 1, הוספתי לו עוד כרטיס רשת, הנטוורק, כלומר אחד זהו בעצם הכרטיס רשת הראשי שמחובר לרשת החיצונית, אותו במערכת אנחנו רואים בתור ETH0. הוספתי אדפטור נוסף, אדפטר 2, שהוא מחובר לרשת מסוג אינטרנל נטוורק, שזה אומר שזאתי רשת שהיא סגורה בין המכונות
הווירטואליות, הוא מחובר לאינטרנל נטוורק אחד. השרת עם הגוי ממשק המשתמש גם בו קיים כרטיס רשת כזה נטוורק והוא שם היחיד שקיים כלומר פה אין אדפטור שני וגם הוא מחובר לאינטרנל נטוורק אחד כלומר שרת גוי אינו רואה שום דבר חוץ מרשת אינטרנל נטוורק אחד אשר היא משותפת רק עם שרת 1. לכן כרגע, אם אני אעשה מתוך השרת גוי פינג לכתובת של הראוטר או של המכונה המקומית שלי,
192.168.1, אני לא אקבל כלום, כי למעשה כל מה שהמכונה הזאת רואה היא הכתובת שהגדרתי לה באופן ידני כתובת פנימית 10.005.
כמו כן הגדרתי ראוט ניתוב ברירת מחדל לכתובת 10.001 שאותה אני נותן לסרבר 1. ראוט מינוס n יראה לי בעצם את הדיפולט גייטוויי שהוא מכוון לכתובת 10.0.1.
בשרת סרבר 1 כאן אני רואה את שתי הכרטיסי רשת את ה-ETH0 שמחובר לרשת החיצונית עם כתובת IP 192.168.1.7 ואת כרטיס רשת ETH1 שמחובר לכתובת בעצם לרשת הפנימית שמשותפת עם השרת בעל ממשק הגוי.
המטרה שלי היא שמפה אני אוכל לגשת אל הרשת החיצונית ולהגיע אל הראוטר, אוקיי? כלומר, כרגע אני יכול להגיע אל השרת סרבר 1, אוקיי? אני רואה פינג, אבל מעבר לשרת סרבר אחד אינני יכול להגיע לשאר העולם.
מה שאני צריך לעשות לצורך כך הוא קודם כל לאפשר לשרת סרבר אחד לתפקד כראוטר. בשביל זה אני צריך להגדיר פרמטר שנקרא IP forward. את הפרמטר הזה אני מגדיר בקובץ ETC sysctl.conf לפרמטר קוראים net.ipv4ipforward והפרמטר הזה הוא בעצם יגיד למנגנון הרשת מנגנון הIP שמובנה בתוך הקרנל שהוא מאפשר לשרת הזה לתפקד
בתור ראוטר כלומר לקבל פקטות בכרטיס רשת אחד ולהוציא אותם החוצה דרך כרטיס רשת אחר. By default הפרמטר הזה הוא נמצא באפס משיקולי אבטחת מידע.
אני לא רוצה שמישהו ישתמש בהשערה שלי כפלטפורמה להעביר פקטים הלאה מרשת אחת לרשת אחרת. כי ברגע בעצם שאני אאפשר את הפרמטר הזה ואאחל את השינויים שנקראים בקובץ במערכת השרת שלי יוכל להעביר פקטות הלאה כלומר אם אני שולח אל השרת פקטה שהיא מיועדת לכתובת אחרת השרת ידע להעביר
אותו הלאה ולא בעצם יתעלם מהפקט הזאת אז במקרה הזה אני כמובן חושב שהשרת שלי כן יעביר פקטות הלאה ויעביר אותם אל הרשת החיצונית אני הולך לשנות את זה ב-vi, אני לוחץ על r מהלשון replace ומכניס את הערך הרצוי 1, אוקיי?
עכשיו אני שומר את הקובץ 2wq, שמרתי, ואני הולך לאחל את השינויים במערכת עם הפקודה sysctl-p, אוקיי?
ברגע שרצתי את הפקודה הזאת, הפרמטרים האלה, גם ראיתי שאני גם רואה אותם על המסך, הם עברו לתוך המערכת, לתוך הקרנל.
אני רואה פה למשל עוד כל מיני פרמטרים ששייכים לעבודה של הקרנל, כמו למשל האם הקרנל יהיה רגיש לבקשות מסוג sysrq שהבקשה הזאת היא יוזמת panic של הקרנל משתמשים בזה כדי ספציפית בסיס RQ כדי ליצור panic יזום שמאפשר לנו בעצם לאחר מכן לקבל מידע על מה קרה במערכת בזמן הפניק אבל על זה אנחנו נדבר
בפרק אחר. במילה אחת מצב של panic זהו מצב שמשהו משתבש בקרנל והקרנל לא יודע כיצד להמשיך לדוגמה