نمایش نتایج: از شماره 1 تا 1 از مجموع 1
سپاس ها 7سپاس

موضوع: آشنایی با ابزار IPTables

  
  1. #1
    نام حقيقي: محمدرضا شیخ الاسلامی

    خواننده شناسه تصویری sinaeslami
    تاریخ عضویت
    Oct 2004
    محل سکونت
    Iran,Mazandaran,chalous
    نوشته
    316
    سپاسگزاری شده
    205
    سپاسگزاری کرده
    8

    آشنایی با ابزار IPTables

    در این مقاله به معرفی يكي از ابزارهاي قدرتمند تصفيه كننده بسته‌ها به‌ نام IPtables مي‌پردازيم. IPtables به عنوان نسل چهارم پياده‌سازي شده از ابزارهاي تصفيه كننده سيستم‌عامل لينوكس معرفي مي‌شود. این مقاله شامل بخش‌های زیر است.
    • معرفي سيستم‌ تصفيه كننده بسته‌ها
    • تاريخچه حفاظ‌های سيستم‌عامل لينوکس
    • زنجيرها، جداول‌ و قوانين IPtables
    • قوانين IPtables
    • پياده‌سازی چند سياست ساده امنيتی
    • راه‌اندازي و استفاده از IPtables
    • جهت مطالعه بيشتر
    • مراجع
    معرفی سيستم تصفيه کننده بسته‌ها
    يك سيستم تصفيه‌كننده بسته‌ها (همان‌طور كه از نامش پيداست) براي كنترل ترافيك ورودي و خروجي بسته‌ها بين يك شبكه داخلي و شبكه خارجي به‌ كار مي‌رود. به كمك يك تصفيه كننده مي‌توان:
    1. دسترسي به اينترنت از طريق بعضي ماشين‌ها را محدود كرد.
    2. ترافيك ناخواسته و نيز پويش‌هاي انجام شده از خارج را مسدود كرد.
    3. از امكان ترجمه آدرس‌هاي شبكه استفاده كرد. به كمك NAT مي‌توان تعداد زيادي از كامپيوترهاي داخل شبكه را تنها با داشتن يك آدرس IP معتبر به شبكه خارجي متصل نمود.
    4. استفاده از کارگزار Proxy را از ديد کاربران شفاف نمود(Redirect).
    انواع سيستم‌های تصفيه کننده بسته‌ها
    سيستم‌های تصفيه کننده بسته‌ها به‌ طور کلی به دو نوع تقسيم می‌شوند:
    1. سيستم‌های بدون حالت : در اين سيستم‌ها تصفيه هر بسته مستقل از بسته‌های ديگر و اينکه متعلق به چه ارتباطی است، صورت می‌گيرد.
    2. سيستم‌های مبتنی بر حالت: در اين سيستم‌ها حافظه جداگانه‌ای تاريخچه هر ارتباطی که به آن وارد، خارج يا از آن می‌گذرد، را ثبت می‌کند. اين ويژگی برای پيکربندی مؤثر FTP، DNS و ساير سرويس‌های شبکه ضروری می‌باشد. عموماً حفاظ‌های مبتنی بر حالت از نمونه‌های بدون حالت امن‌تر می‌باشند. چرا که با استفاده از آنها می‌توان مجموعه قوانين سخت‌تری برای کنترل ترافيک اعمال کرد.
    تاريخچه
    محصولات ارائه شده تحت عنوان تصفيه کننده بسته‌ها چهار نسل تکامل را پشت سر گذاشته‌اند:
    • IPFW: اين نسخه يادآور اولين پشتيبانی لينوکس از سرويس تصفيه بسته‌ها می‌باشد که در داخل هسته 1.2 لينوکس تعبيه شده بود. IPFW ويژگي‌های ابتدايی مورد انتظار از يک حفاظ را پياده‌سازی کرده بود. بعضی از محدوديت‌های آن عبارت بودند از:
      • عمل تصفيه را تنها روی يک پورت انجام می‌داد
      • Mason از آن پشتيبانی نمی‌کرد
      • در محيط‌های توزيع شده قابل استفاده نبود.
      • مبتنی بر حالت نبود.
    • IPFWADM: در هسته 2.0 لينوکس قرار داده شده است. تصفيه بسته‌ها را از روی آدرس درگاه‌های مبداء و مقصد انجام می‌داد و امکان مخفی‌سازی آدرس‌های IP (ترجمه چند به يک) در آن قرار داده شده بود. با اين وجود يک حفاظ مبتنی بر حالت نبود و تنها از قراردادهای TCP، UDP و ICMP پشتيبانی می‌کرد.
    • IPChains: در هسته 2.2 لينوکس قرار داده شده بود. با وجود اينکه يک حفاظ مبتنی بر حالت نبود، ولی از زيرنوع‌های ICMP و ساير قراردادها )علاوه بر از TCP، UDP و ICMP) پشتيبانی می‌کرد.
    • از هسته 2.4 لينوکس به بعد IPtables به عنوان حفاظ پيش فرض لينوکس همراه با آن نصب می‌شد. IPtables نسبت به حفاظ‌های نسل قبل خود چند تفاوت مهم داشت:
      • يک حفاظ مبتنی بر حالت بود.
      • از قرارداد اينترنت نسخه 6.0 پشتيبانی می‌کرد.
      • از طراحی پیمانه‌ای برخوردار بود.
      • علاوه بر جهش‌های فوق، با نسخه‌های دو نسل قبل خود، يعنی IPFWADM و ipchains مطابقت داشت. (Backward Compatibility)
    جدول‌ها و زنجیرها در IPtables
    جدول و زنجیر دو مفهوم اساسی در IPtables هستند که شناخت اين ابزار و نحوه عملکرد آن و نوشتن قوانين مورد نظر مستلزم درک کامل اين مفاهيم می‌باشد.
    در IPtables جدول‌ها مجموعه‌ای از قوانين مرتبط را در برمی‌گيرند. اين قوانين در ساختار ديگری تحت عنوان زنجیرها معنی پيدا می‌کنند. زنجیرها انواع نحوه عبور بسته‌ها از حفاظ را بيان می‌کنند. بسته به اينکه هر بسته در ورود، خروج يا عبور از حفاظ چه مسيری را بپيمايد، بخشی از قوانين جدول‌ها روی آن اعمال می‌شود. نحوه اعمال قوانين جدول به اين صورت است که بسته‌های رسيده با تک تک قوانين آن مقايسه می‌شوند و اولين قانونی که با شرايط بسته مطابق باشد، در مورد آن اعمال می‌شود. در غير اين صورت سياست پيش فرض حفاظ روی آن اعمال می شود. (قبوليا دور ریختن )
    سه جدول عمده مورد استفاده در IPtables عبارتند از:
    1. جدول تصفيه :

      اين جدول تصفیه در واقع مجموعه قوانين مربوط به تصفيه بسته‌ها را در برمی‌گيرد. عمل تصميم‌گيری درباره‌ی تصفيه بسته‌ها روی ويژگي‌های خاصی از آنها صورت می‌گيرد که در ادامه به‌صورت کامل‌تر به آنها اشاره خواهيم کرد. بايد به نحوی به حفاظ فهماند چه تصميمی درباره‌ی بسته‌هايی که در يک قانون صدق می‌کنند، اتخاذ کند. مهمترين اعمال انجام شده روی يک بسته عبارتند از قبول و دور ريختن.
    2. جدول ترجمه آدرس:

      جدول ترجمه‌ی آدرس برای ترجمه‌ی آدرس بسته‌ها به‌کار می‌رود که اصطلاحاً به آن NAT گفته می‌شود. بسياري از شبكه‌هاي داخلي سازمان‌ها و حتي بسياري از فراهم ‌آورندگان خدمات اينترنتي تنها از يك IP معتبر براي اتصال مجموعه وسيعي از كامپيوترهاي خود به شبكه اينترنت استفاده مي‌كنند. مكانيسمي كه اين امكان را براي آنها فراهم مي‌آورد، NAT مي‌باشد. برای استفاده از NAT حداقل به يک آدرس IP معتبر احتياج است که اين آدرس از طريق ISP به صورت پويا يا استيا به شبکه اختصاص داده می‌شود. اين آدرس به عنوان آدرس خارجی دروازه شبکه مورد استفاده قرار می‌گيرد و برای آدرس داخلی دروازه و ساير گره‌های شبکه از مجموعه آدرس‌های رزرو شده برای شبکه‌های داخلی استفاده می‌شود. به اين ترتيب آدرس همه بسته‌های ايجاد شده در ماشين‌های داخلی که به مقصدی خارج از شبکه محلی فرستاده می‌شوند، در دروازه (که حفاظ روی آن در حال اجراست) ترجمه می‌شوند. ترجمه‌ی آدرس‌ها به اين صورت است که جايگزين آدرس مقصد و شماره درگاه مورد استفاده در بسته اوليه آدرس IP معتبر دروازه و شماره درگاه جديد تخصيص داده شده می‌شوند. در واقع ماشين خارجی يک بسته از جانب دروازه دريافت می‌کند و بسته‌های برگشتی را نيز به همان آدرس IP معتبر برمی‌گرداند. اطلاعات ترجمه آدرس در يک جدول مراجعه در دروازه ذخيره می‌شود تا بتوان با استفاده از آن، بسته‌های برگشتی را به ماشين داخلی مورد نظر (که ايجاد کننده‌ی اصلی بسته بوده) هدايت کرد. شکل زير نمونه‌ای از پيکربندی شبکه داخلی برای اتصال به اينترنت با استفاده از NAT را نشان می‌دهد:

    شکل 1 : پيکربندی شبکه‌ی داخلی با استفاده از NAT

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




    شکل 2 - جريان هدايت بسته‌ها از حفاظ IPtables

    همانطور که از شکل پيداست، يک بسته ممکن است به سه صورت مختلف از زنجیرهای IPtables عبور کند.
    1. بسته‌هايی که آدرس مقصد آنها ماشينی است که حفاظ روی آن نصب شده است.


      قبل از اينکه چنين بسته‌ای از حفاظ عبور داده شود، از زنجیرهای زير می‌گذرد و قوانين جداول زير روی آنها قابل اعمال است:


    2. بسته‌هايی که در ماشين محلی توليد می‌شوند
    قبل از اينکه چنين بسته‌ای بتواند ماشين محلی را ترک کند، از زنجیرهای زير می‌گذرد و قوانين جداول زير روی آنها قابل اعمال است:








    3. بسته‌هايی که از حفاظ عبور می‌کنند
    قبل از اينکه چنين بسته‌ای بتواند از کارت واسط شبکه ورودی به کارت واسط شبکه خروجی منتقل شود، از زنجیرهای زير می‌گذرد و قوانين جداول‌ زير روی آنها قابل اعمال است:






    قوانين IPtables
    قوانين ابزار اصلی کار با هر حفاظی را تشکيل می‌دهند. پيچيده‌ترين و پرهزينه‌ترين سياست‌های امنيتی يک سازمان در نهايت برای تصفيه بسته‌ها به قوانين نه چندان پيچيده حفاظ تبديل می‌شوند. فرمت کلی دستورات IPtables را می‌توان به صورت زير بيان کرد:

    iptables [-t table] Packet-Criteria-Specification 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 استفاده می‌شود. بسته های ورودی از واسط شبکه: برای مشخص کردن کليه بسته‌هايی که به واسط شبکه مشخصی وارد می‌شوند، بکار می‌رود. مثلاً بسته‌های ورودی به کارت واسط شبکه eth0 را با –i eth0 نشان می‌دهيم.
    • بسته‌های خروجی از واسط شبکه: مشابه دستور فوق.

      در صورتيکه از قرارداد ارتباطی TCP يا UDP استفاده کنيم، به گزينه‌های بيشتری برای تصفيه بسته‌ها دسترسی داريم.
    • تعيين محدوده شماره درگاه‌ها :
    --source-port [!] port[: port]
    Examples:
    --source-port 0: 1023
    --source-port ! 80
    -- destination- port [!] port[: port]
    • تصفيه مبتنی بر حالت: همانطور که ذکر شد، IPtables يک حفاظ مبتنی بر حالت است. در IPtables، چهار حالت مختلف برای ارتباط‌هایايجاد شده در نظر گرفته می‌شود که با استفاده از آنها می‌توان بسته‌های متعلق به آنها را تصفيه کرد. حالت‌های مختلف عبارتند از:
      • New: مشخصه ارتباط‌هايی است که تنها يک بسته در يک جهت ارسال کرده‌اند. در واقع پس از ديدن اولين بسته از هر ارتباط (بسته‌ای که پرچم SYN از سرآيند TCP آنها روشن باشد.)، وضعيت آن به New تغيير می‌کند.
      • Established: مشخصه ارتباط‌هايی است که بسته در هر دو جهت از طريق آنها ارسال شده است. پس از ديدن اولين پاسخ به بسته ارسال شده (بسته‌ای که پرچم ACK از سرآيند TCP آنها روشن باشد)، مشخصه ارتباط ايجاد شده از New به Established تغيير می‌کند.
      • 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 بعضی از سياست‌های امنيتی ساده را پياده‌سازی کنيم. در اين مثال‌ها فرض کنيد که کارت واسط شبکه eth0 به 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 قرار گرفته و بعد از هر مرتبه راه‌اندازی سيستم بصورت خودکار اجرا می شود. البته اين سرويس را می‌توان بصورت دستی و با استفاده از دستور زير فعال کرد:

    # /etc/init.d/iptables start
    يک نمونه از نبشته راه اندازی به همراه دستورات پيش فرض آن در اين آدرس آمده است. شما می‌توانيد دستورات دلخواه خود را در هر يک از بدنه‌های 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 به نظر می‌رسد. چرا که بصورت کامل مستندسازی شده و فايل‌های پيکربندی آن قابل فهم است. علاوه بر اين از امکانات ترجمه آدرس بسته‌ها و پيکربندی استاتيک (اتصال از طريق واسط ppp0) و پويای (اتصال از طريق واسط eth0) حفاظ برخوردار است.
    با اين وجود به نظر می‌رسد هيچ يک از اين ابزارها نمی‌توانند به کلی جايگزين امکانات فراوانی شوند که از طريق خط فرمان IPtables در اختيار کاربران قرار می‌گيرد. ضمن اينکه به هيچ وجه شما را از درک عميق ساختار داخلی (دستورات، جدول‌ها، زنجیرها، ...) IPtables بی‌نياز نمی‌کنند.

    جهت مطالعه بيشتر
    سايت netfilter به نوعی سايت رسمی IPtables محسوب می‌شود که آخرين نسخه‌های اين حفاظ به همراه اخبار آخرين تغييرات، مستندات آموزشی و راهنمای کاربر مربوط به آن را در برگرفته و به عنوان يکی از معتبرترين و در دسترس ترين مراجع می تواند مورد استفاده قرار گيرد.
    سايت LinuxGuruz مجموعه کامل و مفيدی از لينک‌های مرتبط با IPtables را گردآوری کرده است.
    يک صفحه آموزنده و جامع برای يادگيری IPtables توسط Oskar Andreasson در اين آدرس جمع‌آوری شده است.يک صفحه پرسش و پاسخ مناسب در مورد حفاظ‌ها از اين آدرس قابل دسترسی است.

    مراجع :
    [1] کارگاه آموزشی IPtables، دوره آموزشی برگزارشده توسط مرکز امنيت شبک شريف در شرکت ايزايران، مهدی صمدی، زمستان 1381.

    [2] http://www.jollycom.ca/iptables-tuto...-tutorial.html
    [3] http://www.securityfocus.com/infocus/1410
    [4] https://www.cae.wisc.edu/fsg/linux/linux-iptables.html

    گرد آورنده : رضا سعدالدین
    انتشار: مجله الکترونیکی فتا



    موضوعات مشابه:
    ویرایش توسط sinaeslami : 2005-09-14 در ساعت 02:53 PM
    M-r-r، sharif12، ilia_nad و 4 نفر دیگر سپاسگزاری کرده‌اند.

کلمات کلیدی در جستجوها:

iptable چیست

iptables چیست

iptable چیست؟

آموزش iptable

آموزش iptables

دستورات iptable

iptables راهنما

iptable چيست

راهنمای iptablesIPTABLEچیستebtable آموزشhttp://forum.persiannetworks.com/f88/t10149.htmlمعرفی IPtableiptables در لینوکسIPTable آموزشiptable اموزشدستور iptablesاموزش iptableiptables چیست؟ iptable سرویس iptable چیستسرویس iptable در لینوکستفاوت src-nat با masquerade چیست؟ip table چیست؟نصب راه اندازی و محدود کردن پورتها در iptables

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •