سلام دوستان . همان طور که از عنوان مشخص است , امروز در مورد تکنیک Masquerad صحبت خواهیم کرد . به این صورت که سناریو ای را مطرح می کنیم و سپس با این روش به حل آن می پردازیم . لازم به ذکر است که این تکنیک و دیگر موارد مثل src nat و dst nat و … همگی جزء مباحث شبکه می باشند و اکثر در روتر ها خودشون رو نشون می دن . اما در این پست به بررسی این تکنیک بر روی سیستم لینوکسی می پردازیم .
توپولوژی فرضی شبکه :
همان طور که مشاهده می کنید به صورت پیش فرض سیستم ویندوزی نمی تواند به اینترنت دسترسی داشته باشد چرا که آدرس آی پی آن یک آدرس آی پی داخلی و اصطلاحا invalid است . برای این منظور می توان از Masquerad استفاده کرد . Masquerad به این صورت عمل می کند که آدرس مبدا پکت ها را به آدرس آی پی اینترفیس دوم سیستم لینوکسی یعنی eth1 تغییر می دهد .
به عنوان مثال فرض کنید که سیستم ویندوزی گوگل را پینگ کرده است . در حالت عادی پکت به دست گوگل می رسد اما از آن جایی که آدرس مبدا در پکت 192.168.10.10 ذکر شده , گوگل نمی تواند پاسخی درست به این درخواست دهد . در نتیجه ارتباط برقرار نمی شود . حال با استفاده از تکنیک Masquerad آدرس آی پی پکتی که از سیستم ویندوزی وارد سیستم لینوکسی می شود را ویرایش می کنیم و آن را به آدرس آی پی valid یعنی 92.98.41.25 تغییر می دهیم . حال پکت به سمت گوگل فرستاده می شود . این بار گوگل می تواند این آی پی را در سطح نت ببیند و پاسخی درست صادر می کند . در نهایت پکت بازگشتی از سمت گوگل به سیستم لینوکسی ما رسیده و سپس به دست سیستم ویندوزی می رسد .
با توجه به توضیحات بالا , انتظار می رود در صورتی که سیستم ویندوزی آی پی 8.8.8.8 را پینگ کند با پیغام timed out مواجه شود و همچنین در سیستم لینوکسی که حکم روتر را دارد , پکت ها با آدرس مبدای invalid یعنی 192.168.10.10 به سمت گوگل فرستاده شوند .
برای بررسی صحت موارد گفته شده ابتدا tcpdump را در روتر لینوکسی استارت می کنیم سپس در سیستم ویندوزی گوگل را پینگ می کنیم .
برای این منظور به شکل زیر از tcpdump استفاده می کنیم :
root@OSLearn:~# tcpdump -i eth1 icmp -nn
همان طور که مشاهده می کنید پکت ها به سمت گوگل ارسال شده اما گوگل نمی تواند جوابی صادر کند چرا که آدرس آی پی مبدا نامعتبر است .
همان طور که از شکل مشخص است , ویندوز نمی تواند با گوگل ارتباط بر قرار کند و خروجی timed out چاپ کرده است .
اما برای استفاده از تکنیک Masquerad در این سناریو به شکل زیر عمل می کنیم :
root@OSLearn:~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
توجه داشته باشید که سویچ o- اینترفیس خروجی پکت ها را مشخص می کند نه اینترفیس ورودی پکت ها ( توجه داشته باشید که این سویچ را با سویچ i- اشتباه نگیرید )
حال یک بار دیگر tcpdump را بر روی سیستم لینوکسی استارت و در سیستم ویندوزی اقدام به پینگ کردن گوگل می کنیم .
root@OSLearn:~# tcpdump -i eth1 icmp -nn tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 10:01:25.207500 IP 92.98.41.25 > 8.8.8.8: ICMP echo request, id 512, seq 8448, length 40 10:01:25.335224 IP 8.8.8.8 > 92.98.41.25: ICMP echo reply, id 512, seq 8448, length 40 10:01:26.211847 IP 92.98.41.25 > 8.8.8.8: ICMP echo request, id 512, seq 8704, length 40 10:01:26.337080 IP 8.8.8.8 > 92.98.41.25: ICMP echo reply, id 512, seq 8704, length 40 10:01:27.211426 IP 92.98.41.25 > 8.8.8.8: ICMP echo request, id 512, seq 8960, length 40 10:01:27.336364 IP 8.8.8.8 > 92.98.41.25: ICMP echo reply, id 512, seq 8960, length 40 10:01:28.211946 IP 92.98.41.25 > 8.8.8.8: ICMP echo request, id 512, seq 9216, length 40 10:01:28.336851 IP 8.8.8.8 > 92.98.41.25: ICMP echo reply, id 512, seq 9216, length 40
موفق و موید باشید .
منبع : او اس لرن دات آی آر | http://OSLearn.ir
نویسنده : E2MA3N