واژگان بسته های اطلاعاتی ( Packets )
در هر یک از لایه های TCP/IP از بسته اطلاعاتی با اسامی متفاوتی نام برده می شود . همزمان با حرکت یک بسته اطلاعاتی از یک لایه به لایه دیگر در پروتکل TCP/IP ، هر یک از پروتکل های مربوطه ، اطلاعات اختصاصی خود را به آن اضافه می نمایند. از بسته اطلاعاتی بهمراه اطلاعات اضافه شده به آن ، با اسامی فنی دیگر ، یاد می گردد. این اسامی: سگمنت 1پیام 2 دیتاگرام 3 و فریم4 می باشند.
سگمنت : سگمنت واحد انتقال اطلاعات در TCP بوده و شامل یک TCP header است که توسط Application data ، همراهی شده است .
پیام : پیام ، واحد انتقال اطلاعات در پروتکل هائی نظیر ICMP,UDP,IGMP و ARP است . پیام شامل یک Protocol header بوده که توسط Application و یا protocol data ، همراهی شده است .
دیتاگرام: دیتاگرام ، واحد انتقال اطلاعات در سطح لایه IP است . دیتاگرام شامل یک IP header است که توسط لایه transport ، همراهی شده است .
فریم : فریم واحد انتقال اطلاعات در سطح لایه اینترفیس شبکه است فریم شامل یک header است که در لایه network به آن اضافه شده است که توسط داده لایه IP همراه شده است .
1-2 : اجزاء یک فریم
یک فریم ( اصطلاحی برای یک بسته اطلاعاتی در سطح لایه شبکه ) شامل سه بخش اساسی header , data و trailer است .
Header اطلاعات موجود در این بخش شامل موارد زیر می باشد :
یک سیگنال هشداردهنده مبنی بر ارسال یک بسته اطلاعاتی
آدرس مبداء
آدرس مقصد
Data
در این بخش اطلاعات واقعی ارسال شده توسط برنامه ، قرار می گیرد. این بخش از بسته اطلاعاتی دارای اندازه های متفاوتی است ( بستگی به محدودیت اندازه تنظیم شده توسط شبکه دارد) . بخش Data ، در اکثر شبکه ها از نیم کیلو بایت تا چهار کیلو بایت را می تواند شامل شود. در شبکه های اترنت ، اندازه داده تقریبا" معادل یک و نیم کیلو بایت است . با توجه به اینکه اکثر تنظیمات داده های اولیه ، بیش از چهار کیلو بایت می باشند ،می بایست داده به بخش های کوچکتری با نام " بسته های اطلاعاتی " 5 تقسیم گردد. در زمان انتقال یک فایل با ظرفیت بالا ، بسته های اطلاعاتی زیادی در طول شبکه منتقل خواهند شد.
Trailer محتویات trailer ارتباط مستقیم به پروتکل استفاده شده در لایه اینترفیس شبکه دارد trailer ، معمولا" شامل بخشی بمنظور بررسی خطاء بوده که Cyclical redundancy check ، نامیده می شود CRC ، عددی است که توسط یک محاسبه ریاضی بر روی بسته اطلاعاتی در مبداء ( فرستنده) ، تولید می گردد . زمانیکه بسته اطلاعاتی به مقصد خود می رسد ، مجددا" محاسبه مربوطه انجام خواهد شد. در صورتیکه نتایج بدست آمده ، یکسان باشد ، نشاندهنده صحت ارسال یک بسته اطلاعاتی خواهد بود . در صورتیکه ماحصل محاسبه در مقصد با نتیجه محاسبه شده در مبداء ، مغایرت داشته باشد ، بدین مفهوم خواهد بود که داده در زمان انتقال ، تغییر نموده است . در چنین حالتیکامپیوتر مبداء مجددا" داده را ارسال خواهد کرد .
جریان انتقال اطلاعات از کامپیوتر مبداء تا کامپیوتر مقصد :
بسته های اطلاعاتی ارسال شده از یک کامپیوتر برای کامپیوتر دیگر از بین لایه های متعدد پروتکل TCP/IP عبور خواهند کرد . بموازات رسیدن یک بسته اطلاعاتی به یک لایه ، پروتکل های موجود در آن ، اطلاعات خاصی را به آن اضافه خواهند کرد . اطلاعات اضافه شده ضمیمه شده توسط هر پروتکل ، شامل اطلاعاتی در رابطه با بررسی خطاء بوده که Checksum ، نامیده می شود. از Checksum ، بمنظور بررسی صحت ارسال اطلاعات اضافه شده در header توسط پروتکل مربوطه ، در پروتکل مقصد استفاده می گردد اطلاعات می بایست بی کم و کاست در اختیار پروتکل مقصد قرار بگیرند .فراموش نکنیم که CRC ، صحت انتقال یک بسته را بطور کامل بررسی می نماید. اطلاعات اضافه شده توسط پروتکل ها در هر لایه ، بعنوان داده توسط پروتکل های لایه زیرین ( پایین ) کپسوله خواهند شد. زمانیکه بسته اطلاعاتی به مقصد مورد نظر می رسد ، لایه مربوطه ( منتاظر ) یک بخش از header را برداشته و با باقی بسته اطلاعاتی بعنوان داده برخورد خواهد کرد . بسته اطلاعاتی در ادامه بسمت پروتکل های موجود در لایه بالاتر ارسال و دراختیار پروتکل مربوطه قرار خواهد گرفت . در ادامه عملکرد هر یک از لایه ها را در فرآیند انتقال اطلاعات بررسی و این موضوع را از زاویه کامپیوتر مبداء و مقصد دنبال خواهیم نمود .
لایه Application
فرآیند انتقال اطلاعات از لایه 6 application آغاز می گردد . یک برنامه نظیر FTP پردازش را در کامپیوتر مبداء مقدار دهی اولیه می نماید(آماده نمودن داده به فرمتی که برنامه در کامپیوتر مقصد ، قادر به تشخیص آن باشد) . برنامه موجود در کامپیوتر مبداء ، کنترل تمامی فرآیند را برعهده خواهد داشت .
1- 3 : لایه Transport
از لایه Application داده به لایه transport منتقل می گردد. این لایه شامل پروتکل های TCP و UDP است . برنامه مورد نظر نوع پروتکل "حمل" را مشخص می نماید TCP یا UDP در هر دو حالت Checksum برای TCP و UDP اضافه خواهد شد.
در صورتیکه پروتکل TCP ، انتخاب گردد :
یک دنباله عددی ( Sequence number ) به هر سگمنت منتقل شده اضافه خواهد شد. اطلاعات مربوط به Acknowledgment برای یک ارتباط " اتصال- گرا" به هر سگمنت اضافه می شود .
شماره پورت TCP در رابطه با برنامه های مبداء و مقصد ، اضافه خواهد شد.
در صورتیکه پروتکل UDP ، انتخاب گردد :
شماره پورت UDP در رابطه با برنامه های مبداء و مقصد ، اضافه خواهد شد.
1-4 : لایه اینترنت
پس از اینکه اطلاعات "حمل " اضافه گردید بسته اطلاعاتی در اختیار لایه اینترنت قرار داده می شود. در این لایه ، اطلاعات زیر به header اضافه می گردد :
آدرس IP مبداء
آدرس IP مقصد
نوع پروتکل "حمل "
مقدار checksum
اطلاعات TTL ( Time to Live)
علاوه بر اطلاعات فوق ، لایه اینترنت مسئولیت بر طرف نمودن آدرس های IP مقصد به یک آدرس MAC را نیز بر عهده دارد . پروتکل ARP ، مسئول انجام عملیات فوق است . آدرس MAC به header بسته اطلاعاتی اضافه و در ادامه بسته اطلاعاتی در اختیار لایه " اینترفیس شبکه " قرار داده می شود.
1- 5 : لایه "اینترفیس شبکه "
لایه فوق پس از دریافت یک بسته اطلاعاتی از لایهIP ، اطلاعات زیر را به آن اضافه خواهد کرد :
یک Preamble مقدمه دنباله ای از بایت ها است که ابتدای یک "فریم " را مشخص می نماید .
یک CRC ماحصل یک محاسبه ریاضی است که به انتهای فریم اضافه و از آن بمنظور صحت ارسال فریم ، استفاده می گردد.
پس ازافزودن اطلاعات مورد نظر به فریم ها در لایه اینترفیس شبکه ، در ادامه فریم ها بر روی شبکه ارسال خواهند شد.
1- 6 :عملیات در کامپیوتر مقصد
زمانیکه فریم ها به کامپیوتر مقصد می رسند لایه اینترفیس شبکه Preamble را حذف و مقدار CRC را مجددا" محاسبه می نماید. در صورتیکه مقدار بدست آمده با مقدار محاسبه شده در مبداء یکسان باشد در ادامه آدرس MAC مقصد ، موجود بر روی فریم بررسی می گردد . در صورتیکه آدرس MAC ، یک آدرس Broadcast و یا آدرس MAC با کامپیوتر مقصد مطابقت نماید ، فریم به لایه "اینترنت " ارسال خواهد شد. در غیر اینصورت فریم نادیده گرفته می شود. در لایه IP مجددا" Checksum محاسبه و با مقدار محاسبه شده قبل از انتقال مقایسه تا این اطمینان حاصل گردد که بسته اطلاعاتی در طول مسیر تغییر ننموده است . در ادامه IP بسته اطلاعاتی را در اختیار پروتکل "حمل" قرار می دهد TCP یا UDP بمنظور تصمیم گیری در رابطه با نوع پروتکل "حمل " از اطلاعات موجود در IP header استفاده می گردد. در لایه "حمل" در صورتیکه بسته اطلاعاتی از TCP دریافت شده باشد دنباله عددی sequence number بر روی بسته اطلاعاتی بررسی و یک acknowledgement برای TCP کامپیوتر مبداء ارسال می گردد . در ادامه از اطلاعات پورت TCP موجود در بسته اطلاعاتی استفاده تا بسته اطلاعاتی برای برنامه مربوطه در لایهApplication ، ارسال گردد.
در صورتیکه UDP بسته اطلاعاتی را از لایه "اینترنت" دریافت نماید ، از اطلاعات پورت UDP موجود در بسته اطلاعاتی استفاده تا آن را برای برنامه مربوطه در لایه Application ارسال نماید . بدون ارسال یک acknowledgement برای کامپیوتر مبداء
پس از دریافت اطلاعات توسط Appliaction پردازش های لازم و ضروری در ارتباط با آنها انجام خواهد شد.
جریان داده در شبکه ای که صرفا" شامل یک سگمنت است عملیات ساده ای خواهد بود . در چنین شبکه هائی ، کامپیوترهای ارسال کننده ، یک درخواست Broadcast را بمنظور مشخص نمودن آدرس MAC کامپیوتر مقصدی که قصد ارسال اطلاعات برای آن وجود دارد ، ارسال می نمایند . فرآیند ارسال اطلاعات در شبکه هائی که شامل چندین سگمنت می باشند بدین صورت نخواهد بود . در شبکه هائی شامل چندین سگمنت فرآیند انتقال اطلاعات بمراتب پیچیده تر خواهد بود. در چنین محیط هائی TCP/IP مسیرهای متعددی را بمنظور ارتباط کامپیوترهای موجود در شبکه ارائه و از ارتباطات غیر ضروری در این خصوص پیشگیری می نماید .
درمحیطی که شامل چندین شبکه مرتبط با یکدیگر است ، ممکن است کامپیوترهای مبداء و مقصد در یک سگمنت یکسان نباشند . بدین منظور آدرس IP کامپیوتر مقصد بررسی تا این اطمینان حاصل گردد که موقعیت کامپیوتر مقصد نسبت به کامپیوتر مبداء ، محلی بر روی یک سگمنت و یا از راه دور موجود بر روی سگمنت دیگر است .در صورتیکه کامپیوتر مقصد در راه دور سگمنت دیگر باشد داده نمی تواند مستقیم برای وی ارسال گردد . در چنین مواردی لایه IP داده مورد نظر را برای یک روتر ارسال می نماید . روتر بسته اطلاعاتی دریافتی را به مقصد مورد نظر ارسال ( فوروارد ) می نماید .
2- 1 : روتینگ IP
شبکه های بزرگ TCP/IP که از آنان با عنوان شبکه های مرتبط بهم Internetworks یاد می گردد خود به بخش های ( سگمنت ) کوچکتری تقسیم تا بتوانند میزان مبادله اطلاعات و ترافیک موجود در یک سگمنت را کاهش نمایند . Internetwork ، شبکه ای مشتمل بر چندین سگمنت است که توسط روترها به یکدیگر مرتبط می گردد . اولین و در عین حال مهمترین وظیفه یک روترارتباط دو و یا چندین سگمنت فیزیکی با یکدیگر است . روترها ، بسته های اطلاعاتی لایه IP را از یک سگمنت در شبکه به سگمنت دیگر ارسال می نمایند . فرآیند فوق فورواردینگ بسته های IP روتینگ نامیده می شود. روترها دو و چندین سگمنت را بیدیگر متصل و امکان حرکت ارسال بسته های اطلاعاتی از یک سگمنت به سگمنت دیگر را فراهم می نمایند.
2- 2 : توزیع بسته های اطلاعاتی
بسته های اطلاعاتی فوروارد شده ، با توجه به ماهیت مقصد خود حداقل یک و یا دو نوع توزیع را دنبال خواهند کرد. در این رابطه از دو نوع توزیع و با نام های توزیع مستقیم و یا غیر مستقیم استفاده می گردد :
توزیع مستقیم
از روش فوق ، زمانی استفاده می گردد که کامپیوتر ارسال کننده، یک بسته اطلاعاتی را برای کامپیوتری ارسال می نماید که بر روی همان سگمنت قرار دارد ( موقعیت فیزیکی کامپیوترهای فرستنده و گیرنده بر روی یک سگمنت یکسان است ) . در چنین مواردی کامپیوتر مورد نظر بسته اطلاعاتی را بر اساس یک فریم قالب بندی و آن را برای لایه اینترفیس شبکه ارسال می نماید آدرس دهی بسته اطلاعاتی مربوطه ، بر اساس آدرس MAC کامپیوتر مقصد ، انجام خواهد شد .
توزیع غیر مستقیم
از روش فوق ، زمانی استفاده می گردد که کامپیوتر ارسال کننده ، بسته اطلاعاتی را برای یک روتر فوروارد می نماید ( مقصد نهائی بسته اطلاعاتی در همان سگمنت نمی باشد) . در چنین مواردی کامپیوتر مورد نظر بسته اطلاعاتی را بر اساس یک فریم قالب بندی و آن را برای لایه اینترفیس شبکه ارسال می نماید . آدرس دهی بسته اطلاعاتی مربوطه ، بر اساس آدرس MAC روتر، انجام خواهد شد .
2- 3 : جدول روتینگ
بمنظور مشخص نمودن مقصدی که می بایست یک بسته اطلاعاتی فوروارد گردد روترها از جداول روتینگ برای ارسال داده بین سگمنت های شبکه استفاده می نمایند. جدول روتینگ در حافظه ذخیره و مسئول نگهداری اطلاعات ضروری در خصوص سایر شبکه های مبتنی بر IP و میزبانان است . جداول روتینگ همچنین اطلاعات ضروری را برای هر میزبان محلی بمنظور آگاهی از نحوه ارتباط با با سایر شبکه ها و میزبانان را دور ارائه می نمایند .
برای هر کامپیوتر موجود بر روی یک شبکه مبتنی بر IP می توان یک جدول روتینگ را نگهداری کرد. سیاست فوق در خصوص شبکه های بزرگ عملی نبوده و از یک روتر پیش فرض بمنظور نگهداری جدول روتینگ استفاده می گردد .
جداول روتینگ می توانند بصورت ایستا و یا از نوع پویا باشند تفاوت عمده به نحوه بهنگام سازی آنان برمی گردد جدول روتینگ ایستا ، بصورت دستی بهنگام می گردد . بنابراین، جداول فوق شامل آخرین وضعیت موجود در شبکه نخواهد بود در مقابل ، جداول روتینگ پویا بصورت اتوماتیک بهنگام و همواره شامل آخرین اطلاعات موجود خواهند بود .
ارسال اطلاعات بین روترها لایه IP دارای نقشی بسیار مهم در رابطه با ارسال اطلاعات بین شبکه های متعدد است .
بسته ها ی اطلاعاتی مبادله و بر اساس شرایط موجود و با استفاده از IP مربوطه درلایه اینترنت کامپیوتر مبداء کامپیوتر مقصد و یا روترهای موجود در مسیر مربوطه پردازش های لازم بر روی آنان انجام خواهد شد.
بمنظور ارسال داده بین دو کامپیوتر موجود در سگمنت های متفاوت شبکه لایه IP از اطلاعات موجود در یک جدول محلی روتینگ در جهت یافتن مسیر مناسب دسترسی به کامپیوتر مقصد استفاده می نماید( مشاوره اطلاعاتی ! ) در صورت یافتن مسیر مناسب بسته اطلاعاتی با استفاده ازمسیر فوق ارسال خواهد شد. در غیر اینصورت بسته های اطلاعاتی برای روتر پیش فرض فوروارد می گردند .
2- 4 : عملکرد لایه IP در کامپیوتر مبداء
لایه IP علاوه بر افزودن اطلاعاتی نظیر TTL همواره آدرس IP کامپیوتر مقصد را به بسته اطلاعاتی اضافه می نماید. در مواردیکه توزیع بسته های اطلاعاتی از نوع مستقیم باشد از ARP استفاده و آدرس MAC کامپیوتر مقصد به آن اضافه گردد . در مواردیکه توزیع اطلاعات از نوع غیر مستقیم باشد از ARP استفاده و آدرس MAC روتری که می بایست بسته های اطلاعاتی برای آن فوروارد گردد به آن اضافه خواهد شد.
2- 5 : عملکرد لایه IP در روتر
پس از دریافت یک بسته اطلاعاتی توسط روتر لایه IP مربوطه مسئول مشخص نمودن محل ارسال بسته اطلاعاتی است . برای نیل به هدف فوق ، مراحل زیر دنبال خواهد شد :
لایه IP بررسی لازم در خصوص Checksum و آدرس IP مقصد را انجام می دهد . اگر آدرس IP مربوط به روتر باشد روتر پردارش های لازم در خصوص بسته اطلاعاتی را بعنوان کامپیوتر مقصد انجام خواهد داد ( IP در مقصد ) در ادامه لایه IP مقدارTTL را کاهش و جدول روتینگ مربوطه را بمنظور یافتن مناسبترین مسیر بمنظور رسیدن به آدرس IP مقصد بررسی می نماید .
در مواردیکه توزیع بسته های اطلاعاتی از نوع مستقیم باشد از ARP استفاده و آدرس MAC کامپیوتر مقصد به آن اضافه گردد . در مواردیکه توزیع اطلاعات از نوع غیر مستقیم باشد از ARP استفاده و آدرس MAC روتری که می بایست بسته های اطلاعاتی برای آن فوروارد گردد، به آن اضافه خواهد شد .
تمامی مراحل فوق در ارتباط با هر یک از روترهای موجود در مسیر بین کامپیوتر مبداء و مقصد تکرار خواهد شد. پس از دریافت بسته اطلاعاتی توسط روتری که در همان سگمنت کامپیوتر مقصد موجود می باشد فرآیند تکراری اشاره شده متوقف خواهد شد .
Fragmentationو Reassembly
زمانیکه یک بسته اطلاعاتی بسیار بزرگ به روتر می رسد لایه IP قبل از ارسال آن را به بخش های کوچکتری تقسیم می نماید . فرآیند فوق Fragmentation نامیده می شود.
تمامی بسته های اطلاعاتی کوچک در ادامه بر روی شبکه حرکت خواهند کرد . بسته های اطلاعاتی فوق ، حتی اگر بین چندین روتر حرکت نمایند صرفا" در زمانیکه تمامی آنان به کامپیوتر مقصد رسیده باشند مجددا" با یکدیگر ترکیب و شکل اولیه بسته اطلاعاتی ایجاد
می گردد. فرآیند فوق Reassembly نامیده می شود .
2- 6 : لایه IP در کامپیوتر مقصد
زمانیکه یک بسته اطلاعاتی به کامپیوتر مقصد می رسد لایه IP در کامپیوتر مقصد Checksum و آدرس IP مقصد آن را بررسی و در ادامه بسته اطلاعاتی در اختیار TCP و یا UDP قرار خواهد گرفت در نهایت بسته اطلاعاتی بمنظور انجام پردازش نهائی و با توجه به شماره پورت موجود در اختیار برنامه مقصد قرار خواهد گرفت .
فصل 2 : آشنائی با ابزارIPTables
این شماره به معرفی یکی از ابزارهای قدرتمند تصفیه کننده بسته ها به نام IPtables می پردازیم IPtables به عنوان نسل چهارم پیاده سازی شده از ابزارهای تصفیه کننده سیستم عامل لینوکس معرفی می شود این مقاله شامل بخش های زیر است.
* معرفی سیستم تصفیه کننده بسته ها
* تاریخچه حفاظ های سیستم عامل لینوکس
* زنجیرها جداول و قوانین IPtables
* قوانین IPtables
* پیاده سازی چند سیاست ساده امنیتی
* راه اندازی و استفاده از IPtables
* جهت مطالعه بیشتر
* مراجع
* معرفی سیستم تصفیه کننده بسته ها
یک سیستم تصفیه کننده بسته ها (همان طور که از نامش پیداست) برای کنترل ترافیک ورودی و خروجی بسته ها بین یک شبکه داخلی و شبکه خارجی به کار می رود. به کمک یک تصفیه کننده می توان:
1. دسترسی به اینترنت از طریق بعضی ماشین ها را محدود کرد.
2. ترافیک ناخواسته و نیز پویش های انجام شده از خارج را مسدود کرد.
3. از امکان ترجمه آدرس های شبکه استفاده کرد. به کمک NAT می توان تعداد زیادی از کامپیوترهای داخل شبکه را تنها با داشتن یک آدرس IP معتبر به شبکه خارجی متصل نمود.
4. استفاده از کارگزار Proxy را از دید کاربران شفاف نمود(Redirect).
انواع سیستم های تصفیه کننده بسته ها
سیستم های تصفیه کننده بسته ها به طور کلی به دو نوع تقسیم می شوند:
1. سیستم های بدون حالت : در این سیستم ها تصفیه هر بسته مستقل از بسته های دیگر و اینکه متعلق به چه ارتباطی است، صورت می گیرد.
2. سیستم های مبتنی بر حالت : در این سیستم ها حافظه جداگانه ای تاریخچه هر ارتباطی که به آن وارد، خارج یا از آن می گذرد، را ثبت می کند. این ویژگی برای پیکربندی موثر FTP، DNS و سایر سرویس های شبکه ضروری می باشد. عموماً حفاظ های مبتنی بر حالت از نمونه های بدون حالت امن تر می باشند. چرا که با استفاده از آنها می توان مجموعه قوانین سخت تری برای کنترل ترافیک اعمال کرد.
تاریخچه
محصولات ارائه شده تحت عنوان تصفیه کننده بسته ها چهار نسل تکامل را پشت سر گذاشته اند:
* IPFW: این نسخه یادآور اولین پشتیبانی لینوکس از سرویس تصفیه بسته ها می باشد که در داخل هسته 1.2 لینوکس تعبیه شده بود. IPFW ویژگی های ابتدایی مورد انتظار از یک حفاظ را پیاده سازی کرده بود. بعضی از محدودیت های آن عبارت بودند از:
o عمل تصفیه را تنها روی یک پورت انجام می داد
o Mason از آن پشتیبانی نمی کرد
o در محیط های توزیع شده قابل استفاده نبود.
o مبتنی بر حالت نبود.
* IPFWADM: در هسته 20 لینوکس قرار داده شده است. تصفیه بسته ها را از روی آدرس درگاه های مبداء و مقصد انجام می داد و امکان مخفی سازی آدرس های IP ترجمه چند به یک) در آن قرار داده شده بود. با این وجود یک حفاظ مبتنی بر حالت نبود و تنها از قراردادهای TCP، UDP و ICMPپشتیبانی می کرد.
* IPChains: در هسته 2.2 لینوکس قرار داده شده بود. با وجود اینکه یک حفاظ مبتنی بر حالت نبود، ولی از زیرنوع های ICMP و سایر قراردادها علاوه بر از TCP، UDP و ICMP پشتیبانی می کرد.
* از هسته 2.4 لینوکس به بعد IPtables به عنوان حفاظ پیش فرض لینوکس همراه با آن نصب می شد. IPtables نسبت به حفاظ های نسل قبل خود چند تفاوت مهم داشت:
o یک حفاظ مبتنی بر حالت بود.
o از قرارداد اینترنت نسخه 6.0 پشتیبانی می کرد.
o از طراحی پیمانه ای برخوردار بود.
o علاوه بر جهش های فوق، با نسخه های دو نسل قبل خود، یعنی IPFWADM و ipchains مطابقت داشت. (Backward Compatibility)
جدول ها و زنجیرها در IPtables
جدول و زنجیر دو مفهوم اساسی در IPtables هستند که شناخت این ابزار و نحوه عملکرد آن و نوشتن قوانین مورد نظر مستلزم درک کامل این مفاهیم می باشد.
در IPtables جدول ها مجموعه ای از قوانین مرتبط را در برمی گیرند. این قوانین در ساختار دیگری تحت عنوان زنجیرها معنی پیدا می کنند. زنجیرها انواع نحوه عبور بسته ها از حفاظ را بیان می کنند. بسته به اینکه هر بسته در ورود، خروج یا عبور از حفاظ چه مسیری را بپیماید، بخشی از قوانین جدول ها روی آن اعمال می شود. نحوه اعمال قوانین جدول به این صورت است که بسته های رسیده با تک تک قوانین آن مقایسه می شوند و اولین قانونی که با شرایط بسته مطابق باشد، در مورد آن اعمال می شود. در غیر این صورت سیاست پیش فرض حفاظ روی آن اعمال می شود. (قبول یا دور ریخت ) .
سه جدول عمده مورد استفاده در IPtables عبارتند از:
جدول تصفیه10 :
این جدول تصفیه در واقع مجموعه قوانین مربوط به تصفیه بسته ها را در برمی گیرد. عمل تصمیم گیری درباره ی تصفیه بسته ها روی ویژگی های خاصی از آنها صورت می گیرد که در ادامه به صورت کامل تر به آنها اشاره خواهیم کرد. باید به نحوی به حفاظ فهماند چه تصمیمی درباره ی بسته هایی که در یک قانون صدق می کنند، اتخاذ کند. مهمترین اعمال انجام شده روی یک بسته عبارتند از قبول و دور ریختن.
جدول ترجمه آدرس:
1. جدول ترجمه ی آدرس برای ترجمه ی آدرس بسته ها به کار می رود که اصطلاحاً به آن NAT گفته می شود. بسیاری از شبکه های داخلی سازمان ها و حتی بسیاری از فراهم آورندگان خدمات اینترنتی تنها از یک IP معتبر برای اتصال مجموعه وسیعی از کامپیوترهای خود به شبکه اینترنت استفاده می کنند. مکانیسمی که این امکان را برای آنها فراهم می آورد NAT می باشد. برای استفاده از NAT حداقل به یک آدرس IP معتبر احتیاج است که این آدرس از طریق ISP به صورت پویا یا استیا به شبکه اختصاص داده می شود. این آدرس به عنوان آدرس خارجی دروازه شبکه مورد استفاده قرار می گیرد و برای آدرس داخلی دروازه و سایر گره های شبکه از مجموعه آدرس های رزرو شده برای شبکه های داخلی استفاده می شود. به این ترتیب آدرس همه بسته های ایجاد شده در ماشین های داخلی که به مقصدی خارج از شبکه محلی فرستاده می شوند، در دروازه (که حفاظ روی آن در حال اجراست) ترجمه می شوند. ترجمه ی آدرس ها به این صورت است که جایگزین آدرس مقصد و شماره درگاه مورد استفاده در بسته اولیه آدرس IP معتبر دروازه و شماره درگاه جدید تخصیص داده شده می شوند. در واقع ماشین خارجی یک بسته از جانب دروازه دریافت می کند و بسته های برگشتی را نیز به همان آدرس IP معتبر برمی گرداند. اطلاعات ترجمه آدرس در یک جدول مراجعه در دروازه ذخیره می شود تا بتوان با استفاده از آن، بسته های برگشتی را به ماشین داخلی مورد نظر (که ایجاد کننده ی اصلی بسته بوده) هدایت کرد. شکل زیر نمونه ای از پیکربندی شبکه داخلی برای اتصال به اینترنت با استفاده از NAT را نشان می دهد:
شکل 1 : پیکربندی شبکه ی داخلی با استفاده از NAT
این کار در نهایت منجر به تغییر آدرس مبداء یا مقصد بسته های گذرنده از حفاظ یا ایجاد شده در آن می گردد. اعمال انجام شده روی بسته ها در این جدول عبارتند از:
* DNAT این گزینه برای تغییر آدرس مقصد بسته به کار می رود. این نوع ترجمه ی آدرس زمانی مفید خواهد بود که با در اختیار داشتن تنها یک IP مجاز، بخواهیم بسته های دریافت شده از شبکه اینترنت را به DMZ یا یک ماشین از شبکه داخلی خود بفرستیم.
* SNAT عموماً برای تغییر آدرس مبداء بسته ها به کار می رود. از این نوع ترجمه برای مخفی کردن آدرس ماشین های شبکه داخلی یا DMZ استفاده می شود. مثلاً یک زمانی که آدرس بسته های گذرنده از حفاظ از داخل شبکه به آدرس IP معتبر حفاظ ترجمه می شود و از آن خارج می شود نمونه ای از این مورد کاربرد است. بدیهی است که برای هدایت بسته های برگشتی به گره های مبداء، باید از یک جدول مراجعه کمک گرفت.
* MASQUERADE مورد استفاده این گزینه تقریباً مشابه SNAT می باشد. با این تفاوت که به جای ترجمه آدرس ها به یک آدرس ثابت و مشخص، آدرس مورد نظر باید محاسبه شود. در صورتی که یک فراهم کننده خدمات اینترنتی هستید و با استفاده از DHCP و به صورت پویا به ماشین های کاربران خود آدرس IP اختصاص می دهید، ناگزیر به استفاده از این نوع ترجمه ی آدرس هستید.
3. جدول Mangle:
4. جدول Mangle عموماً برای تغییر ویژگی های خاصی از بسته ها، از جمله TTL
5. ToS و یا برچسب زدن روی آنها به کار می رود. شکل زیر ساختار کلی زنجیرهای استاندارد تعریف شده در IPtables و نحوه پیمایش بسته ها از مسیرهای مختلف را نشان می دهد.
شکل 2 – جریان هدایت بسته ها از حفاظ IPtables
همانطور که از شکل پیداست، یک بسته ممکن است به سه صورت مختلف از زنجیرهای IPtables عبور کند.
1. بسته هایی که آدرس مقصد آنها ماشینی است که حفاظ روی آن نصب شده است.
قبل از اینکه چنین بسته ای از حفاظ عبور داده شود، از زنجیرهای زیر می گذرد و قوانین جداول زیر روی آنها قابل اعمال است:
مرحله
جدول
زنجیر
توضیحات
1
رسانه اتصال شبکه به اینترنت (مثلاً سیم)
2
ورود به کارت واسط شبکه مثلاً eth
3
mangle
PREROUTING
اعمال تعریف شده در جدول mangle تغییر TOS و غیره
4
nat
PREROUTING
عموماً برای DNAT مورد استفاده قرار می گیرد
5
مسیریابی بسته: اینکه بسته به مقصد ماشین محلی ارسال شده یا باید از آن عبور کند؟
6
mangle
INPUT
7
filter
INPUT
تصفیه بسته هایی که به ماشین محلی ارسال شده اند.
8
برنامه کاربردی یا پروسه ماشین محلی (مثلاً برنامه کارگزار یا کارفرمای اجرا شده در این ماشین)
2-بسته هایی که در ماشین محلی تولید می شوند
قبل از اینکه چنین بسته ای بتواند ماشین محلی را ترک کند، از زنجیرهای زیر می گذرد و قوانین جداول زیر روی آنها قابل اعمال است:
مرحله
جدول
زنجیر
توضیحات
1
برنامه کاربردی یا پروسه ماشین محلی (مثلاً برنامه کارگزار یا کارفرمای اجراشده در این ماشین )
2
تصمیم گیری درباره ی مسیردهی بسته: از چه آدرسی استفاده شود؟ از چه کارت واسط شبکه ای عبور داده شود؟…
3
mangle
OUTPUT
4
nat
OUTPUT
ترجمه ی آدرس بسته هایی که در ماشین محلی تولید می شوند
5
filter
OUTPUT
تصفیه ی بسته هایی که در ماشین محلی تولید می شوند
6
mangle
7
nat
اعمال ترجمه آدرس از نوع SNAT یا MASQUERADE
8
خروج از کارت واسط کاربر شبکه
9
رسانه اتصال شبکه به اینترنت (مثلاً سیم)
2. بسته هایی که از حفاظ عبور می کنند
قبل از اینکه چنین بسته ای بتواند از کارت واسط شبکه ورودی به کارت واسط شبکه خروجی منتقل شود، از زنجیرهای زیر می گذرد و قوانین جداول زیر روی آنها قابل اعمال است:
مرحله
جدول
زنجیر
توضیحات
1
رسانه اتصال شبکه به اینترنت (مثلاً سیم)
2
ورود به کارت واسط شبکه(مثلاً eth)
3
mangle
PREROUTING
اعمال تعریف شده در جدول mangle تغییر TOS و غیره
4
nat
PREROUTING
عموماً برای DNAT مورد استفاده قرار می گیرد
5
مسیریابی بسته : اینکه بسته به مقصد ماشین محلی ارسال شده یا باید از آن عبور کند؟
6
mangle
FORWARD
7
filter
FORWARD
تصفیه بسته هایی که از حفاظ عبور می کنند
8
mangle
POSTROUTING
9
nat
POSTROUTING
اعمال ترجمه آدرس از نوع SNAT یا MASQUERADE
10
خروج از کارت واسط کاربر شبکه
11
رسانه اتصال شبکه به اینترنت (مثلاً سیم )
قوانین IPtables
قوانین ابزار اصلی کار با هر حفاظی را تشکیل می دهند. پیچیده ترین و پرهزینه ترین سیاست های امنیتی یک سازمان در نهایت برای تصفیه بسته ها به قوانین نه چندان پیچیده حفاظ تبدیل می شوند. فرمت کلی دستورات IPtables را می توان به صورت زیر بیان کرد:
iptables [-t table ] Packet-Criteria-pecification target
گزینه -t برای مشخص کردن جدول حاوی دستور به کار می رود.
Packet-Criteria-Specification برای تعیین ویژگی های بسته مورد استفاده قرار می گیرد. target بیانگر عملی است که در صورت انطباق بسته با قانون مورد نظر، باید روی آن انجام شود. در ادامه این گزارش فرمت کلی این دستور توضیح داده می شود.
1. دستورات مهم و پایه ای برای تغییر قوانین موجود در IPtable
* اضافه کردن قوانین
iptables -I chain [rulenum] rule-specification
دستور فوق یک قانون جدید قبل از قانون با شماره rulenum به زنجیر chain اضافه می کند. این قانون به صورت پیش فرض به ابتدای قوانین اضافه می شود.
* اضافه کردن قوانین (به انتهای قوانین قبلی)
iptables -A chain rule-specification
* جایگزینی قوانین
iptables -R chain rulenum rule-specification
* حذف قوانین
iptables -D chain rule-specification
* حذف دسته جمعی قوانین
iptables -F chain
* ایجاد یک زنجیر جدید
iptables -N newchain
* حذف زنجیر جدید ایجاد شده
iptables -X newchain
* مشاهده قوانین تعریف شده در یک زنجیر
iptables -L chain
در دستورات IPtables شماره اولین قانون 1 منظور می شود.
2. پارامترهای مهم دستورات IPtable
بعضی از ویژگی های بسته ها که برای تعیین انطباق آنها در دستورات IPtables بکار می رود، عبارتند از:
* قرارداد ارتباطی: قرارداد استفاده شده در انتقال بستهTCP، UDP، ICMP، …برای مشخص کردن این ویژگی از گزینه -p استفاده می شود.
* آدرس مبداء: آدرس مبداء بسته را مشخص می کند. با استفاده از آن می توان آدرس نقاب شبکه را نیز مشخص کرد مثلاً 192.168.0.0/16 معادل یک کلاس B با آدرس نقاب شبکه 255.255.0.0 می باشد. با استفاده از علامت ! می توان تفسیر قانون را معکوس کرد. برای مشخص کردن آن از گزینه -s استفاده می شود.
* آدرس مقصد: دارای امکاناتی مشابه آدرس مبداء می باشد. برای مشخص کردن از علامت -d استفاده می شود. بسته های ورودی از واسط شبکه: برای مشخص کردن کلیه بسته هایی که به واسط شبکه مشخصی وارد می شوند، بکار می رود. مثلاً بسته های ورودی به کارت واسط شبکه eth را با -i eth نشان می دهیم.
* بسته های خروجی از واسط شبکه: مشابه دستور فوق
* در صورتیکه از قرارداد ارتباطی TCP یا UDP استفاده کنیم، به گزینه های بیشتری برای تصفیه بسته ها دسترسی داریم.
* تعیین محدوده شماره درگاه ها :
–source-port [!] port[: port]
Examples:
–source-port 0: 1023
–source-port ! 80
— destination- port [!] port[: port]
* تصفیه مبتنی بر حالت همانطور که ذکر شد، IPtables یک حفاظ مبتنی بر حالت است. در IPtables، چهار حالت مختلف برای ارتباط های ایجاد شده در نظر گرفته می شود که با استفاده از آنها می توان بسته های متعلق به آنها را تصفیه کرد. حالت های مختلف عبارتند از:
o New: مشخصه ارتباط هایی است که تنها یک بسته در یک جهت ارسال کرده اند. در واقع پس از دیدن اولین بسته از هر ارتباط بسته ای که پرچم SYN از سرآیند TCP آنها روشن باشد وضعیت آن به New تغییر می کند.
o Established: مشخصه ارتباط هایی است که بسته در هر دو جهت از طریق آنها ارسال شده است. پس از دیدن اولین پاسخ به بسته ارسال شده بسته ای که پرچم ACK از سرآیند TCP آنها روشن باشد مشخصه ارتباط ایجاد شده از New به Established تغییر می کند.
o Related: مشخصه ارتباط هایی است که بسته جدیدی ملاقات می کنند، با این تفاوت که بسته ایجاد شده به: ارتباط برقرار شده قبلی مرتبط است. یک مثال شناخته شده از این نوع ارتباطات، ارتباط داده ای در قرارداد FTP می باشد که به ارتباط کنترلی از آن مربوط می شود.
هدف ها(targets)
* همانگونه که ذکر شد، target بیان کننده ی عملی است که در صورت صدق کردن بسته مورد نظر در یکی از قوانین، روی آن انجام می شود. برای مشخص کردن هدف ها از گزینه ی -j استفاده می شود. بعضی از هدف های پرکاربرد IPtables عبارتند از:
* LOGبرای ثبت یک رویداد در رویدادنامه IPtables بکار میرود .گاهی فقط می خواهیم ترافیک گذرنده از حفاظ را ثبت کنیم .
* REJECT یک پیغام خطا به عنوان پاسخ به مبداء بسته فرستاده می شود و سپس دور نداخته می شود.
* DROP بسته دور انداخته می شود. بدون اینکه پاسخی برای فرستنده ارسال شود .
.ACCEPT بسته پذیرفته می شود.
SNATآدرس مبداء بسته به آدرس جدیدی ترجمه می شود.
DNATآدرس مقصد به آدرس جدیدی ترجمه می شود.
MASQUERADE: آدرس مبداء جدید محاسبه شده و جایگزین آدرس فعلی می شود.
REDIRECTبرای برگرداندن بسته ها به ماشین محلی (که حفاظ روی آن نصب شده) مورد استفاده قرار می گیرد. از این امکان IPtables زمانی استفاده می شود که بخواهیم سرویس های نصب شده در ماشین حفاظ از دید کاربران شفاف باشد. فرض کنید می خواهیم در کنار http server از یک http proxy مثل squid استفاده کنیم. با استفاده از این امکان براحتی می توان همه بسته هایی که می خواهند به درگاه 80 از ماشین حفاظ متصل شوند، را براحتی به سمت squid هدایت کرد. دستور زیر این هدف را برآورده می کند:
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 3128
)3128 پورت استاندارد squid می باشد.(
Jump: همچنین هدف می تواند پرش به یک زنجیر از پیش تعریف شده از همان جدول باشد
پیاده سازی چند سیاست ساده امنیتی
در ادامه سعی می کنیم با استفاده از قوانین معرفی شده در IPtables بعضی از سیاست های امنیتی ساده را پیاده سازی کنیم. در این مثال ها فرض کنید که کارت واسط شبکه eth به LAN و کارت واسط شبکه eth1 به WAN متصل است. آدرس های شبکه محلی دارای آدرس های مجازی 192.168.x.y و آدرس IP حفاظ برابر 192.168.1.1 می باشد.
1. می خواهیم زنجیر جدیدی تعریف کنیم که فقط بتوان از شبکه ی داخلی به بیرون ارتباط جدیدی برقرار کرد. (بسته های رسیده از شبکه WAN فقط بسته های پاسخ یا مرتبط با بسته های قبلی باشند.
iptables -N block
iptables -A block -m state — state ESTABLISHED, RELATED -j ACCEPT
iptables -A block -m state — state NEW -i ! eth1 -j ACCEPT
iptables -A block -j DROP
دستورات فوق عمل تصفیه بسته ها را در داخل زنجیر تعریف شده block انجام می دهند. تنها کافی است بسته های گذرنده از حفاظ را به سمت این زنجیر هدایت کنیم:
iptables -A INPUT -j block
iptables -A FORWARD -j block
2 می خواهیم درگاه های خاصی را برای ارتباط با حفاظ از شبکه اینترنت مسدود یا باز نماییم
* در ابتدا ارتباط از کارت واسط شبکه eth1 به درگاه های با شماره پایین تر از 1023 را مسدود می کنیم:
iptables -I INPUT 1 — dport 0:1023 -i eth1 -p tcp -j DROP
iptables -I INPUT 2 — dport 0:1023 -i eth1 -p udp -j DROP
* در ادامه می خواهیم دسترسی به سرویس وب را از شبکه خارجی به داخل امکان پذیر کنیم:
iptables -I INPUT 1 –dport 80 -p tcp -i eth1 -j ACCEPT
* سپس دسترسی به سرویس SSH را برای یک ماشین مطمئن از شبکه خارجی میسر می کنیم:
iptables -I INPUT 1 -dport 22 -p tcp -s 123.45.67.89 -j ACCEPT
3 . می خواهیم آدرس همه بسته های خروجی از شبکه را با استفاده از گزینه MASQUERADE پنهان کنیم. این کار می تواند به روشهای زیر انجام پذیرد :
* در ابتدا آدرس همه بسته های خروجی را بصورت پویا مخفی می کنیم
//Using Dynamic WAN Address
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE
* سپس از یک آدرس استاتیک برای مخفی کردن آدرس بسته های داخلی استفاده می کنیم:
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j SNAT — to 12.34.56.78
لازم به ذکر است که اضافه کردن قانون ساده زیر نیاز ما را برآورده می کند، ولی در آن صورت به بسته های خارجی از شبکه داخلی نیز اجازه می دهید که آدرس خود را با استفاده از حفاظ شما تغییر دهند:
iptables -t nat -A POSTROUTING -j MASQUERADE
راه اندازی و استفاده از IPtables
ابزار IPtables در بسیاری از نسخه های سیستم عامل لینوکس، بویژه RedHat بصورت پیش فرض همراه سایر بسته های نرم افزاری نصب می شود. برای اینکه از نصب IPtables در دستگاه خود مطمئن شوید، کافی است دستور IPtables را در خط فرمان تایپ کنید. برای اجرای چنین دستوری یا باید با شناسه کاربری root به سیستم وارده شده باشید و یا با استفاده از sudo حق اجرای IPtables را داشته باشید. در صورتی که IPtables روی دستگاه شما نصب شده باشد، پیغامی مشابه پیغام زیر روی صفحه نمایش ظاهر می شود:
iptables v1.2.8: no command specified
Try 'iptables -h' or 'iptables –help' for more information
در غیر این صورت باید سورس یا بسته نرم افزاری قابل نصب IPtables را دریافت کرده و آن را نصب کنید. نصب برنامه از روی RPM به سادگی امکان پذیر است. در اینجا نحوه ی نصب IPtables از روی سورس آن توضیح داده می شود:
* اولین قدم دریافت سورس IPtables از سایت netfilter می باشد نام فایل مورد نظر به صورت IPtables-1.*.*.tar.bz2 می باشد که ستاره ها، شماره آخرین نسخه IPtables را نشان می دهند.
* با استفاده از دستور tar فایل فشرده شده را باز کنید:
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
* مسیر جاری را به فهرست ایجاد شده در دستور فوق تغییر دهید:
cd /usr/src/iptables-1.*.*
* دستور make و بدنبال آن دستور make install را اجرا کنید
# /bin/sh -c make
# /bin/sh -c make install
نبشته راه اندازی
برای اینکه دستورات جاری IPtables در سیستم مانا شوند و در هر بار راه اندازی سیستم بصورت خودکار در داخل حافظه بار شوند، باید از یک نبشته راه اندازی استفاده کرد. این نبشته در مسیر /etc/init.d قرار گرفته و بعد از هر مرتبه راه اندازی سیستم بصورت خودکار اجرا می شود یک نمونه از نبشته راه اندازی به همراه دستورات پیش فرض آن در این آدرس آمده است. شما می توانید دستورات دلخواه خود را در هر یک از بدنه های start، stop یا restart اضافه کنید.
ذخیره و بازیابی دستورات
دستورات IPtables مقیم در حافظه را همچنین می توان با استفاده از دو دستور سودمند iptables-save و iptables-restore که توسط خود ابزار IPtables در اختیار کاربران قرار می گیرد، در داخل فایل ذخیره و بازیابی کرد. برای ذخیر دستورات IPtables در فایلی با نام IPtables-save کافی است دستور زیر را اجرا کنیم:
iptables-save > /etc/iptables-save
مشابه دستور فوق می توانیم دستورات ذخیره شده در یک فایل را با استفاده از دستور IPtables-restore بازیابی کنیم.
ابزارهای کمکی پیکربندی IPtables
شاید پیکربندی IPtables با استفاده از دستورات خط فرمان برای کسانی که تجربه عملی زیادی با لینوکس ندارند، آسان نباشد. بدین منظور ابزارهای گرافیکی دیگری برای این اشخاص که نمی خواهند دستان خود را با خط فرمان لینوکس کثیف کنند(!)، در دسترس می باشد.
در ادامه به بعضی از این ابزارهای اشاره می شود:
1. MonMotha's FireWall
2. Firewallscript
3. Ferm-0.0.18
4. AGT-0.83
5. Knetfilter-1.2.4
6. qShield-2.0.2
ابزارهای ذکر شده در شماره های 1 تا 4 عموماً از یک فایل پیکربندی با فرمت خاص برای پیکربندی فایروال استفاده می کنند که توصیه می شود بجای صرف زمان و انرژی برای یادگیری فرمت این فایل، روی یادگیری دستورات خط فرمان IPtables وقت گذاشته شود!
Knetfilter یک ابزار با واسط گرافیکی مناسب برای پیکربندی حفاظ های مبتنی بر میزبان می باشد. این ابزار امکاناتی برای ذخیره و بازیابی قوانین، تست آنها، اجرای ابزارهای پویش شبکه از جمله tcpdump و نیز ترجمه و مخفی سازی آدرس ها را فراهم می سازد. یکی از کمبودهای Knetfilter این است که از پروتکل PPP پشتیبانی نمی کند. در نتیجه نمی توان از آن برای پیکربندی حفاظ سیستم هایی که با خط تلفن به اینترنت متصل می شوند، استفاده کرد.
gShield کامل ترین ابزار پیکربندی گرافیکی IPtables به نظر می رسد. چرا که بصورت کامل مستندسازی شده و فایل های پیکربندی آن قابل فهم است. علاوه بر این از امکانات ترجمه آدرس بسته ها و پیکربندی استاتیک (اتصال از طریق واسط ppp) و پویای (اتصال از طریق واسط eth حفاظ برخوردار است.
با این وجود به نظر می رسد هیچ یک از این ابزارها نمی توانند به کلی جایگزین امکانات فراوانی شوند که از طریق خط فرمان IPtables در اختیار کاربران قرار می گیرد. ضمن اینکه به هیچ وجه شما را از درک عمیق ساختار داخلی (دستورات، جدول ها، زنجیرها، IPtables بی نیاز نمی کنند.
خلاصه :
پروتکل TCP/IP از مدل ارتباطی چهار لایه بمنظور ارسال اطلاعات از یک محل به محل دیگر استفاده می نماید. لایه های فوق عبارتند از Internet , application, transport و لایه network interface زمانیکه برنامه ای نیازمند ارتباط با برنامه موجود بر روی کامپیوتر دیگر باشد پروتکل TCP/IP بمنظور تمایز برنامه ها از " سوکت " استفاده می نماید .
یک سوکت از سه عنصر: آدرس IP شما ره پورت و پروتکل لایه حمل تشکیل می گردد .
پروتکل TCP/IP ارائه شده توسط مایکروسافت درویندوز شامل شش پروتکل TCP, UDP, ICMP, IGMP, IP, و ARP است .
بمنظور حصول اطمینان از ارسال اطلاعات و دریافت آنان توسط گیرنده از پروتکل TCP استفاده می گردد . مثلا" ارسال اطلاعات مربوط به کارت اعتباری و اطمینان از صحت دریافت داده در مقصد .
پروتکل IP مسئولیت آدرس دهی و روتینگ داده برای مقصد نهائی را برعهده دارد.
بمنظور بررسی صحت نصب و عملکرد TCP/IP از برنامه کاربردی PING استفاده می شود.
در صورت تمایل به استفاده از یک نام در مقابل یک آدرس IP از امکانات متعددی بمنظور ذخیره سازی اسامی کامپیوتر و آدرس IP مربوطه استفاده می گردد file, DNS, WINS و Hosts file نمونه هائی در این زمینه می باشند.
در مواردیکه از روش توزیع غیر مستقیم بمنظور ارسال یک بسته اطلاعاتی از کامپیوتر مبداء به کامپیوتر مقصد استفاده می گردد کامپیوتر مبداء می بایست در ابتدا آدرس MAC مربوط به روتر را مشخص نماید .
منابع :
1- کارگاه آموزشی IPtables، دوره آموزشی برگزارشده توسط مرکز امنیت شبک شریف در شرکت ایزایران، مهدی صمدی، زمستان 1381.
2- کتاب آموزش شبکه مایکروسافت ( MCSE ).
3- کتاب اصول شبکه های اطلاع رسانی – مهندس عین الله جعفرنژاد قمی
4- کتاب ویندوز 2000 سرور
1- Segment
2- message
3- datagram
4- frame
1- packet
6 – کاربردی
—————
————————————————————
—————
————————————————————
57