پروازی بر دنیای امنیت شبکه (قسمت نهم) – فایروال (4)

سلامی دوباره خدمت تمامی شبکه‌باز ها و نتورک‌باز های عزیز ! در این مقاله ، در ادامه قسمت قبلی از این سری آموزشی، به ادامه مبحث Firewall ها میپردازیم، ودر نهایت قصد داریم که سیستم NAT یا همان Network Address Translation را برای شما شرح دهیم. پس باما همراه باشید.

آشنایی‌با Next-Generation Firewalls: فایروالهای نسل جدید Next-Generation Firewalls یا همان NGFW ، برای شما سرویس های threat-focused security (امنیت باتمرکز بروی تهدید) فراهم می‌آورد که به شما اجازه راهکارهای جامع‌تر امنیتی جهت جلوگیری از تهدیدات شناخته‌شده و پیشرفته را میدهد، مانند حفاظت در برابر یکسری Malware Attackهای مداوم و هدف‌گذاری شده. یک مثال از این نوع NGFW ها ، فایروال Cisco ASA with FirePOWER میباشد. که این فایروال ترکیبی از ASA Firewall کلاسیک با Sourcefire threat prevention و Advanced malware protection در یک Device میباشد.

هدف NGFW ها حفظ امنیت بصورت جامع برای کاربران، موبایلها، اپلیکشن‌های Client-side، ماشین‌های مجازی و... میباشد.

NAT

فیچر Network Address Translation یا همان NAT، یکی از فیچرهای مهمی میباشد که اغلب بروی فایروالهای پیاده‌سازی میشود. در این بخش میخواهیم نگاهی عمقی‌تر و کامل به NAT و Optionهایش بی‌اندازیم.

همانطور که میبینید، NAT راهکاری برای مخفی‌سازی ویا تغییر حقیقت درمورد شبکه و آدرس‌مبدا شما میباشد.

به تصویر بالا نگاه کنید، دو کاربر با رنج آیپی داخلی(رنج 10) بروی شبکه ای قرار دارند به با استفاده از اینترفیس G0/1 به روتر R1 متصل میشوند و ازآنطرف، روتر برای ارتباط با اینترنت، با استفاده از اینترفیس G2/0 به Service Provider متصل شده است؛ از دیدگاه امنیتی (و همچنین دیدگاه NAT)، اینترفیس G0/1 به شبکه داخلی(Inside) و قابل‌اطمینان(Trusted) متصل شده‌است و اینترفیس G2/0 به شبکه خارجی(Outside) و غیرقابل‌‌اطمینان(Untrusted) متصل شده‌است. حالا در اینجا، روتر به شخصه هیچ مشکلی برای ارتباط با اینترنت و IP Connectivity ندارد، چراکه دارای IPـه Reachable و قابل مسیریابی در اینترنت(رنج پابلیک) میباشد؛ اما متاسفانه کاربران ما به اندازه روتر ما خوش‌شانس نیستند و طبق قوانین Service Provider، بدلیل استفاده از IP Address رنج داخلی اجازه مسیریابی در اینترنت را ندارند.

پس اگر کاربران ما قصد دسترسی به یک سرور در اینترنت را داشته باشند، پکتهایشان را به سمت Default Gateway(که در این مثال ما R1 میباشد) فوروارد میکنند؛ حالا اگر دراینجا روتر ما به درستی برای انجام NAT کانفیگ شده‌باشد، می‌آید و تمام IP Header های داخل پکتهارا تغییر میدهد و IP Address مبدا اصلی آنهارا با Valid IP خودش یا یک Valid IP از لیستی از IP های Reachable که خریداری کرده‌ایم و برای روتر تعریف کرده‌ایم ، عوض میکند.

دستگاه و دیوایس اصلی‌ای که NAT را انجام میدهد، میتواند یک فایروال ویا یک روتر باشد. NAT نه‌تنها به‌ما اجازه میدهد که هزاران کاربر را پُشت یک عدد IP پنهان کنیم (با استفاده از PAT - در ادامه درمورد این‌موضوع بیشتر توضیح خواهم داد)، بلکه امنیت نسبی‌ای هم برای آن کاربران فراهم میکند، چراکه در خارج از شبکه هیچکس نمیداند که کدام دیوایس بصورت داینامیک به آن Valid IP Address الحاق(Assign) شده است، پس داشتن یک ارتباط مستقیم از Outside به یک inside Device کمی سخت‌تر میشود(تازه بگذارید بحث مربوط به ACL هارا کنار بگذاریم، که میتوانند از ارتباطه پکت‌هایی که از Outside به سمت دیوایس داخلی می‌آیند، جلوگیری کنند.)

بسیار مهم است که متوجه باشم که NAT و PAT ، نباید به تنهایی به عنوان یک مکانیزم امنیتی درنظر گرفته‌شوند، بلکه ترکیب آن بایکسری چیزهای دیگر میتواند یک مکانیزم امنیتی را بسازد.

آشنایی با Inside, Outside, Local, Global : یکسری مفاهیم و لغات در NAT ، کمی گیج‌کننده و گمراه‌کننده میباشند، مواردی مثل inside،Outside،local و Global. قبل‌از آنکه بصورت جزئی هریک از این موارد را بررسی کنیم بگذارید برای بهتر متوجه شدن هر کدام ، کمی با Optionهایی که NAT در اختیار شما قرار میدهد آشنا شویم:

- شما میتوانید IP Address کاربر شماره 1 را در زمان ارسال پکت‌هایش به سمت اینترنت ، ترجمه کنید: این مورد، مثالی از عملکردی است که عموما با نام Inside NAT شناخته میشود(ترجمه‌آدرس برای پکتهایی که از سمت یک کلاینت داخلی می‌آیند).

شما میتوانید Source IP Addressـه پکتهای یک دیوایس را که در خارج از شبکه شما قرار دارد ، هنگام ارسال به سمت شبکه داخلی‌اتان ترجمه کنید: این مورد، مثالی از عملکردی است که عموما با نام Outside NAT شناخته میشود.

خب ، حالا اگر شما بخواهید هردوی Inside NAT و Outside NAT را باهم داشته باشید(برای کاربر شماره 1 در داخل و سرور شماره 1 در خارج)، روتر میبایستی تمامی اطلاعات ترجمه از قبیل Source IP Address(در هر دوطرف) و آدرس های ترجمه‌شده برای هردوطرف را Track و نگهداری کند؛ برای اینکار میبایستی موارد زیر، بروی روتری که میخواهد تمامی موارد مربوط به NAT را انجام دهید تعریف شوند:

  • ـ Inside Local : آدرس IP اصلی پیکربندی شده بروی یک Hostـه داخلی ، مانند کاربر شماره 1.
  • ـ Inside Global : آدرس(یا آدرس‌هایی) تعریف‌شده‌ای برای روتر که میبایستی این آدرس را درهنگام تغییر آدرس‌مبدا در پکت ، بجای آدرس رنج داخلی قرار دهد(آدرس IP ای که بجای آدرس مبدا اصلی قرار میگیرد). دنیای بیرون(اینترنت) پکت کاربر شماره 1 را از این IP Addressـه تعریف شده، دریافت میکنند.
  • ـ Outside Local : اگر میخواهد NAT را از سَمتِ خارج‌شبکه هم داشته باشید(Outside NAT) ، در اینجا آدرس(یا آدرس‌هایی) تعریف میکنید که Source IP Address بسته‌های درحال ورود از Outside به شبکه داخلی ، به این آدرس ها تغییر میکند(ترجمه آدرس از رنج پابلیک به رنج داخلی) و این IPها به عنوان مبدا برای Hostهای داخلی نمایش داده میشوند. اگر این مورد تعریف نشود ، برای دیوایس ها و Hostهای داخلی ، Source IP Addressـه نرمال و اصلی نمایش داده میشود.
  • ـ Outside Global : آدرس IPـه پیکربندی شده بروی یک Hostـه خارج از شبکه ، مانند IPـه سرور شماره 1 در مثال زیر، آمده‌ایم و وضعیت NAT را بروی روتر R1 بررسی کرده‌ایم :

مثال بالا خروجی 2 عدد Static NAT را نشان میدهد. یکی برای کاربر شماره 1 و یکی هم برای سرور شماره 1 . همانطور که میبینید سرور شماره A برای کاربران داخلی با آدرس 10.0.0.3 نمایش داده میشود و کاربر شماره 1 هم با آدرس 34.0.0.11 در اینترنت دیده میشود.

Port Address Translation - PAT

فیچر Port Address Translation یا همان PAT، زیرمجموعه‌ای از NAT میباشد که همچنان کارش تغییر Source IP Address برای ترافیکی که از دیوایس دارای NAT/PAT میباشد، با این تفاوت که با استفاده از PAT ، هرکس آدرس Unique(یکتا) مربوط به خودش را دریافت نمیکند و بجایش از Port Number ودیگر unique identifiers ها برای اختصاص یک آدرس به چند Host استفاده میشود؛ یعنی بصورت اشتراکی N عدد Host میتوانند از یک IP آدرس استفاده کنند و این شماره پورت آنهاست که Unique میباشد.

به این کار عموما NAT with overload هم گفته میشود. ما براحتی میتوانیم چندین Private IP Address رو پشت یک Global IP Address در دنیای اینترنت پنهان کنیم. PAT Device از تمامی رویدادها Track تهیه‌میکند، نظیر اینکه کدام کلاینتها با چه IP Addressـی ازچه Sessionـی استفاده کرده‌اند.

مثال زیر روتر R1 را نشان میدهد که بروی آن PAT پیاده‌سازی شده‌است و خروجی NAT Table ، ارتباط کاربر شماره 1 و کاربر شماره 2 را که به سرور A (در خارج از شبکه)تلنت زده‌اند نمایش میدهد.

همانطور که میبینید ، PAT یکسری Source Port برای استفاده PC ها فراهم کرده‌است. اگر بصورت اتفاقی PCها یک ارتباط مشابه به یک Server برقرار کنند ، روتر بصورت داینامیک به آنها Source Port Address متفاوت‌ازهم اختصاص میدهد.

در انتها میتوان از انواع مختلفOptionهای NAT مانند:

  • Static NAT
  • Dynamic NAT
  • Dynamic PAT
  • Policy NAT/PAT

نام‌برد که میتوانند بروی دیوایسها پیکربندی شوند.

موفق باشید.