
يك روش براي داشتن چندين سيستم عامل بر روي يك كامپيوتر بدين صورت است كه سيستم عامل هاي مختلف به طور مستقل از هم،بر روي ديسك هاي فيزيكي يا پارتيشن هاي منطقي مختلف نصب مي شود و زماني كه سيستم بوت مي شود يك منو با نام سيستم هاي عامل ظاهر مي شود و شما مي توانيد هريك را كه خواستيد انتخاب كنيد و وارد همان سيستم عامل شويد. اولين نكته اي كه در اين مورد بايد مدنظر داشته باشيد،اين است كه براي داشتن راه اندازي چندگانه،ابتدا بايد فضاي حافظه را به تعداد سيستم عامل هايي كه مي خواهيد بر روي كامپيوتر داشته باشيد،به قسمت هاي مجزا و جدا از هم تقسيم كنيد. و البته غير از اين قسمت ها،بايد قسمت هايي از حافظه تان را هم براي ذخيره داده ها و اطلاعاتتان كنار بگذاريد كه بعدا” درباره اين موضوع دقيق تر صحبت مي كنيم. اگر كامپيوتر شخصي شما،بيش از يك هاردديسك دارد،تعريف و مشخص كردن اين فضاهاي جدا از هم براي هر سيستم عامل ساده است و مي توانيد هر هاردديسك را براي يك سيستم عامل كنار بگذاريد. اما غالبا” كامپيوترهاي خانگي داراي يك هاردديسك هستند. پس شما در ابتدا مجبوريد آن را به چندين قسمت يا پارتيشن تقسيم كنيد. اولين سكتور هر هارد ديسك فضايي است كه تحت عنوان ركورد راه انداز اصلي (Master boot record )يا MBR شناخته مي شود. MBR شامل يك جدول پارتيشن (pantition table ) است كه مشخص مي كند هارد چگونه بايد به چهار قسمت منطقي اصلي (aryprim ) تقسيم شود از آن جايي كه چهار قسمت معمولا” كافي نيست. يك قسمت اصلي مي تواند تحت عنوان پارتيشن الحاقي (logical partition )مختلف را تعريف كند. وقتي pc بوت مي شود،سيستم Blos كامپيوتر كه در حافظه ثابت و بدون تغيير CMOS ذخيره شده است،به دنبال يك وسيله راه انداز مناسب كه مي تواند يك ديسك فلاپي يا CD-Rom باشد،مي گردد (با توجه به پيكربندي Blos )اگر مناسب ترين و يا به عبارتي اولين وسيله راه اندازي مناسب تعريف شده روي Blos شما،هاردديسك كامپيوتر باشد،Blos قسمت MBR حافظه را مي خواند و شروع به اجراي تعدادي كد راه انداز كه در آن جا وجود دارد مي كند. كد راه انداز (boot code )به سراغ جدول پارتيشن فعال را مشخص سازد،سپس اطلاعاتي كه تحت عنوان boot sector volume شناخته مي شوند را در ابتداي آن پارتيشن load مي كند. در سيستم عامل هايي كه بر پايه ويندوز NT هستند. مثل ويندوز XP ،load كننده سيستم عامل فايلي است كه تحت عنوان NTLDR ناميده مي شود. اگر روي سيستم تك پارتيشني كار مي كنيد،مابقي فرآيند بسيار سر راست است. NTLDR يا معادل آن،بار كردن سيستم چند پارتيشني،ابتدا از شما سئوال مي شود كه راه اندازي از كدام پارتيشن فعال و سيستم عامل موجود در آن ادامه بدهيد و يا كنترل را به پارتيشن فعال و سيستم عامل موجود در آن ادامه بدهيد و يا كنترل را به پارتيشن ديگر (و سيستم عامل ديگر ) انتقال بدهيد. اين منو داراي يك بازه زماني است،كه پس از طي شدن اين زمان از پيش تعيين شده و انتخاب نشدن هيچ يك از گزينه هاي منو توسط شما،سيستم عامل پيش فرض به طور خودكار راه اندازي مي شود. اگر بخواهيد ببينيد كه چگونه منوي راه اندازي بر روي سيستم ساخته مي شود مي توانيد نگاهي به محتويات فايل سيستمي c:\boot.ini بياندازيد يا كنترل پانل (panel control ) را باز كرده و system را انتخاب و پس كليد Advanced را انتخاب كرده و دكمه Setting را كه در start up and Recoveny قرار دارد فشار دهيد و به محتويات system start up نگاه كنيد.
پارتيشن بندي
حال اجازه بدهيد ببينيم كه پارتيشن ها چگونه مديريت مي شوند و چگونه مي توان چندين سيستم عامل را روي سيستم نصب كرد.
ما قويا” توصيه مي كنيم كه ابتدا يك نسخه پشتيبان از سيستم تان تهيه كنيد و يك ديسك نجات (Rescue Disk ) هم قبل از دستكاري پيكر بندي هارد ديسك براي خودتان تهيه كنيد. ويندوز به گونه اي ساخته شده كه توانايي مديريت پارتيشن ها را دارد،اما اين شيوه هاي مديريتي بسيار ابتدايي اند و ممكن است باعث ايجاد رفتارهاي مخرب شوند. يعني ممكن است مقداري از اطلاعاتي را كه اكنون رو ي حافظه تان مي باشد از دست بدهيد و احتمالا” در پروسه تبديل سيستم موجود به يك سيستم راه انداز چندگانه دچار مشكلات جدي گرديد. به اين منظور مي توانيد مثلا” از ابزاري مثل Norton partition Magic8.0 (با قيمت 95/69 دلار از WWW.Symantec.com ) كه به شما اجازه تغيير اندازه، حركت و دستكارهاي ديگر پارتيشن ها را بدون ايجاد خرابي و مشكل مي دهد، استفاده كنيد. اين نرم افزار يك ويزارد دارد كه به طور خودكار شما را براي نصب يك سيستم عامل ديگر روي ماشيني كه در حال كار كردن بر روي آن هستيد،راهنمايي مي كند. اما اگر قصد استفاده از برنامه هاي كمكي را نداريد احتمالا” مجبوريد هاردديسك را دوباره پارتيشن بندي كنيد و سيستم عامل تان و ساير نرم افزارهاي كاربردي را بر روي آن نصب كنيد. براي انجام اين كار شما بايد سيستم تان را با CD ويندوز بوت كنيد. سپس پارتيشن فعلي ويندوز را حذف كنيد و بعد پارتيشن هاي جديدي با اندازه هاي مورد دلخواهتان ايجاد كنيد. سپس بايد فرآيند نصب ويندوز را در يكي از پارتيشن ها كامل كنيد. و بعد دوباره با CD سيستم عامل بعدي كه مي خواهيد روي ماشين تان نصب شود سيستم تان را بوت كنيد و آن سيستم عامل را هم روي يك پارتيشن ديگر نصب كنيد. اگر سيستم عامل بعدي كه قصد نصب آن را داريد نسخه اي از Linux باشد،شما دو گزينه براي انتخاب در اختيار داريد: يكي (Linux Loader ) LILO و ديگري GRUB (Grand Unified Boot Loader ) مي باشد كه در حقيقت عملي مشابه NTLDR را راه اندازي انجام مي دهد و به شما اين اجازه را مي دهد كه درطي فرآيند بوت شدن و بالا آمدن سيستم،سيستم عامل خودتان را انتخاب كنيد.
داده ها را كجا ذخيره كنيم
زماني كه چندين پارتيشن روي هاردديسك خود داريد،با اين سوال مواجه مي شويد كه حالا كجا بايد داده هايتان را ذخيره كنيد. اگر زمان زيادي را با يك سيستم عامل كار كرده باشيد،اين حس در شما ايجاد مي شود كه داده هايتان را در همان پارتيشن كه سيستم عامل در آن قرار دارد، ذخيره كنيد. اما اگر قصد داشته باشيد كه داده هايتان را به صورت متمركز نصب كنيد و به سيستم عامل خاصي وابسته نباشيد،بايد يك پارتيشن منطقي اضافي اختصاصي براي داده ها ايجاد كنيد. در اين صورت با هر سيستم عاملي كه بالا بيايد،آن سيستم عامل توانايي ديدن محتويات ساير پارتيشن هاي منطقي موجود روي هارد شما را دارد. براي مثال،ويندوز XP توانايي ديدن فايل هايي كه روي پارتيشن هاي FAT و NTFS قرار دارند را دارد. شما مي توانيد اين فرايند را با نرم افزار Partition Magic كنترل كنيد يا در كنترل پانل ويندوز به management computer و از آنجا به Storage و بعد (Local ) Disk Management برويد،روي يك پارتيشن كليك راست كنيد و Change Drive Leter را انتخاب و سپس paths را برگزينيد. (اگر plugin مديريت ديسك به درستي كار نكرد،شما ابتدا بايد به طور موقت فايروال ويندوز را در سرويس پك 2 غير فعال كنيد.) لينوكس هم مي تواند FAT و در بعضي موارد NTFS را ببينيد و به طور مستقيم به آن ها دسترسي داشته باشيد. اگر شما ترجيح بدهيد كه بعضي پارتيشن هاي موجود را مخفي كنيد. اين مساله با تغيير جدول پارتيشن با استفاده از Partition Magic و يا ساير نرم افزارها،امكان دارد. اما اين را بدانيد كه اين راه حل چندان مطمئني براي امنيت سيستم تان نيست چون اين پارتيشن هاي مخفي توسط هر كسي كه به ابزارهاي مشابه دسترسي داشته باشد،قابل ديدن هستند.
ماشين هاي مجازي
يك شيوه متفاوت ديگر براي داشتن چندين محيط متفاوت بر روي يك PC اين است كه بعضي از آن ها را در ماشين هاي مجازي(VMS ) اجرا كنيم. ماشين هاي مجازي در حقيقت شيوه اي براي شبيه سازي كامل سخت افزار كامپيوتر از طريق نرم افزار است. زماني كه شما فقط يك سيستم عامل بر روي كامپيوترتان داريد،مي توانيد يك ماشين مجازي هم داشته باشيد كه سيستم عامل مخصوص و مجزاي خود را روي ماشين اختصاصي خود داشته باشد. ماشين هاي مجازي داراي مزاياي زيادي اند،از جمله داشتن چندين سيستم عامل در كنار هم و به صورت متقارن،به طوري كه هر VM ،مي تواند آدرس IP خاص خود و اتصال شبكه مجازي خود را داشته باشد و در نتيجه شما مي توانيد با اين ماشين هاي مجازي و IP هاي جدا از هم،يك شبكه كامپيوتري كوچك را با يك PC شبيه سازي كنيد. يكي ديگر از مزاياي VM اين است كه شما از يك ماشين مجازي مي توانيد به عنوان نسخه پشتيبان سيستم تان استفاده كنيد. يك روش ديگر براي داشتن نسخه پشتيبان از سيستم استفاده از نرم افزاري مثل Norton Ghost 9.0 (96/99 دلار در www.symantec.com )است كه عملكرد آن دقيقا” مثل اين است كه از محتويات هارد ديسك عكس مي گيرد آن ها را فشرده مي سازد و در يك فايل ذخيره مي كند. يكي از مشكلات ماشين هاي مجازي پايين آوردن سرعت سيستم مي باشد. و ديگري هزينه اضافي است كه بايد بابت نرم افزار ماشين مجازي پرداخت شود. دو نرم افزار معروف ماشين مجازي براي PC ها عبارتند Umware workstation (189 دلار از www.umware.com )و Microsoft virtualpc (129 دلار از WWW.microsoft.com ) هر دوي اين نرم افزارها يك كار مشابه را انجام مي دهند :شما يك ماشين مجازي جديد ايجاد مي كنيد پارامترهايي از جمله مقادير RAM در فضاي هارد مشخص مي شود و سپس سيستم عامل انتخابي شما بر روي ماشين مجازي نصب مي شود. پس از آن يك كنسول كوچك به شما اجازه مي دهد كه يك ماشين مجازي را براي شروع كردن انتخاب كنيد.
استفاده از امكانات يونيكس بدون يونيكس !!!
گاهي اوقات نيازي نيست كه شما عامل را روي PC خود داشته باشيد و فقط مي خواهيد به بعضي از ويژگي هاي خاص و توانايي هاي آن سيستم عامل دسترسي داشته باشيد. براي مثال،اگر شما نياز به اجراي نرم افزاري كه بر مبناي يونيكس است،داشته باشيد. استفاده از cygwin (رايگان از www.cygwin.com ) مناسب است. كتابخانه DDL پوياي cygwin يك رابط برنامه نويسي شبيه به يونيكس ايجاد مي كند كه به بسياري از برنامه ها كه براي آن سيستم عامل طراحي شده اند اجازه شدن در محيط ويندوز را مي دهد. در اصل،آن برنامه ها تصور مي كنند كه به سرويس هاي يونيكس و توانايي هاي مورد انتظار دسترسي دارند. (cygwin فرمان هاي باينري را چندان خوب اجرا نمي كند لذا،شما مجبوريد كه آن ها را از كد اصلي دوباره كامپاتل كنيد.) cygwin همچنين يك shell خوب و جعبه ابزار كه به شما اجازه دسترسي كامل به خط فرمان يونيكس را مي دهد در اختيارتان قرار مي دهد،كه از دستور cmd.exe در اعلان ويندوز xp بسيار قوي تر و بهتر است( اين اعلان به شما اجازه دسترسي مستقيم به فايل هاي NTFS موجود ذخيره شده در خارج از cygwin را با ايجاد دايركتوري هاي like\cygdrive\c مي دهد.) اين مقاله فقط مي تواند گوشه چشمي به پديده مديريت چند سيستم عامل در يك ماشين باشد. به خصوص در سخت افزارهاي قديمي تر اين مديريت بسيار پيچيده تر مي شود كه موضوع آن در اين مقاله نمي گنجد. شما با به كار بردن يكي از تكنيك هاي بحث شده در اين مقاله،مي توانيد چندين سيستم عامل و محيط نرم افزاري را در ماشين خود داشته باشيد و به راحتي با آن ها كار كنيد و در وقت و هزينه خود صرفه جويي نماييد.
RootKit ها برنامه هایی هستند که از نظر ساختار کاری بسیار شبیه Trojan ها و Backdoor ها هستند ولی با این تفاوت که شناسایی RootKit بسیار مشکلتر از درب های پشتی است زیرا RootKit ها علاوه بر اینکه به عنوان یک برنامه کاربردی خارجی مثل شنونده Netcat و ابزارهای درب پشتی مثل Sub7 بر روی سیستم اجرا می شوند بلکه جایگزین برنامه های اجرایی مهم سیستم عامل و در گاهی مواقع جایگزین خود هسته کرنل می شوند و به هکرها این اجازه را می دهند که از طریق درب پشتی و پنهان شدن در عمق سیستم عامل به آن نفوذ کنند و مدت زیادی با خیال راحت با نصب ردیابها ( Sniffer ) و دیگر برنامه های مانیتورینگ بر روی سیستم اطلاعاتی را که نیاز دارند بدست آورند. در دنیای هکرها دو نوع RootKit اصلی وجود دارد که هر کدام تعریف جداگانه ای دارند.
1- RootKit سنتی : RootKit های سنتی با شناسایی اولین RootKit بسیار قدرتمند در اویل سال 1990 در طول یک دهه گسترش پیدا کردند و تا آنجا پیش رفتند که امروزه انواع مختلفی از RootKit های سنتی وجود دارند که به طور عملی خودشان نصب شده و به هکرها اجازه می دهند که به سرعت سیستم قربانی را فتح کنند. RootKit های سنتی برای سیستم عامل های مختلف نوشته شده اند ولی به طور سنتی بر روی سیستم های یونیکس مثلHP-UX - AIX - Linux - Solaris - SunOS و از این قبیل تمرکز کرده اند. ولی برای ویندوزهای سرور مثل NT/2000 نیز RootKit هایی نوشته شده اند که جایگزین کتابخانه های پیوند پویا ( DLL ) شده و یا سیستم را تغییر می دهند ولی تعداد زیادی از RootKit ها برای سیستم های یونیکس نوشته شده اند. RootKit ها اجازه دسترسی Root یا Administrator را به ما نمی دهند و ما هنگامی قادر به نصب آْنها بر روی یک سیستم هستیم که دسترسی ریشه ای و مدیر یک سیستم را توسط روش های دیگری مثل سرریز بافر ... به دست آورده باشیم. بنابراین یک RootKit یک سری ابزارهایی است که با پیاده سازی یک درب پشتی ( Backdoor ) و پنهان کردن مدارک استفاده از سیستم و ردپاها به هکر اجازه نگهداری دسترسی سطح ریشه را می دهد. ساختار کار تروجن ها به این صورت است که فایلی را در داخل هسته سیستم مثل پوشه System32 اضافه می کند و این فایل تمامی پسوردهای قربانی را Log کرده و برای هکر می فرستد و یا با باز کردن پورتی اجازه ورود هکر را از طریق پورت باز شده می دهد ولی RootKit های سنتی به جای اینکه فایلی در هسته سیستم قربانی اضافه کنند، سرویسها و فایل های اصلی و مهم سیستم عامل قربانی را با یک نسخه تغییر یافته آن که عملیاتی مخرب انجام می دهد جایگزین می کنند. برای مثال RootKit های معروف در سیستم های یونیکس برنامه /bin/loginرا که یکی از اساسی ترین ابزارهای امنیتی در Unix است را با یک نسخه تغییر یافته که شامل یک کلمه عبور درب پشتی برای دسترسی سطح ریشه می باشد عوض می کنند. سیستم های یونیکس از برنامه /bin/login برای جمع آوری و تست UserID های کلمات عبور استفاده می کند. /bin/login شناسه کاربری و پسورد تایپ شده توسط کاربر را با فایل پسوردها مقایسه می کند تا تعیین کند که پسورد داده شده توسط کاربر صحیح است یا خیر. اگر پسورد داده شده درست باشد روتین /bin/loginبه آن User اجازه ورود به سیستم را می دهد. خب با این توضیحی که دادیم فرض کنید که یک RootKit این برنامه را با برنامه نوشته شده خود عوض کند. اگر هکر از پسورد ریشه درب پشتی استفاده کند، برنامه /bin/login تغییر یافته و اجازه دسترسی به سیستم را می دهد. حتی اگر مدیر سیستم پسورد ریشه اصلی را عوض کند، هکر هنوز می تواند با استفاده از کلمه عبور ریشه درب پشتی به سیستم وارد شود. بنابراین یک روتین RootKit ، /bin/login یک درب پشتی است زیرا می تواند برای دور زدن کنترل های امنیتی نرمال سیستم مورد استفاده قرار گیرد. علاوه بر آن یک اسب تروا هم هست زیرا فقط چهره آن یک برنامه نرمال و زیبای Login است ولی در اصل یک Backdoor است. اکثر RootKit ها سرویس ها و برنامه هایی مثل DU - Find - Ifconfig - Login - ls - Netstat - ps را با RootKit خود جابه جا می کنند. هر یک از این برنامه های سیستمی با یک اسب تروای منحصر به فرد جایگزین می شود که عملکرد آنها شبیه به برنامه عادی است. همه این برنامه های Unix مانند چشم و گوش های مدیران سیستم می باشد که تعیین می کنند چه فایل ها و سرویس هایی در حال اجرا هستند. هکرها با پوشاندن چشم و گوشهای مدیران سیستم که توسط RootKit انجام می شود می توانند به صورت موثری حضورشان را در یک سیستم مخفی نگه دارند. linux RootKit 5 ( lrk5 ) و Tornkit دو نمونه از RootKit های سنتی هستند که برای سیستم های Linux و Solaris نوشته شده اند و در سایت آشیانه می توانید این RootKit ها را پیدا کنید. این RootKit ها به محض نصب شدن در سیستم قربانی خود را با سرویس های حیاتی و مهم سیستم عامل که در بالا ذکر شد جایگزین می کنند.
2- RootKit سطح هسته : این نوع از RootKit ها نسبت به نوع سنتی بسیار حرفه ای تر هستند و از نظر سطح پنهان سازی بسیار پا را فراتر از نوع سنتی گذاشته اند زیرا این RootKit ها در سطح ریشه پیاده سازی می شوند و این کار شناسایی و کنترل کردن آنها را بسیار مشکل تر کرده است. RootKit های سطح هسته به ما کنترل کاملی از سیستم اصلی و یک امکان قدرتمند برای جایگیری می دهد. یک هکر با ایجاد تغییرات اساسی در خود هسته، می تواند سیستم را در سطحی بسیار اساسی کنترل کرده و قدرت زیادی برای دسترسی به درب پشتی و پنهان شدن در ماشین را به دست آورد. خود هسته در حالی که یک کرنل زیبا و کارآمد به نظر می رسد تبدیل به یک اسب تروا می شود و در حقیقت Kernel فاسد می شود ولی صاحب سیستم از این موضوع بی خبر می ماند. درحالی که یک RootKit سنتی جایگزین برنامه های سیستمی حیاتی مثل برنامه های ifconfig - ls ... می شود ، یک RootKit سطح هسته در حقیقت جایگزین هسته می شود و یا آن را تغییر می دهد. تمامی فایل ها - دستورها - پردازشها و فعالیت های شبکه ای در سیستم آلوده به RootKit هسته پنهان می شوند و تمامی اعمال به سود هکر ضبط می شود. اغلب RootKit های سطح ریشه توسطLKM ها پیاده سازی می شوند. نصب RootKit های سطح هسته ای که توسطLKM ها پیاده سازی شده باشد، بسیار راحت است. برای مثال برای نصبKnrak Rootkit که برای هسته لینوکس نوشته شده است، یک هکر که با Account سطح ریشه یا همان Root به آن سیستم وصل است تنها کافی است insmod knark.o, را تایپ کند و ماژول نصب می شود و منتظر دستورات هکر می ماند و حتی نیازی به بوت کردن دوباره سیستم هم ندارد. RootKit های سطح هسته برای ویندوز NT هم وجود دارند که یک Patch را بر روی خود هسته اجرایی ویندوز NT بدون استفاده ازLKM ها اعمال می کند. چند تا از معروف ترین RootKit های سطح هسته Knrak و Adore برای سیستم های لینوکس ، Plasmoid برای سیستم های Solaris و RootKit سطح هسته ویندوز NT برای سیستم های سرور ویندوز نام دارند که همگی در لینک RootKit در سایت آشیانه برای اعضای سایت قرار داده شده اند.
راه های مقابله با RootKit های سنتی و RootKit های سطح هسته
مهمترین راه دفاع در برابر RootKit ها اجازه ندادن به هکرها در دسترسی به حساب مدیر است. همانطور که در بالا ذکر شد یک هکر برای نصب یک RootKit باید دسترسی سطح ریشه داشته باشد و اگر ما بتوانیم همیشه راه های نفوذ و آسیب های جدید سیستم عاملمان را شناسایی و آنها را از بین ببریم شانس دستیابی هکر به حساب ریشه سیستم خود را تقریباً به صفر رسانده ایم. در مرحله بعد اگر فرض کنیم که با بی احتیاطی ما ، هکری توانست بر روی سیستم ما RootKit نصب کند، یکی از راه های تست این که سیستم ما RootKit شده است یا خیر استفاده از دستورEcho است. تعداد بسیار کمی از RootKit ها ، دستور echo را که برای لیست کردن محتویات یک دایرکتوری می باشد تروا می کنند و اکثر RootKit ها بر روی تروا کردن ls تمرکز کرده اند. به همین دلیل echo یک لیست قانونی از محتویات یک دایرکتوری را برمی گرداند و اگر نتیجه ای که echo بر می گرداند با چیزی که دستور ls برای دایرکتوری داده شده نشان می دهد متفاوت باشد ممکن است چیزی در آن دایرکتوری پنهان شده باشد که این نتیجه را می رساند که سیستم شما RootKit شده است. ولی در کل این روش زیاد موثر نیست چون جستجوی تمام سیستم فایل برای یافتن هر اختلافی بین فایل های لیست شده در خروجی Echo و ls وقت زیادی را صرف می کند. امروزه ابزارهای مختلفی برای آنالیز برنامه Rootkit/bin/login وجود دارد که مشخص می کنند آیا RootKit شناخته شده ای نصب شده است یا خیر. این ابزارها وقتی که بر روی سیستم نصب می شوند به صورت دوره ای فایل های مهم بر روی سیستم را مثل /bin/login چک می کنند تا از وجود RootKit باخبر شوند که برنامه ChRootkit ابزاری جالب در این زمینه است ولی درکل بهترین راه دفاع در برابر RootKit ها استفاده از تکنولوژی اثر انگشت دیجیتالی قوی می باشد تا به صورت دوره ای درستی فایل های سیستم بحرانی را تحقیق نماید. MD5 ( یک تابع درهم ساز یک طرفه ) یک الگوریتم بسیار مناسب برای محاسبه این نوع اثر انگشتهای قوی می باشد. با محاسبه یک اثر انگشت Encrypt شده قوی برای فایل های سیستمی مهم یک هکر قادر نخواهد بود که فایلی را تغییر داده و با همان اثر انگشت وارد شود.TripWire یک ابزار قوی برای تست صحت است که در سایت آشیانه برای دانلود قرار داده شده است. TripWire درهم سازی MD5 ای از فایل های بحرانی مثل/etc/passwd/bin/login - ls - ps و ... ساخته و به صورت دوره ای این درهم سازی را با یک پایگاه داده ای امن مقایسه می کند. در صورت تغییر در MD5 یک سرویس سریع به مدیر سیستم اطلاع می دهد. همچنین در RootKit های سطح هسته Scan پورت ها در شبکه که با استفاده از ابزارهایی مثل Nmap صورت گیرد پورت های شنونده را به مدیر امنیتی سیستم نشان خواهد داد. به همین دلیل پویش دوره ای سیستم در طول شبکه برای پیدا کردن رد RootKit بسیار مفید است. در آخر ذکر این نکته لازم است که اگر سیستم شما با تمام این ملاحظات آلوده به RootKit شد بهترین راه از بین بردن آن فرمت هسته و نصب مجدد سیستم عامل است.
Proxy Server
در یک تشکیلات که از اینترنت استفاده میکند، یک پراکسی سرور ترکیبی از سختافزار و نرمافزار است که بعنوان یک واسطه بین کاربر داخلی و اینترنت عمل میکند به طوریکه امنیت، نظارت مدیریتی و سرویسهای caching تامین میشود. یک سرور پراکسی دارای پروتکل مشخصی است، بنابراین برای هرنوع پروتکلی (HTTP، FTP، Gogher و غیره) باید تنظیم شود. پراکسی سرور بعنوان بخشی از یک سرور gateway (نقطهای در یک شبکه که ورودی به شبکهای دیگر است) رفتار میکند و میتواند برای انجام یک یا چند فانکشن که در بخش بعد به آن اشاره میشود، تنظیم شود.
عملکردهایی که پراکسی سرور میتواند داشته باشد
با تعریفی که از یک پراکسی ارائه شد، میتوان از پراکسی برای بهبود عملکرد یک شبکه استفادههایی کرد که در اینجا به چند مورد آن به اختصار اشاره میکنیم:
· Firewall (دیواره آتش)
برای سازمانی که فایروال دارد، پراکسی سرور تقاضاهای کاربران را به فایروال میدهد که با آنها اجازه ورود یا خروج به شبکه داخلی را میدهد.
· Caching (ذخیره سازی)
سرور پراکسی که عمل caching را انجام میدهد، منابعی مانند صفحات وب و فایلها را ذخیره میکند. هنگامی که یک منبع مورد دسترسی قرار گرفت، در سرور دخیره میشود و تقاضاهای بعدی برای همین منبع مشخص با محتویات cache پاسخ داده میشود. این عمل، دسترسی به آن منبع را برای کاربرانی که از طریق پراکسی به اینترنت متصل هستند، سرعت میبخشد و از طرفی از ترافیک اینترنت میکاهد و اجازه استفاده بهتر از پهنای باند به کاربران داده میشود.
· Filtering (فیلتر کردن)
سرور پراکسی میتواند ترافیک وارد شونده و خارج شونده از شبکه را بررسی کند و به آنچه که با معیارهای امنیتی یا سیاست سازمان مغایرت دارد، اجازه عبور ندهد.
· Authentication (تصدیق هویت)
بسیاری منابع الکترونیکی سازمانی توسط ورود با کلمه رمز یا قرار داشتن در دامنه مشخصی از IP محدود شدهاند. کاربران دور معمولاً از یک سرویسدهنده اینترنت ثالث استفاده میکنند که در این صورت این کاربر یا IP کامپیوتر آن برای سازمان معتبر تشخیص داده نمیشود. برای کاربرانی که بصورت فیزیکی به شبکه داخلی سازمان متصل نشدهاند، پراکسی طوری عمل میکند که به کاربران دور اجازه ورود موقت داده شود یا به آنها بطور موقت یک IP سازمان تخصیص داده شود که بتوانند به منابع محدود شده دسترسی پیدا کنند.
· Anonymization (تغییر هویت)
برای محافظت شبکه داخلی یک سازمان از کاربران موجود در اینترنت، سرور پراکسی میتواند هویت سیستمهای متقاضی داخلی را تغییر دهد. اگر منبع (مثلاً صفحه وب یا فایل) تقاضا شده توسط کاربر داخلی سازمان، در cache موجود نباشد، سرور پراکسی برای آن کاربر، بعنوان کلاینت عمل میکند و از یکی از آدرسهای IP خودش برای تقاضای آن منبع از سرور موجود در اینترنت استفاده میکند. این آدرس IP «موقت»، آدرسی نیست که واقعاً در شبکه داخلی سازمان استفاده گردد و در نتیجه از بعضی از حملههای نفوذگران جلوگیری میشود. هنگامی که صفحه تقاضا شده، از طرف سرور روی اینترنت به پراکسی سرور میرسد، پراکسی سرور آن را به تقاضای اولیه مرتبط میکند و برای کاربر میفرستد. این پروسه تغییر دادن IP باعث میشود که تقاضا دهنده اولیه قابل ردیابی نباشد و همچنین معماری شبکه سازمان از دید بیرونی مخفی بماند.
· Logging (ثبت کردن)
پراکسی سرور میتواند تقاضاها را بهمراه اطلاعات لازم در جایی ثبت کند تا بعداً امکان پیگیری اعمال کاربران داخل سازمان فراهم شود.
پیکربندی مرورگر
· تعامل کاربر: کاربر باید از ابتدا مرورگر خود را پیکربندی کند که بدین ترتیب نیاز است که اطلاعات را از پشتیبانی فنی سازمان بدست آورد.
· پیکربندی دستی: در این پیکربندی کاربر باید سروری را که نرمافزار پراکسی را اجرا میکند، مشخص کند. کاربر باید استثنائات هر دامنهای را که میتواند بطور مستقیم به آن وصل شود، مشخص کند و به این ترتیب در اتصال به این دامنههای مشخصشده، پراکسی در مسیر قرار نمیگیرد.
· پیکربندی خودکار: یک فایل تنظیم پیکربندی توسط سازمان که منطق استفاده از پراکسی توسط مرورگر در آن قرار دارد. URL فایل باید در پیکربندی مرورگر وارد گردد. اینکه یک تقاضا از طریق پراکسی مسیریابی شود یا خیر، بستگی به شروط موجود در آن فایل دارد.
NAT چيست؟
اينترنت با سرعتی باورنکردنی همجنان در حال گسترش است . تعداد کامپيوترهای ارائه دهنده اطلاعات ( خدمات ) و کاربران اينترنت روزانه تغيير و رشد می يابد. با اينکه نمی توان دقيقا" اندازه اينترنت را مشخص کرد ولی تقريبا" يکصد ميليون کامپيوتر ميزبان (Host) و 350 ميليون کاربر از اينترنت استفاده می نمايند. رشد اينترنت چه نوع ارتباطی باNetwork Address Translation) NAT ) دارد؟ هر کامپيوتر بمنظور ارتباط با ساير کامپيوترها و سرويس دهندگان وب بر روی اينترنت، می بايست دارای يک آدرس IP باشد. IP يک عدد منحصر بفرد 32 بيتی بوده که کامپيوتر موجود در يک شبکه را مشخص می کند.
اولين مرتبه ای که مسئله آدرس دهی توسط IP مطرح گرديد، کمتر کسی به اين فکر می افتاد که ممکن است خواسته ای مطرح شود که نتوان به آن يک آدرس را نسبت داد. با استفاده از سيستم آدرس دهی IP می توان 4.294.976.296 (232) آدرس را توليد کرد. ( بصورت تئوری ). تعداد واقعی آدرس های قابل استفاده کمتر از مقدار ( بين 3.2 ميليارد و 3.3 ميليارد ) فوق است . علت اين امر، تفکيک آدرس ها به کلاس ها و رزو بودن برخی آدرس ها برای multicasting ، تست و موارد خاص ديگر است .
همزمان با انفجار اينترنت ( عموميت يافتن) و افزايش شبکه های کامپيوتری ، تعداد IP موجود، پاسخگوی نيازها نبود. منطقی ترين روش، طراحی مجدد سيستم آدرس دهی IP است تا امکان استفاده از آدرس های IP بيشَتری فراهم گردد. موضوع فوق در حال پياده سازی بوده و نسخه شماره شش IP ، راهکاری در اين زمينه است . چندين سال طول خواهد کشيد تا سيستم فوق پياده سازی گردد، چراکه می بايست تمامی زيرساخت های اينترنت تغيير واصلاح گردند. NAT با هدف کمک به مشکل فوق طراحی شده است . NAT به يک دستگاه اجازه می دهد که بصورت يک روتر عمل نمايد. در اين حالت NAT بعنوان يک آژانس بين اينترنت ( شبکه عمومی ) و يک شبکه محلی ( شبکه خصوصی ) رفتار نمايد. اين بدان معنی است که صرفا" يک IP منحصر بفرد بمنظور نمايش مجموعه ای از کامپيوترها( يک گروه ) مورد نياز خواهد بود.
کم بودن تعداد IP صرفا" يکی از دلايل استفاده از NAT است .در ادامه به بررسی علل استفاده از NATخواهيم پرداخت .
قابليت های NAT
عملکرد NAT مشابه يک تلفتچی در يک اداره بزرگ است . فرض کنيد شما به تلفنچی اداره خود اعلام نموده ايد که تماس های تلفنی مربوط به شما را تا به وی اعلام ننموده ايد ، وصل نکند . در ادامه با يکی ازمشتريان تماس گرفته و برای وی پيامی گذاشته ايد که سريعا" با شما تماس بگيرد. شما به تلفتچی اداره می گوئيد که منتظر تماس تلفن از طرف يکی از مشتريان هستم، در صورت تماس وی ، آن را به دفتر من وصل نمائيد. در ادامه مشتری مورد نظر با اداره شما تماس گرفته و به تلفنچی اعلام می نمايد که قصد گفتگو با شما را دارد ( چراکه شما منتظر تماس وی هستيد ). تلفنچی جدول مورد نظر خود را بررسی تا نام شما را در آن پيدا نمايد. تلفنچی متوجه می شود که شما تلفن فوق را درخواست نموده ايد، بنابراين تماس مورد نظر به دفتر شما وصل خواهد شد.
NAT توسط شرکت سيسکو و بمنظور استفاده در يک دستگاه ( فايروال ، روتر، کامپيوتر ) ارائه شده است .NAT بين يک شبکه داخلی و يک شبکه عمومی مستقر و شامل مدل ها ی متفاوتی است .
- NAT ايستا . عمليات مربوط به ترجمه يک آدرس IP غير ريجستر شده ( ثبت شده ) به يک آدرس IP ريجستر شده را انجام می دهد. ( تناظر يک به يک ) روش فوق زمانيکه قصد استفاده از يک دستگاه را از طريق خارج از شبکه داشته باشيم، مفيد و قابل استفاده است . در مدل فوق همواره IP 192.168.32.10 به IP 213.18.123.110 ترجمه خواهد شد.
- NAT پويا . يک آدرس IP غير ريجستر شده را به يک IP ريجستر شده ترجمه می نمايد. در ترجمه فوق از گروهی آدرس های IP ريجستر شده استفاده خواهد شد.
- OverLoading . مدل فوق شکل خاصی از NAT پويا است . در اين مدل چندين IP غير ريجستر شده به يک IP ريجستر شده با استفاده از پورت های متعدد، ترجمه خواهند شد. به روش فوق PAT)Port Address Translation) نيز گفته می شود.
- Overlapping . در روش فوق شبکه خصوصی از مجموعه ای IP ريجستر شده استفاده می کند که توسط شبکه ديگر استفاده می گردند. NAT می بايست آدرس های فوق را به آدرس های IP ريجستر شده منحصربفرد ترجمه نمايد. NAT همواره آدرس های يک شبکه خصوصی را به آدرس های ريجستر شده منحصر بفرد ترجمه می نمايد. NAT همچنين آدرس های ريجستر شده عمومی را به آدرس های منحصر بفرد در يک شبکه خصوصی ترجمه می نمايد. ( در هر حالت خروجی NAT ، آدرس های IP منحصر بفرد خواهد بود. آدرس های فوق می تواند در شبکه های عمومی ريجستر شده جهانی باشند و در شبکه های خصوصی ريجستر شده محلی باشند )
شبکه اختصاصی ( خصوصی ) معمولا" بصورت يک شبکه LAN می باشند . به اين نوع شبکه ها که از آدرس های IP داخلی استفاده می نمايند حوزه محلی می گويند. اغلب ترافيک شبکه در حوزه محلی بصورت داخلی بوده و بنابراين ضرورتی به ارسال اطلاعات خارج از شبکه را نخواهد داشت . يک حوزه محلی می تواند دارای آدرس های IP ريجستر شده و يا غيرريجستر شده باشد. هر کامپيوتری که از آدرس های IP غيرريجستر شده استفاده می کنند، می بايست از NAT بمنظور ارتباط با دنيای خارج از شبکه محلی استفاده نمايند.
NAT می تواند با استفاده از روش های متفاوت پيکربندی گردد. در مثال زير NAT بگونه ای پيکربندی شده است که بتواند آدرس های غير ريجستر شده IP ( داخلی و محلی ) که بر روی شبکه خصوصی ( داخلی ) می باشند را به آدرس های IP ريجستر شده ترجمه نمايد.
- يک ISP ( مرکز ارائه دهنده خدمات اينترنت ) يک محدوده از آدرس های IP را برای شرکت شما در نظر می گيرد. آدرس های فوق ريجستر و منحصر بفرد خواهند بود . آدرس های فوق Inside global ناميده می شوند. آدرس های IP خصوصی و غيرريچستر شده به دو گروه عمده تقسيم می گردند : يک گروه کوچک که توسط NAT استفاده شده (Outside local address) و گروه بزرگتری که توسط حوزه محلی استفاده خواهند شد ( Inside local address) . آدرس های Outside local بمنظور ترجمه به آدرس های منحصربفرد IP استفاده می شوند.آدرس های منحصر بفرد فوق، outside global ناميده شده و اختصاص به دستگاههای موجود بر روی شبکه عمومی ( اينترنت) دارند.
- اکثر کامپيوترهای موجود در حوزه داخلی با استفاده از آدرس های inside local با يکديگر ارتباط برقرار می نمايند.
- برخی از کامپيوترهای موجود در حوزه داخلی که نيازمند ارتباط دائم با خارج از شبکه باشند ،از آدرس های inside global استفاده و بدين ترتيب نيازی به ترجمه نخواهند داشت .
- زمانيکه کامپيوتر موجود در حوزه محلی که دارای يک آدرس inside local است، قصد ارتباط با خارج شبکه را داشته باشد بسته های اطلاعاتی وی در اختيار NAT قرار خواهد گرفت .
- NAT جدول روتينگ خود را بررسی تا به اين اطمينان برسد که برای آدرس مقصد يک entry در اختيار دارد. در صورتيکه پاسخ مثبت باشد، NAT بسته اطلاعاتی مربوطه را ترجمه و يک entry برای آن ايجاد و آن را در جدول ترجمه آدرس (ATT) ثبت خواهد کرد. در صورتيکه پاسخ منفی باشد بسته اطلاعاتی دور انداخته خواهد شد.
- با استفاده از يک آدرس inside global ، روتر بسته اطلاعاتی را به مقصد مورد نظر ارسال خواهد کرد.
- کامپيوتر موجود در شبکه عمومی ( اينترنت )، يک بسته اطلاعاتی را برای شبکه خصوصی ارسال می دارد. آدرس مبداء بسته اطلاعاتی از نوع outside global است . آدرس مقصد يک آدرس inside global است .
- NAT در جدول مربوطه به خود جستجو و آدرس مقصد را تشخيص و در ادامه آن را به کامپيوتر موجود در حوزه داخلی نسبت خواهد کرد.
- NAT آدرس های inside global بسته اطلاعاتی را به آدرس های inside local ترجمه و آنها را برای کامپيوتر مقصد ارسال خواهد کرد.
روش Overloading از يک ويژگی خاص پروتکل TCP/IP استفاده می نمايد. ويژگی فوق اين امکان را فراهم می آورد که يک کامپيوتر قادر به پشتيبانی از چندين اتصال همزمان با يک و يا چندين کامپيوتر با استفاده از پورت های متفاوت TCP و يا UDP باشد.. يک بسته اطلاعاتی IP دارای يک هدر(Header) با اطلاعات زير است :
آدرس مبداء . آدرس کامپيوتر ارسال کننده اطلاعات است .
پورت مبداء. شماره پورت TCP و يا UDP بوده که توسط کامپيوتر مبداء به بسته اطلاعاتی نسبت داده شده است .
آدرس مقصد : آدرس کامپيوتر دريافت کننده اطلاعات است .
پورت مقصد. شماره پورتTCP و يا UDP بوده که کامپيوتر ارسال کننده برای باز نمودن بسته اطلاعاتی برای گيرنده مشخص کرده است .
آدرس ها ، کامپيوترهای مبداء و مقصد را مشخص کرده ، در حاليکه شماره پورت اين اطمينان را بوجود خواهد آورد که ارتباط بين دو کامپيوتر دارای يک مشخصه منحصر بفرد است . هر شماره پورت از شانزده بيت استفاده می نمايد.( تعداد پورت های ممکن 65536 ( 16 2 ) خواهد بود ) . عملا" از تمام محدوده پورت های فوق استفاده نشده و 4000 پورت بصورت واقعی استفاده خواهند شد.
NAT پويا و Overloading
نحوه کار NAT پويا بصورت زير است :
- يک شبکه داخلی ( حوزه محلی) با استفاده از مجموعه ای از آدرس های IP که توسط IANA)Internet Assigned Numbers Authority) به شرکت و يا موسسه ای اختصاص داده نمی شوند پيکربندی می گردد. ( سازمان فوق مسئول اختصاص آدرس های IP در سطح جهان می باشد) آدرس های فوق بدليل اينکه منحصربفرد می باشند، غير قابل روتينگ ناميده می شوند.
- موسسه مربوطه يک روتر با استفاده از قابليت های NAT را پيکربندی می نمايد. روتر دارای يک محدوده از آدرس های IP منحصر بفرد بوده که توسط IANA د ر اختيار موسسه و يا شرکت مربوطه گذاشته شده است .
- يک کامپيوتر موجود بر روی حوزه محلی سعی درايجاد ارتباط با کامپيوتری خارج از شبکه ( مثلا" يک سرويس دهنده وب) را دارد.
- روتر بسته اطلاعاتی را از کامپيوتر موجود در حوزه محلی دريافت می نمايد.
- روتر آدرس IP غيرقابل روت را در جدول ترجمه آدرس ها ذخيره می نمايد. روتر آدرس IP غير قابل روت را با يک آدرس از مجموعه آدرس های منحصر بفرد جايگزين می نمايد. بدين ترتيب جدول ترجمه، دارای يک رابطه ( معادله ) بين آدرس IP غيرقابل روت با يک آدرس IP منحصر بفرد خواهد بود.
- زمانيکه يک بسته اطلاعاتی از کامپيوتر مقصد مراچعت می نمايد، روتر آدرس مقصد بسته اطلاعاتی را بررسی خواهد کرد.بدين منظور روتر در جدول آدرسهای ترجمه شده جستجو تا از کامپيوتر موجود در حوزه محلی که بسته اطلاعاتی به آن تعلق دارد، آگاهی پيدا نمايد.روتر آدرس مقصد بسته اطلاعاتی را تغيير ( از مقادير ذخيره شده قبلی استفاده می کند ) و آن را برای کامپيوتر مورد نظر ارسال خواهد کرد. در صورتيکه نتيجه جستجو در جدول، موفقيت آميز نباشد، بسته اطلاعاتی دور انداخته خواهد شد.
- کامپيوتر موجود در حوزه ، بسته اطلاعاتی را دريافت می کند. فرآيند فوق ماداميکه کامپيوتر با سيستم خارج از شبکه ارتباط دارد، تکرار خواهد شد.
نحوه کار Overloading پويا بصورت زير است :
- يک شبکه داخلی ( حوزه محلی) با استفاده از مجموعه ای از آدرس های IP که توسط IANA)Internet Assigned Numbers Authority) به شرکت و يا موسسه ای اختصاص داده نمی شوند پيکربندی می گردد. آدرس های فوق بدليل اينکه منحصربفرد می باشند غير قابل روتينگ ناميده می شوند.
- موسسه مربوطه يک روتر را با استفاده از قابليت های NAT ، پيکربندی می نمايد. روتر دارای يک محدوده از آدرس های IP منحصر بفرد بوده که توسط IANA د ر اختيار موسسه و يا شرکت مربوطه گذاشته شده است .
- يک کامپيوتر موجود بر روی حوزه داخلی ، سعی درايجاد ارتباط با کامپيوتری خارج از شبکه( مثلا" يک سرويس دهنده وب) را دارد.
- روتر بسته اطلاعاتی را از کامپيوتر موجود در حوزه داخلی دريافت می نمايد.
- روتر آدرس IP غيرقابل روت و شماره پورت را در جدول ترجمه آدرس ها ذخيره می نمايد. روتر آدرس IP غير قابل روت را با يک آدرس منحصر بفرد جايگزين می نمايد. روتر شماره پورت کامپيوتر ارسال کننده را با شماره پورت اختصاصی خود جايگزين و آن را در محلی ذخيره تا با آدرس کامپيوتر ارسال کننده اطلاعات ، مطابقت نمايد.
- زمانيکه يک بسته اطلاعاتی از کامپيوتر مقصد مراچعت می نمايد ، روتر پورت مقصد بسته اطلاعاتی را بررسی خواهد کرد.بدين منظور روتر در جدول آدرس های ترجمه شده جستجو تا از کامپيوتر موجود در حوزه داخلی که بسته اطلاعاتی به آن تعلق دارد آگاهی پيدا نمايد.روتر آدرس مقصد بسته اطلاعاتی و شماره پورت را تغيير ( از مقادير ذخيره شده قبلی استفاده می کند ) و آن را برای کامپيوتر مورد نظر ارسال خواهد کرد. در صورتيکه نتيجه جستجو در جدول ، موفقيت آميز نباشد بسته اطلاعاتی دور انداخته خواهد شد.
- کامپيوتر موجود در حوزه داخلی ، بسته اطلاعاتی را دريافت می کند. فرآيند فوق ماداميکه کامپيوتر با سيستم خارج از شبکه ارتباط دارد، تکرار خواهد شد.
- با توجه به اينکه NAT آدرس کامپيوتر مبداء و پورت مربوطه آن را در جدول ترجمه آدرس ها ذخيره شده دارد، ماداميکه ارتباط فوق برقرار باشد از شماره پورت ذخيره شده ( اختصاص داده شده به بسته اطلاعاتی ارسالی) استفاده خواهد کرد. روتر دارای يک Timer بوده وهر بار که يک آدرس از طريق آن استفاده می گردد reset می گردد.در صورتيکه در مدت زمان مربوطه ( Timer صفر گردد ) به اطلاعات ذخيره شده در NAT مراجعه ای نشود، اطلاعات فوق ( يک سطر از اطلاعات ) از داخل جدول حذف خواهند شد.
Source
Computer
Source
Computer's
IP Address
Source
Computer's
Port
NAT Router's
IP Address
NAT Router's
Assigned
Port Number
A
192.168.32.10
400
215.37.32.203
1
B
192.168.32.13
50
215.37.32.203
2
C
192.168.32.15
3750
215.37.32.203
3
D
192.168.32.18
206
215.37.32.203
4
در صورتيکه برخی ازکامپيوترهای موجود در شبکه خصوصی از آدرس های IP اختصاصی خود استفاده می نمايند ، می توان يک ليست دستيابی از آدرس های IP را ايجاد تا به روتر اعلام نمايد که کداميک از کامپيوترهای موجود در شبکه به NAT نياز دارند.
تعداد ترجمه های همزمانی که يک روتر می تواند انجام دهد، ارتباط مستقيم با حافظه اصلی سيستم دارد. با توجه به اينکه در جدول ترجمه آدرس هر entry صرفا" 160 بايت را اشغال خواهد کرد، يک روتر با 4 مگابايت حافظه قادر به پردازش 26.214 ترجمه همزمان است. مقدار فوق برای اغلب موارد کافی بنظر می آيد.
IANA محدوده ای از آدرس های IP را که غيرفابل روت بوده و شامل آدرس های داخلی شبکه هستند مشخص نموده است .آدرس های فوق غيرريجستر شده می باشند.. هيچ شرکت و يا آژانسی نمی تواند ادعای مالکيت آدرس های فوق را داشته باشد و يا آنها را در شبکه های عمومی ( اينترنت ) استفاده نمايد. روترها بگونه ای طراحی شده اند که آدرس های فوق را عبور (Forward) نخواهند کرد.
Range 1: Class A - 10.0.0.0 through 10.255.255.255
Range 2: Class B - 172.16.0.0 through 172.31.255.255
Range 3: Class C - 192.168.0.0 through 192.168.255.255
امنيت
همزمان با پياده سازی يک NAT پويا، يک فايروال بصورت خودکار بين شبکه داخلی و شبکه های خارجی ايجاد می گردد. NAT صرفا" امکان ارتباط به کامپيوترهائی را که در حوزه داخلی می باشند را خواهد داد. اين بدان معنی است که يک کامپيوتر موجود در خارج از شبکه داخلی ، قادر به ارتباط مستقيم با يک کامپيوتر موجود در حوزه داخلی نبوده ، مگر اينکه ارتباط فوق توسط کامپيوتر شما مقدار دهی اوليه ( هماهنگی های اوليه از بعد مقداردهی آدرس های مربوطه ) گردد. شما براحتی قادر به استفاده از اينترنت دريافت فايل و ... خواهيد بود ولی افراد خارج از شبکه نمی توانند با استفاده از آدرس IP شما، به کامپيوتر شما متصل گردند. NAT ايستا ، امکان برقراری ارتباط با يکی از کامپيوترهای موجود در حوزه داخلی توسط دستگاههای موجود در خارج از شبکه را ، فراهم می نمايند.
برخی از روترهای مبتنی بر NAT امکان فيلترينگ و ثبت ترافيک را ارائه می دهند. با استفاده از فيلترينگ می توان سايت هائی را که پرسنل يک سازمان از آنها استفاده می نمايند را کنترل کرد.با ثبت ترافيک يک سايت می توان از سايت های ملاقات شده توسط کاربران آگاهی و گزارشات متعددی را بر اساس اطلاعات ثبت شده ايجاد کرد.
NAT دربرخی موارد با سرويس دهندگان Proxy ، اشتباه در نظر گرفته می شود. NAT و Proxy دارای تفاوت های زيادی می باشند. NAT بی واسطه بين کامپيوترهای مبداء و مقصد قرار می گيرد. Proxy بصورت بی واسطه نبوده و پس از استقرار بين کامپيوترهای مبداء و مقصد تصور هر يک از کامپيوترهای فوق را تغيير خواهد داد. کامپيوتر مبداء می داند که درخواستی را از Proxy داشته و می بايست بمنظور انجام عمليات فوق ( درخواست ) پيکربندی گردد. کامپيوتر مقصد فکر می کند که سرويس دهنده Proxy بعنوان کامپيوتر مبداء می باشد. Proxy در لايه چهارم (Transport) و يا بالاتر مدل OSI ايفای وظيفه می نمايد در صورتيکه NAT در لايه سوم (Network) فعاليت می نمايد. Proxy ، بدليل فعاليت در لايه بالاتر در اغلب موارد از NAT کندتر است .