پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


بسته های اطلاعاتی packets بخش دوم تاریخ درج: ١٣٩۴/٠٣/٢٩

 توزيع غير مستقيم

از روش فوق ، زماني استفاده مي گردد که کامپيوتر ارسال کننده ، بسته اطلاعاتي را براي يک روتر فوروارد مي نمايد ( مقصد نهائي بسته اطلاعاتي در همان سگمنت نمي باشد) . در چنين مواردي  کامپيوتر مورد نظر بسته اطلاعاتي را بر اساس يک فريم قالب بندي و آن را براي لايه اينترفيس شبکه ارسال مي نمايد . آدرس دهي بسته اطلاعاتي مربوطه ، بر اساس آدرس 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 قرار خواهد گرفت در نهايت  بسته اطلاعاتي بمنظور انجام پردازش نهائي و با توجه به شماره پورت موجود در اختيار برنامه مقصد قرار خواهد گرفت . 
آشنائی با ابزار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 را نشان می‌دهد: 

ارسال بسته ها
اين کار در نهايت منجر به تغيير آدرس مبداء يا مقصد بسته‌های گذرنده از حفاظ يا ايجاد شده در آن می‌گردد. اعمال انجام شده روی بسته‌ها در اين جدول عبارتند از:
DNAT اين گزينه برای تغيير آدرس مقصد بسته به‌کار می‌رود. اين نوع ترجمه‌ی آدرس زمانی مفيد خواهد بود که با در اختيار داشتن تنها يک IP مجاز، بخواهيم بسته‌های دريافت شده از شبکه اينترنت را به DMZ يا يک ماشين از شبکه داخلی خود بفرستيم. 
SNAT عموماً برای تغيير آدرس مبداء بسته‌ها به‌کار می‌رود. از اين نوع ترجمه برای مخفی کردن آدرس ماشين‌های شبکه داخلی يا DMZ استفاده می‌شود. مثلاً يک زمانی که آدرس بسته‌های گذرنده از حفاظ از داخل شبکه به آدرس IP معتبر حفاظ ترجمه می‌شود و از آن خارج می‌شود نمونه‌ای از این مورد کاربرد است. بديهی است که برای هدايت بسته‌های برگشتی به گره‌های مبداء، بايد از يک جدول مراجعه کمک گرفت.
MASQUERADE مورد استفاده اين گزينه تقريباً مشابه SNAT می‌باشد. با اين تفاوت که به‌جای ترجمه آدرس‌ها به يک آدرس ثابت و مشخص، آدرس مورد نظر بايد محاسبه شود. در صورتي که يک فراهم‌کننده خدمات اينترنتی هستيد و با استفاده از DHCP و به‌صورت پويا به ماشين‌های کاربران خود آدرس IP اختصاص می‌دهيد، ناگزير به استفاده از اين نوع ترجمه‌ی آدرس هستيد.
3. جدول Mangle:
4. جدول Mangle عموماً برای تغيير ويژگي‌های خاصی از بسته‌ها، از جمله  TTL
5. ToS  و يا برچسب زدن روی آنها به‌کار می‌رود. شکل زير ساختار کلی زنجیرهای استاندارد تعريف شده در 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

تگها: IP Tables   packets   بسته های اطلاعاتی   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: