درس دویست و ششم: پیاده سازی NAT

پیاده سازی NAT

 

 

آشنایی با مکانیزم NAT

NAT مخفف Network Address Translation است.  از قابلیت NAT هم در شبکه های SOHO LAN و هم در شبکه های Enterprise استفاده میشود. قبل از هر چیز باید یادآوری شود که طبق RFC 1918 محدوده های آدرس های ذیل جزوه آدرس های private محسوب شده و فقط درون شبکه های داخلی ( و نه اینترنت) میتوان این محدوده ها را به دیوایس ها اختصاص داد:

206-1 Private addresses

NAT بر طبق تعریف RFC 3022 اجازه میدهد که یک کلاینت فاقد Valid  IP Address ( یعنی یک Public IP معتبر در اینترنت) از یک آدرس Valid جهت دسترسی به host ها و منابع موجود در اینترنت استفاده نماید. به بیانی دیگر وقتی یک کلاینت از قابلیت NAT بهره مند میشود دارای هویتی دوگانه خواهد شد. یعنی بصورت همزمان با آدرس private خود در شبکه داخلی و با آدرس valid در اینترنت میتواند فعالیت کند. اما البته تنظیمات آدرس valid روی کارت شبکه این کلاینت set نمیشود. به شکل ذیل دقت کنید:

206-2 NAT Infrastructure

کلاینت با آدرس 10.1.1.1 ( که طبعا از نوع Private IP Address است) درون شبکه سازمانی در حال کار کردن میباشد. اما کلاینت فوق نیاز دارد به اینکه با سرور وبسایت cisco.com ارتباط داشته باشد. سرور فوق روی اینترنت قرار دارد. پس این کلاینت باید با یک valid address به اینترنت دسترسی داشته باشد. بعنوان مدیر شبکه باید این خواسته را برآورده سازید. یک راه حل استفاده از NAT می باشد. عملیات NAT را می توان توسط روتر سخت افزاری یا یک سرور مایکروسافت ( که دارای نقش RRAS باشد) و یا حتی فایروال هایی نظیر Kerio و TMG انجام داد. در این درس قصد پیاده سازی NAT را از طریق Microsoft RRAS و در واقع پیاده سازی Microsoft NAT Server را داریم.

نخستین گام اینست که از ISP یک Valid IP تهیه کنیم ( مثلا آدرس 200.1.1.1 ). NAT در واقع Private IP کلاینت فوق ( کلاینت متقاضی حضور در اینترنت ) را به یک Public IP تغییر میدهد یا بنوعی Map میکند یا انقیاد میبخشد. در شکل فوق ، NAT پیاده سازی شده و در حال استفاده است. مشاهده می کنید که وقتی کلاینت بسته ای را بسوی سرور وبسایت سیسکو میفرستد، روتر ( که NAT روی اینترفیس های آن پیاده سازی شده است و در واقع NAT Server شبکه می باشد)، آن آدرس Private را به آدرس valid که تهیه شده است، Map میکند. یعنی در هر کدام از بسته ها، فیلد آدرس مبدا را که 10.1.1.1 است به آدرس 200.1.1.1 تغیر میدهد.

سرور وبسایت سیسکو نیز بسته ها را از آدرس 200.1.1.1 دریافت کرده و هیچ تصوری از پشت پرده ماجرا ندارد. نباید هم داشته باشد و نیازی هم ندارد که بداند. این پنهان بودن آدرس private کلاینت از جهان خارج در واقع یکی از مزایا و قابلیت های امنیتی NAT می باشد. خیلی از شرکت ها از NAT جهت Publish کردن وبسایت خود روی اینترنت استفاده میکنند و چون هکرها چیزی بیشتر از valid address را نمی بینند، نمی توانند به سرور وبسایت شبکه از بیرون نفود کنند.

     باری، وبسایت سیسکو پاسخ خود را به همان آدرس فرستنده ( 200.1.1.1 ) ارسال میکند. روتر بسته های پاسخ را دریافت میکند. مجددا در فیلد آدرس مقصد تک تک بسته های پاسخ، اینبار آدرس مقصد را تغییر میدهد. یعنی آدرس 200.1.1.1 را تغییر میدهد به 10.1.1.1 که آدرس کلاینت فوق در شبکه می باشد. بطور خلاصه مکانیزم NAT در هنگام خروج بسته های از شبکه به خارج، روی هر بسته آدرس مبدا را تغییر میدهد و در هنگام ورود بسته ها از خارج به داخل شبکه، روی هر بسته آدرس مقصد را دستکاری میکند. این نوع NAT را Source NAT مینامند.

 

 

کاربردهای NAT

1- ترجمه آدرس های private و public به یکدیگر

2- حفاظت از شبکه داخلی در مقابل حملات خارجی ( مشخصا حملات اینترنتی)

3- تعیین پورت مقصد بسته ها برای کاربران داخلی

 

 

پیاده سازی NAT

در این پیاده سازی با اصطلاحات Inside Network و Outside Network سر و کار داریم. منظور از Inside همان شبکه داخلی سازمان و منظور  از Outside شبکه بیرونی یا در واقع اینترنت است. پس در محیط inside دارای آدرس های Private و در محیط outside دارای آدرس های Public هستیم.

روتر ( کامپیوتر RRAS یا NAT Server ) دارای دو NIC است:

یک NIC در محیط inside قرار دارد و در واقع default gateway شبکه سازمان است. به این اینترفیس اصطلاح inside Local اطلاق میشود و به آدرس private که روی این اینترفیس Set شده نیز اصطلاح Inside Local Address گفته میشود. تمام کلاینت های متقاضی استفاده از خدمات NAT باید آدرس inside local address فوق را بعنوان Default Gateway در تنظیمات خود Set کنند.

NIC دیگر در محیط outside قرار دارد و به اینترنت متصل است. به این اینترفیس نیز Inside Global و به آدرس آن Inside Global Address گفته میشود.

بد نیست بدانید که نوع دیگر NAT یعنی Destination NAT از اصطلاحات Outside Local و Outside Global استفاده میکند. البته در Source NAT مورد مطالعه ما هم از کلمه Outside global جهت اشاره به هر host روی اینترنت استفاده میشود. 

NAT باید روی RRAS شبکه پیکربندی شود. تمام کامپیوترهای دیگر باید Private IP کامپیوترRRAS شبکه را بعنوان Default gateway خود واردکنند و آدرس DNS آنها بایدآدرس DNS server دامین باشد.

کامپیوتر NAT میتواند عضو دامین  باشد و میتواند هم در حالت workgroup باشد. فقط نکته مهم اینست که آدرسش  بعنوان Default gateway روی کامپیوترهای دامین ست شود. در ضمن روی کارت های شبکه درگیر NAT ( چه در کلاینت ها و چه در RRAS ) نباید قابلیت NLB فعال باشد. توصیه شده است که وب سرورها ( کلا کامپیوترهایی که هم احتیاج به NLB دارند و هم باید روی اینترنت Publish شوند) دارای دو کارت شبکه باشند. یکی برای NLB و دیگری برای کارهای روتین شبکه ( از جمله NAT ).

در ضمن محدوده آدرس های شبکه نباید 192.168.1.x باشد چون محدوده آدرس بیشتر مودم ها هم همین محدوده است.

 

ما برای پیاده سازی NAT از سناریوی ذیل استفاده میکنیم.

شرح سناریو:

در سناریوی آزمایشگاهی ما سه کامپیوتر وجود دارند که روی PDC و NATSERVER ما ویندوز سرور 2016  نصب کردیم. کامپیوتر سوم که استفاده کننده از NAT است میتواند ویندوز دسکتاپی یا سروری باشد. ما روی آن Windows 10 نصب نموده ایم.

1- کامپیوتر نخست DC و DNS Server دامین است به نام PDC.ITPerfection.local

IP address: 192.168.0.10

Subnet Mask: 255.255.255.0

DNS Server: 127.0.0.1

با توجه به اینکه شبکه داخلی سناریوی ما در سابنت 192.168.0.x قرار دارد و از سویی قصد اتصال PDC به اینترنت را نداریم، فیلد Default Gateway را خالی گذاشتیم.

2- کامپیوتر NATSERVER.ITPerfection.local که باید سرویس NAT را پیاده سازی کند. این کامپیوتر دارای دو NIC است و نیز Routing and Remote Access   که در درس پیاده سازی RRAS آنرا نصب کردیم، نصب باشد. باید حتما Routing Role Service را در حین نصب Role فوق تیک زده باشیم.

تنظیمات ذیل مربوط به آن NIC از این کامپیوتر است که در سابنت داخلی شبکه قرار دارد:

Inside local NIC

IP Address: 192.168.0.6

Subnet Mask: 255.255.255.0

DNS Server: 192.168.0.10

و تنظیمات ذیل مربوط به آن NIC از این کامپیوتر است که در سابنت اینترنت قرار دارد:

Inside Global NIC

IP Address: from Modem DHCP

Subnet Mask: from Modem DHCP

Default Gateway: from Modem DHCP

Preferred DNS Server: 192.168.0.10

Alternative DNS Server: 4.2.2.4

این اینترفیس باید به مودم اینترنتی متصل باشد. همانطور که ملاحظه میکنید آدرس مودم یعنی 192.168.1.1 را بعنوان Default gateway وارد کرده ایم و IP Address نیز از طریق مودم دریافت شده است. باید مطمئن شویم که در همین مرحله می توانیم آدرسی روی اینترنت ( مانند 8.8.8.8 ) و همینطور آدرسی از سابنت داخلی شبکه ( مانند آدرس DC دامین) را میتوانیم با موفقیت Ping کنیم.

3- کامپیوتر IT100.ITPerfection.local که قرار است از طریق NAT Server به اینترنت دسترسی یابد.

IP address: 192.168.0.8

Subnet Mask: 255.255.255.0

Default gateway: 192.168.0.6

Preferred DNS Server: 192.168.0.10

Alternative DNS Server: 4.2.2.4

همانطور که ملاحظه می کنید Default gateway همان آدرس Inside local NIC مربوط به کامپیوتر NAT Server است.

اکنون فقط باید سرویس NAT را روی کامپیوتر NAT یعنی Vserver002 راه اندازی کنیم. پس در کامپیوتر فوق:

1- در کنسول Server Manager از منوی tools کنسول Routing and Remote Access را اجرا میکنیم. در پنل سمت چپ کنسول روی نام کامپیوتر ( یعنی Vserver002 ) راست کلیک کرده و گزینه Configure and Enable Routing and Remote access را انتخاب می کنیم تا ویزارد مربوط به پیکربندی شروع بکار کند.

2- مطابق تصویر ذیل در صفحه Configuration دکمه رادیویی NAT را باید انتخاب کنیم:

206-3 NAT Configuration Page

3- در صفحه NAT Internet Connection باید یکی از دو دکمه رادیویی موجود را انتخاب کنید. اگر همین الان Inside Global NIC موجود روی کامپیوتر میتواند آدرسهای اینترنتی را Ping کند بهتر است دکمه رادیویی نخست و سپس از لیست موجود، Inside Global NIC را انتخاب کنید. دکمه رادیویی دوم مناسب زمانی که می خواهیم اتصال به اینترنت از طریق یک VPN یا یک اتصال Dial-up انجام شود. ما دکمه رادیویی نخست را انتخاب میکنیم.

206-4 internet connection Page

آن NIC که NAT نام دارد همان NIC است که به مودم اینترنتی متصل است و همانطور که می بینید از DHCP Server آن مودم یک آدرس نیز دریافت کرده است.

4- در صفحه بعد روی دکمه finish کلیک میکنیم. بد نیست بدانید که چنانچه کامپیوتری که در حال راه اندازی سرویس NAT رویش هستیم، عضو دامین نباشد، قبل از پایان ویزارد صفحه ای ظاهر خواهد شد با دو گزینه. گزینه اول Enable basic name and addresses است که با انتخاب این گزینه، این سرور نقش DHCP و DNS را هم ایفا خواهد کرد. گزینه دوم یعنی I will setup name and addresses service later یعنی که نیازی به قابلیت DHCP و DNS توسط این سرور نیست.

اکنون کامپیوترهایی که آدرس inside local NIC کامپیوتر NAT Server را بعنوان Default gateway در تنظیمات خود دارند، به اینترنت نیز دسترسی خواهند داشت.

 

 

پیکربندی NIC ها در NAT

اکنون که NAT فعال شده است پنجره کنسول Routing and Remote Access بصورت ذیل درآمده است:

206-5 RRAS Console view after Enable NAT

حال در زیرشاخه IPv4 گزینه NAT را کلیک کرده و در پنل راست به پنجره properties مربوط به Inside Local NIC میرویم. یک تب وجود دارد به نام NAT . این همان کارت شبکه ای است که کلاینت های داخل شبکه آنرا بعنوان gateway خود باید در نظر بگیرند. مشاهده می کنید که از نوع Private IP Address است.

206-6 inside NIC Properties

میتوان بسادگی با انتخاب دکمه رادیویی Public interface…. و تیک زدن چکباکس Enable NAT on this interface همین NIC را به Inside Global NIC ( اجراکننده NAT ) تغییر داد. اما نیازی به این کار نیست. روی دکمه OK کلیک میکنیم و این بار وارد پنجره Properties مربوط به Inside Global NIC که NAT نام دارد، میشویم:

206-07 ouside NIC Properties

این پنجره سه تب دارد. تب نخست همان تب NAT است که تنظیمات آنرا ملاحظه می کنید. پس به تب Address Pool میرویم:

206-8 address pool

میتوان بجای یک valid IP Address چندین آدرس از ISP تهیه کرد. در حال حاضر NAT ما از نوع Static است یعنی فقط یک valid IP Address داریم و تمام کلاینت های شبکه ما در اینترنت از یک valid IP Address یکسان و مشابه استفاده میکنند. اما خیلی اوقات لازم است که کلاینت های شبکه ما در اینترنت از Valid IP Address های متفاوت بهره مند باشند. بخصوص در بحث Server Publishing چنین قابلیتی حتما مورد نیاز است. لذا در این حال چندین Valid IP Address از ISP تهیه می کنیم و در این تب توسط دکمه add آنها را در Address Pool قرار میدهیم. اکنون در هنگام اتصال کلاینتها به اینترنت خود سرویس NAT سعی میکند به اتصالات مختلف، valid IP Address های مختلف را ارائه کند. دکمه add کار قرار دادن Valid IP Address ها را بصورت مجموعه ای انجام میدهد یعنی محدوده ای از آدرسها را add میکند. پس بهتر است تا جای ممکن از ISP نیز آدرسها را بصورت یک محدوده دریافت کنیم. در مورد تب Services and Ports در بخش بعدی توضیح داده میشود.

در کنسول RRAS در زیرشاخه IPv4 به پنجره properties خود گزینه NAT می رویم.

206-9 NAT Properties dialog box

تب اول به تنظیمات لاگ گیری اختصاص دارد. در تب translation ، گزینه remove TCP mapping after تعیین میکند که جدول mapping بعد از چه مدت زمانی پاک شود. یعنی اگر یک IP داخلی به Public IP دست یافته باشد ( جهت publishing )، آن Public IP و پورت مربوطه تا چه زمانی در اختیار private IP داخلی بماند؟ فاصله زمانی مجاز پیشفرض برای TCP Mapping ها 1440 دقیقه ( یک شبانه روز کامل) و برای UDP Mapping ها یک دقیقه میباشد.

میتوان قابلیت DHCP را روی NAT فعال کرد تا NAT به کلاینت های شبکه تنظیمات IP Address مربوط به شبکه داخلی را نیز ارائه کند. کافیست به تب Address Assignment برویم:

206-10 DHCP in NAT

برای این کار باید گزینه automatically assign IP address by using the DHCP allocator را انتخاب کرد.

کار ترجمه نام را هم میتوانیم در تب name resolution با چک زدن گزینه clients using domain name system به خود NAT Server واگذار کنیم.

نکته: امکان استفاده از NAT Server بعنوان DHCP Server و DNS Server وجود دارد اما بهتر است از role های مستقل و مربوطه که در این دوره آموزشی به تفصیل درباره آنها صحبت شده است و با روش پیاده سازی آنها آشنا شده اید استفاده نمایید.

 

 

پیاده سازی Server Publishing

یعنی منتشرکردن یک سرور در اینترنت. با فعال کردن قابلیت Server publishing افرادی ازطریق اینترنت میتوانند به وب سرور داخلی شبکه ما دست پیداکرده و در چهارچوب اختیارات مجاز از آن استفاده کنند. پس اگر قرار است میزبان سایتی روی اینترنت باشیم، باید از این قابلیت استفاده کنیم. ( البته درصورت استفاده از NAT ). ابتدا باید تنظیمات لازم روی IIS وDNS را انجام دهیم. یک Valid IP Address خریداری کنیم که باآن Valid IP Address به اینترنت متصل باشیم. (در واقع درعملیاتی که اکنون شرح داده میشود آن Valid IP را بعنوان Public Address واردکنیم) .

چنانچه قصد استفاده از NLB راهم داریم، بهتراست آدرس NLB را در مراحلی که ذکرخواهد شد بعنوان Private IP واردکنیم. البته با به یاد داشتن این نکته که NIC های درگیر در NLB باید مجزا باشند یعنی وب سرورها از طریق یک NIC خود با NAT در ارتباط باشند و از طریق NIC دیگرشان با یکدیگر NLB Cluster باشند) . آدرس Valid نباید share شده باشد (منظور از share شدن اینست که شبکه ها وکامپیوترهای دیگری هم بتوانند با این این IP در اینترنت مشغول باشند). بهتراست IP فوق ، الف- valid باشد ب- share نباشد ج- استاتیک باشد.

قابلیت Server Publishing  مزایایی دارد از جمله:

1- با یک Valid IP می توان چند سرور داخلی شبکه را در اینترنت منتشرکرد.

2- هیچکس از بیرون شبکه ( از طریق اینترنت) نمی تواند سرور(های) داخلی منتشرشده ما را هک کند و یا به آن دسترسی غیرمجاز پیداکند چون به علت وجودNAT ، شخص مهاجم حتی نمیتواند متوجه آدرس واقعی سرور Publish شده ما بشود.

همانطور که در بخش قبل آموختید در کنسول RRAS در زیر شاخه IPv4 ، روی NAT کلیک کرده و در پنل راست در پنجره properties مربوط به Inside Global NIC و در تب address pool میتوانیم لیست Valid IP های خود را ( که از یک ISP تهیه کرده ایم ) وارد کنیم تا Pool مربوطه تشکیل شود. اگر pool ایجاد نکنیم، آدرس Public کارت شبکه خارجی بعنوان IP برای NAT در نظر گرفته میشود.

………………………………………..

میدانیم که هر دیوایس و هر NIC وقتی به اینترنت متصل میشود بهرحال دارای یک Public IP خواهد بود. طبعا Inside Global NIC ما نیز در اینترنت دارای Public IP میباشد.

………………………………………..

همانطور که در شکل ذیل می بینید ما محدوده آدرس 84.25.92.241 تا 84.25.92.248 را تهیه کرده و آنرا در این تب add کرده ایم:

206-11 addrss pool added

توسط دکمه reservation میتوانیم یک Public IP را برای یک کامپیوتر بخصوص رزرو نمائیم که قابلیت بدردبخوری می باشد. روی دکمه فوق کلیک میکنیم. پنجره add reservation ظاهر میشود. اکنون میتوان مشخص کردکه هرگاه در اینترنت شخصی در یک مرورگر وب آدرس Valid IP ما را وارد کرد، NAT server ، کدام IP وکدام کامپیوترداخلی شبکه را مشخص کند. یعنی IP کامپیوتر وب سرور خود را باید مشخص کنیم. پس باید تعیین کنیم که کدام Valid IP متناظر باکدام Private IP باشد. ما در این سناریو قصد publish کردن کامپیوتر vserver003 خود را داریم. پس در پنجره add reservation مطابق شکل ذیل در فیلد Valid IP address یک آدرس Valid یعنی 84.25.92.244 را واردکرده و در فیلد Private IP نیز آدرس کامپیوتر vserver003 یعنی 192.168.0.8 را وارد می کنیم. چکباکس Allow Incoming Sessions to this address را باید فعال کنیم تا افراد از اینترنت بتوانند به این کامپیوتر مرتبط شوند.

206-12 add reservation

البته اگر عملیات Reservation را انجام ندهیم باز هم این سرور ما روی اینترنت Publish میشد ولی در هر اتصال ممکن بود دارای Valid IP متفاوتی باشد که برای یک عملیات Publish نوعی نقطه ضعف تلقی میشود. اکنون در پنجره های باز موجود روی دکمه OK کلیک کرده و به پنجره Properties متعلق به Outside NIC بازگشته وبه تب Services and Ports می رویم.

206-13 services and ports tab

در این باید تعیین کنیم که چه سرویس ها و پورت هایی از شبکه داخلی را قصد داریم در اختیار کاربران اینترنتی قرار دهیم. سرویس موردنظر را انتخاب کرده و دکمه edit را کلیک می کنیم. فرض کنید که قصد publish کردن سرویس FTP را داریم. در این لیست گزینه FTP Server را انتخاب کرده و دکمه edit را کلیک می کنیم. پنجره زیر ظاهر میشود:

206-14 edit service

باید در کادر private address آدرس میزبان FTP Server در شبکه داخلی را وارد کنیم. به این ترتیب اگر از اینترنت خواستند به FTP server داخلی شبکه درخواست بفرستند، درخواست آنها از طریق پورت TCP 21 به آدرسی که در اینجا وارد کرده ایم، می رود. ما آدرس 192.168.0.8 را وارد کرده ایم. اکنون کامپیوتر vserver003 را بعنوان یک FTP Server روی اینترنت Publish کرده ایم. میتوانستیم محدوده ای از آدرسهای موجود در Pool را نیز تعیین کنیم. در این صورت هر کامپیوتری از شبکه داخلی که از آدرسهای محدوده فوق برای اتصال به اینترنت استفاده کند، خواسته و ناخواسته بعنوان یک FTP Server روی اینترنت Publish خواهد بود.

 

 

مانیتورینگ در NAT

پس از اینکه مراحل نصب و پیکربندی NAT را انجام دادیم باید بتوانیم عملکردش را monitor کنیم. برای این کار باز در پنل سمت چپ کنسول و در ذیل IPv4 روی NAT راست کلیک کرده و یکی از دو گزینه ذیل را انتخاب می نماییم:

1- Show DHCP Allocator Information : نمایش اطلاعات مربوط به DHCP شامل لیست پیغامها و مراحل DORA

2- Show DNS Proxy Information : نمایش اطلاعات مربوط به عملیات DNS

البته این مانیتورینگ زمانی کارایی دارد که ما قابلیت های DHCP و DNS مربوط به NAT را فعال کرده باشیم که توصیه نمیشود.

همچنین میتوان پس از کلیک روی NAT در پنل سمت راست روی Inside Global NIC راست کلیک کرده گزینه Show Mapping را جهت مشاهده آدرس های Map شده انتخاب کرد. اطلاعات ذیل قابل مشاهده خواهند بود:

Protocol-Direction-Private address-Private Port-Public Address-Remote Address-Remote Port- idle Time .

در ضمن میتوان از کنسول Event Viewer نیز جهت مانیتورینگ NAT استفاده کرد.

مشاهده همه افزودن یک یادداشت
شما
دیدگاه خود را وارد کنید
رفتن به نوار ابزار