تبليغات
تبلیغات در دانشجو کلوب محک :: موسسه خيريه حمايت از کودکان مبتلا به سرطان ::
جستجوگر انجمن.براي جستجوي مطالب دانشجو کلوپ مي توانيد استفاده کنيد 
برای بروز رسانی تاپیک کلیک کنید
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5

شناخت كاربردي Iptable( « پروژه آزمايشگاه مدار منطقي »)

نویسنده پیام
  • ♔ αϻἰг κнаη ♔
    آفلاین
  • مدیرکل  سایت
    *******
  • ارسال‌ها: 16,105
  • تاریخ عضویت: تير ۱۳۹۰
  • اعتبار: 1090
  • تحصیلات:زیر دیپلم
  • علایق:مبارزه
  • محل سکونت:ایران زمین
  • سپاس ها 34951
    سپاس شده 49155 بار در 13535 ارسال
  • امتیاز کاربر: 551,587$
  • حالت من:حالت من
ارسال: #1
شناخت كاربردي Iptable( « پروژه آزمايشگاه مدار منطقي »)
Iptable Tutorial
چگونگي خواندن :
اين سند به درستي نوشته شده است . بنابراين مىتوانيد به نكات جالب iptables پي ببريد . اين به معناي اطلاعات خاصي در مورد اشكالات ايمني خاص در iptables يا Netfilter نيست اگر اشكالات خاص و رفتارهايي را در iptables و هر زير مولف يافتيد با ليت پست Netfilter تماس بگيريد و سپس خواهيد توانست اشكالات واقعي را بشناسيد و حل كنيد اشكالات ايمني واقعي در iptable و Netfilter فراوان هستند و يك يا دو اشكال در آن واحد گزارش شده است . آنها در صفوف اصلي Netfilter آمده اند بايد اطلاعات را در مورد موضوع ارائه كنند .
مىتوان گفت مجموعه قوانين موجود در اين سند پيرامون اشكالات واخل Netfilter نمىباشند . هدف اصلي توصيف چگونگي نصب قوانين در يك حالت ساده است به طوري كه بتوان مسائل داخل كرد به عنوان مثال اين سند نشان نمىدهد كه چگونه HTTP PORT به دلايل مفاد بسته مي‌شود آنطور كه Apache در نسخه 12-2-1 گزارش كرد. اين سند براي هر كس قابل استفاده است و مىتواند نشان دهد كه چگونه با iptable مىتوان كار را آغاز كرد ولي در آن واحد يك روند تكامل را نيز پيچيده است . اين جا اهداف و هماهنگي ها در patch - matic بيان نمىشوند . ارتقا نياز است . اگر اطلاعات بيشتر در مورد اين ارتقا لازم داريد بايد patch - matic و ديگر اسناد را در صفوف اصلي Netfilter مطالعه كنيد .
شرط لازم :
اين سند به معلومات در مورد linux linux ، دست نوشته لايه اي ، و چگونگي كامپايل كردن kernel و بخش دروني آن نياز دارد .
من سعي كرده ام تا تمام شرايط را قبل از توصيف اين سند بررسي كنم ولي نمىتوان تمام اطلاعات قبلي را مطرح كرد .
نهادهاي مورد استفاده در اين سند : اين نهادهاي در سند زمان دستورات ، فايل و ديگر اطلاعات خاص استفاده مىشوند .
- گلچين كد و خروجي دستور اين چنين است و تمام خروجي ها در فونت پهناي ثابت و دستور مكتوب كاربر به صورت bold هستند:
- تمام دستورات و نام هاي برنامه در اين سند در حالت bold هستند:
- تمام item سيستم مانند سخت افزار و مولف دروني kernel و item سيستم انژاي مانند روابط حلقه اي كه در حالت italic آمده اند
- خروجي كامپيوتر به شكل this way در متن ظاهر مىشوند .
- نام فايل و مسير در سيستم فايل به شكل ….

فصل 1 : مقدمه
1-1 : چرا اين سند نوشته شد :
من فضاي خالي بزرگي را در HOW TOS يافتم و در آنجا اطلاعات در مورد iptable و نقش Netfilter در linux 1/4x kernel جديد كافي نبود . در بين آنها مىخواهم به سوالاتي پاسخ دهم كه در مورد احتمال جديد مانند مطابق حالت بوده اند . بخش اعظم آن به صورت فايل rc…. است كه در دست نوشته etc…. آمده است . اين فايل اصولاً بر اساس ارتقاي idowt. است .
يك دست نوشته كوچك در مورد اجراي برنامه و راه اندازي سيستم به صورت rc…. در دسترس است .
2-1 : چگونگي نوشتن :
من با مارك باكر و ديگران در سيستم Netfilter مشورت كردم . بسياري از آنها در اين اثر مستند به من كمك نموده اند و در اين جا سعي كرده ام از سايت Fr.zentux.Net خود استفاده كنم . اين سند فرآيند نصب را مرحله به مرحله نشان مىدهد و در مورد طرح iptables است . من مثالهاي فايل re.Firewall و مثالهاي يادگيري استفاده از iptables را نيز ارائه كرده ام در اين جا بايد تابع زنجيره هاي اصولي باشيد و آنها را در كنار هم قرار دهيد . به اين ترتيب سند مىتواند آماده شود و روش منطقي تر را نشان دهد . هر زمان كه اين درك مشكل باشد به اين سند مراجعه كنيد .
3-1 : اصطلاحات مورد استفاده در سند :
اين سند داراي اصطلاحاتي است كه به تشريح نياز دارند قبل از اينكه آنرا مطالعه كنيد . در اين بخش توصيف آنها و چگونگي انتخاب آنها در سند آمده است .
ترجمه آدرس شبكه مقصد - DNAT - روش ترجمه آدرس IP مقصد در بسته اشتاره دارد و يا تغيير آنرا نشان مىدهد . اين با SNAT استفاده شد و به كاربرها در به اشتراك گذاري آدرس IP اينترنت كمك مىكند و خدمات سرويس دهنده را ارائه مىنمايد. اين روند با تعيين port متفاوت با آدرس IP عملي است و مسير linux را براي ارسال ترافيك نشان مىدهد .
جريان- اين اصطلاح به روابط ارسال و دريافت بسته ها در رابطه با روش جديد اشاره دارد . اصولاً اين اصطلاح براي يك نوع ارتباط به كار مىرود كه دو يا چند بسته را در دو جهت ارسال مىكند . در TCP اين به معناي ارتباطي است كه يك SYN را ارسال مىكند و سپس با SYN/ACK جواب مىدهد ولي ارتباط ارسالي SYN و جواب ميزبان ICMP نيز مهم است . به عبارت ديگر از اين اصطلاح به خوبي استفاده نمي‌كنم .
SNAT - ترجمه آدرس شبكه منبع اين اصطلاح به روش ترجمه آدرس منبع به ديگري اشاره دارد . اين براي چندين ميزبان وجه اشتراك گذاري آدرس IP اينترنت به كار ميرود زيرا نقص آدرس IP در IP 74 مطرح است ( IP 74 اين را حل مىكند )
حالت - اين اصطلاح بحالت بسته طبق پروتكل كنترل انتقال RFC 793 اشاره دارد و در Netfilter/iptable به كار مىرود . توجه كنيد كه حالات دروني و خارجي تابع ويژگي RFC 793 است . دليل اصلي آن است كه Netfilter بايد چندمين فرضيه در مورد ارتباط و بسته ها ارائه كند . فضاي كاربر - اين اصطلاح به هر چيز كه در خارج kernel روي دهد اشاره دارد به عنوان مثال تحريك iptable-h در خارج kernel است ولي iptable - A Forward p - tcp jAce Ept در kernel است زيرا قانون جديد به مجموعه قوانين اضافه مي‌شود .
فضاي kernel - اين نكاتش برخلاف فضاي كاربر است اين اقدامات را در kernel نشان مىدهد و همه در خارج آن .
قلمرو كاربر - به فضاي كاربر مراجعه كنيد .

فصل 2 : آماده سازي : اين فصل توصيف درك نقش Netfilter و iptable در linux است . در اين جا بايد كار با آزمايش آغاز شود و نصب عملي شود . با زمان كافي مىتوانيد آنرا دقيقاً اجرا كنيد .
1-2 : كجا به iptable دست يابيم :
بسته فضاي كاربر iptables مىتواند از آدرس زير down load شود :
http……….
اين بسته iptable تسهيلات خاص فضاي kernel را نشان مىدهد كه در طي توليد سيستم طراحي شده اند مراحل لازم به تفصيل بررسي خواهند شد .
2-2 :نصب kernel :
براي اجراي اساس iptable بايد گزينه ها در kernel راه اندازي شوند و سيستم با دستورات مربوط آماده شود .
CONFIG- PAKET- اين گزينه توليد برنامه را براي ارتباط كاري سيستم با ابزار شبكه نشان مىدهد . نمونه ها به صورت tcpdump و snort است .
CONFIG- PAKET- يك نياز براي عملكرد iptable نيست بلكه داراي موارد استعمال فراوان است . در اين جا بايد طرح در نظر گرفته شود . اگر آنرا نخواهيد حذف مىكنيد .
CONFIG - NETFILER - اين گزينه در صورتي نياز است كه بخواهيد از كامپيوتر به عنوان ورود به اينترنت استفاده كنيد . به عبارت ديگر اين روند براي هر چيز در سند نياز است زيرا طرح اصولي هستند . البته بايد ابزار درست براي رابط اضافه شوند مانند آداپتور اينترنت ، ppp و رابط SLIP . اين موارد اصول iptable هستند . شما نمىتوانيد چهارچوب را به kernel اضافه كنيد . اگر از گزينه ها در iptable استفاده كنيد بايد نصب سيستم را در kernel انجام دهيد . در اين جا گزينه ها در kernel 9-4-2 آمده اند.
CONFIG -NF - FTP - اين مدل در صورتي نياز است كه بخواهيد ارتباط را بر FTP برقرار كنيد . جون ارتباطات FTP به راحتي در موارد طبيعي اجرا نمي‌شوند بايد از helper استفاده كنيد . اگر اين مدل را اضافه نكنيد . نمىتوانيد FTP را به درستي اجرا كنيد .
CONFIG- IP - NF - FPTAHLE - اين گزينه در صورتي نياز است كه يك نوع Filter يا NAT نياز باشد . در اين جا چهارچوب شناخت iptable به kernel اضافه مي‌شود . بدون اين امر نمىتوانيد با iptable كاري كنيد .
CONFIG -IP- NF - MATCH - LIMIT - اين مدل دقيقاً نياز نيست ولي در مثالهاي rcopir…. آمده است اين گزينه هماهنگي LIMIT را نشان مىدهد . بايد احتمال كنترل بسته ها در نظر گرفته شود و قانون توسعه يابد . به عنوان مثال m.limit- lin 3 / lin.ld يك هماهنگي 3 بسته را در هر دقيقه نشان مي‌دهد . اين مدل مىتواند براي جلوگيري از علامت انكار خدماتي استفاده شود.
CONFIG - IP - NF - MATCH- MAC - اين گزينه هماهنگي بسته را بر اساس آدرس MAC نشان مىدهد . هر آداپتور اينترنت داراي آدرس MAC خاص خود است . ما بسته هاي بلوكي در آدرس MAC داريم و از بلوك خاص براي آدرس MAC استفاده مىكنيم . ما از اين گزينه در نمونه dc.fire…. استفاده نمىكنيم .
CONFIG - IP - NF….. - اين گزينه در استفاده از تطابق MARK مفيد است . به عنوان مثال اگر از MARK هدف براي بسته ها استفاده شود بسته به اين كه آيا بسته ها در جدول هستند يا خير مىتوانيم هماهنگي را برقرار كنيم . اين گزينه هماهنگي واقعي MARK است و مىتواند توصيف هدف واقعي MARK باشد .
CONFIG - IP - NF - MATCH - MULTIPORT - اين روش به ما در تطابق بسته ها با يك سري port مقصد و منبع كمك مىكند . اين ويژگي غيرممكن است ولي هماهنگي برقرار خواهد شد .
CONFIG -IP - NF- MATCH- TOP - با اين هماهنگي مىتوان بسته ها را بر اساس فيلد TOS در تطابق قرار دارد . TOP به type of service اشاره دارد TOS مىتواند با قوانين خاص در جدول قرار گيرد و از طريق دستور ipltc اجرا شود .
CONFIG - IP- NF -MATCH- TCP MSS- اين گزينه احتمال هماهنگي بسته هاي TCP را در فيلد MSS نشان مىدهد .
CONFIG - IP- NF-MATCH - STALE - اين يكي از بزرگترين اخبار در مقايسه با ipchain است . با اين مدل مىتوان هماهنگي بسته ها را عملي ساخت . به عنوان مثال اگر شاهد ترافيك در دو بعد ارتباط TCP هستيم بسته به صورت ESTABLISHED ظاهر مي‌شود . اين مدل در مثال rc…. استفاده مي‌شود .
CONFIG- IP- NF- MATCH- UNCLEAN - اين مدل احتمال هماهنگي IP ، TCP، UDP ، ICMP را نشان مىدهد و تطابق با يك نوع اعتبار ندارد . ما مىتوانيم اين بسته ها را حذف كنيم ولي نمىدانيم كه آيا اين كار درست است . توجه كنيد كه اين هماهنگي تجربي است و نمىتوان در تمام موارد كامل باشد.
CONFIG - IP - NF - FILTER - اين مدل اساس جدول Filter است و مىتواند فيلتر IP را انجام دهد در اين فيلتر مىتوان زنجيره Forward , Input و Output را يافت . اين مدل در صورتي نياز است كه طراحي بسته براي ارسال و دريافت انجام شود .
CONFIG - IP - NF- TARGET - REJECT - اين هدف به شما كمك مىكند تا مشخص كنيد كه پيام خطاي ICMP بايد در پاسخ نسبت به بسته‌هاي بعدي ارسال شود در اين جا حذف مهم است . در خاطر داشته باشيد كه روابط TCP برخلاف ICMP , UDP مىتوانند انكار با بسته TCPRSS باشند.
CONFIG -IP -NF- TARGET- MIRROR - اين به بسته ها در برگشت به موسسه با بسته كمك مىكند . به عنوان مثال اگر يك هدف MIRROR بر مقصد HTTP نصب شود و يا زنجيره INPUT مشخص گردد دسترسي به port عملي است و بايد بسته ها دوباره به صفوف home برگردند و در آنجا رويت شوند .
CONFIG - IP - NF- NAT - اين مدل به ترجمه آدرس شبكه يا NAT در اشكال متفاوت كمك مىكند اين گزينه دسترسي به iptable را عملي مي‌سازد . اين گزينه در صورتي نياز است كه بخواهيم ارسال و تغيير port را انجام دهيم. توجه كنيد كه اين گزينه براي Firealling و ارسال LAN نياز نيست بلكه بايد در اختيار باشد مگر اينكه بتوانيم آدرس خاص IP را براي تمام ميزبان ها ارسال كنيم . بنابراين اين گزينه براي دست نوشته rc.fire…. به كار مىرود و در ثورتي شبكه مشخص خواهد شد كه توانايي آدرس IP از بين برود.
CONFIG- IP - NF - TARGET - MASQUERAD - اين گزينه هدف MASQUERAD را اضافه مىكند. به عنوان مثال اگر ندانيد كه IP چه بايد انجام دهد بهتر است كه آنرا بدست آوريد و از DNAT يا SNAT استفاده كنيد . به عبارت ديگر اگر از PPP , DHCP يا SLIP يا ديگر روابط تعيين كننده IP استفاده مىكنيد بايد از اين هدف به جاي SNAT استفاده شود Masquerading بارباراتر را بر كامپيوتر نسبت به NAT نشان مىدهد ولي بايد IP آدرس را از قبل نشان دهد .
CONFIG-IP-NF-TARGET-NEPIRECT - اين هدف با prong برنامه مفيد است . به جاي اين كه بسته عبور كند بايد به جعبه داخلي ببريم . به عبارت ديگر احتمال prong شفاف وجود دارد .
CONFIG-IP-NF-TARGET-LOG - اين برنامه هدف LOGو نقش آنرا به iptables اضافه مىكند . از اين گزينه براي LOG بسته هاي خالي استفاده مي‌شود و بايد ديد در بسته چه اتفاقي مىافتد اين براي و شكاي زدايي دست نوشته كه آنرا مىنويسيم نياز است .
CONFIG- IP- NF- TARGET- TCPMSS - اين گزينه مىتواند براي شمارش ارائه دهنده خدماتي اينترنت و سرويس دهنده هايي استفاده شود كه بسته هاي تجزيه ICMP را كاهش داده اند اين خود باعث مي‌شود صفحات وب در دسترس قرار گيرند . پت كوچك نيز با بخش بزرگتر عملي است مانند SCP بعد از اينكه طرح معرفي شد ما از هدف TCPMSS براي غلبه بر اين مسئله استفاده خواهيم كرد و بايد MSS ( اندازه قطعه ماكزيمم ) به DMTU اضافه شود ( واحد انتقال ماكزيمم مسير ) . اين روش مىتواند كنترل Netfilter را نشان دهد و تابع ISP و سرويس دهنده خدماتي در سيستم kernel فراخواني شود .
CONFIG- IP- NF- COMPAT- IPCHAINS - اين گزينه يك مد سازگاري را با ipchains اضافه مىكند . به اين مورد توجه نكنيد و راه حل بلند مدت را در حل حركت از linux 2/2 به 2/4 ارائه كنيد . اين جا kernel 2/6 استفاده خواهد شد .
همان طور كه مىتوان ديد يك سري گزينه معرفي شده است . در اين جا بايد ديد چه نوع رفتارهاي مازادي از مدلها حاصل مىشوند اينها تنها گزينه ها در linux 2,4,9, kernel هستند . اگر بخواهيد به اين گزينه ها توجه كنيد بايد تابع patch - o- matic در Netfilter را در نظر داشته باشيد و به گزينه ها در kernel توجه كنيد . تثبيت POM نيز مىتواند در kernel عملي شود و بايد بتوان به kernel دست يافت . اين توابع بايد در آينده اضافه شوند ولي هنوز ساخته نشده اند . اين خود دلايل متفاوت دارد مانند مسير غير ثابت به linux torvalds كه نمىتواند حفظ شود و يا مسير به kernel جريان اصلي كه هنوز آزمايشي است .
شما به گزينه هاي زير به صورت كامپايل در kernel نياز داريد تا دست نوشته rc…. را اجرا كنيد . اگر به گزينه هايي نياز داريد كه در ديگر دست نوشته ها نياز هستند به بخش دست نوشته زير مراجعه كنيد .
برنامه
در ميزان حداقل بايد از دست نوشته rc.Firewall.txt استفاده شود . در ديگر مثالها نشان مىدهم كه چه نوع شرطي در اين بخش نياز است . اكنون بايد دست نوشته اصلي مورد مطالعه در نظر باشد .
3-2 : نصب محل كاربر :
اول از همه بايد ديد كه چگونه بسته هاي iptable كامپايل مىشوند بايد ديد كه در بيشتر سيستم ها و كامپايل iptable بايد سيستم و كامپايل kernel صورت گيــــرد . تــــوزيع خاص نيز در بسته iptable عملي است و يكي از آنها RED HAT است . با اين وجود RED HAT در هر پيش فرضي غير فعال است . اكنون بايد ديد كه چگونه اين توزيعات در اين فصل بررسي خواهند شد.
1-3-2 : كامپايل برنامه هاي قلمرو كاربر :
نخست آنكه بايد بسته هاي iptables آزاد شوند . در اين جا از iptables 1/26 a و vanilla 2/4 kernel استفاده مي‌شود . باز كردن بسته با استفاده از hzip 2 ,…. صورت مىگيرد (اين مىتواند با tar - xjvf…. عملي شود كه بايد يك دستور مانند دستور اول داشته باشد و با اين وجود اين با نسخه tar ديده نشده است ).طرح بايد به درستي در دايركتوري به نام iptables…. قرار گيرد. براي اطلاعات بيشتر بايد iptables…. را بتوانيد كه حاوي اطلاعات مفيد در مورد كامپايل و دسترسي به اجراي برنامه است . بعد از اين بايد گزينه طراحي و نصب مدل اضافي براي kernel در نظر گرفته شود . مرحله مورد توصيف كنترل و نصب بخش هاي استاندارد است كه در kernel در نظر گرفته شده اند. اين روند با كمك طرح اجراي عملي است .
بعضي از اين طرح ها آزمايشي هستند و مىتوانند براي نصب مفيد باشند . با اين وجود بايد هماهنگي جالب و اهداف در مرحله نصب صورت گيرد و اين خود به روند خاص نياز دارد براي انجام اين مرحله بايد اين شكل از بسته iptables معرفي شود .
توليد patch فوريKERNEL- DIR/ USR/ SRC/ linux
متغيير KERNEL- DIR بايد به محل واقعي اشاره كند كه منبع kernel شما در آن واقع است . به طور طبيعي اين به صورت usr/src… است ولي مىتواند متغيير باشد و شايد در اين منبع kernel در اختيار باشد .
اين خود patch خاص را در مورد ورود به kernel گزارش مىكند . patch بيشتر نيز توسط توسعه دهنده Netfilter مىتواند به kernel اضافه شود . اين روند به طور واقعي انجام مي‌شود يك روش نصب دستور زير است .
برنامه
دستور فوق در مورد نصب قطعات دنياي Netfilter است كه patch - o- metic نام دارد ولي حذف patch اضافي نيز عملي است .
توجه كنيد كه اين بدان علت است كه اين دستورات واقعي اجرا مىشوند آنها قبل از اين كه چيزي در منبع kernel تغيير كند مورد سوال قرار گيرند براي نصب تمام patch - o- metic بايد دستور زير اجرا شود .
برنامه
فراموش نكنيد كه هر patch را بطور كامل قبل از روند اجرا مطالعه كنيد . بعضي از آنها patch ديگر را تخريب مىكنند ولي مابقي kernel را تخريب مىكنند در صورتي كه با patch در patch - o- metic استفاده شوند.
نكته :شما مىتوانيد مراحل فوق را ناديده بگيرد در صورتي كه نخواهيد kernel را جمع كنيد و به عبارت ديگر لازم نيست موارد فوق را انجام دهيد . با اين وجود چيزهاي جالب در patch - o- metic وجود دارد كه مىتوانيد جستجو كنيد . بنابراين دستور اجرايي غلط نيز در نظر گرفته مي‌شود .
بعد از اين بايد قطعه patch - o- metic نصب كامل شود و شما اكنون مىتوانيد يك kernel جديد را كامپايل كنيد و از patch جديد براي اضافه كردن به منبع استفاده كنيد سيستم بايد طراحي شود و در اين جا بايد گزينه ها اضافه شوند . بايد صبر كنيد تا كامپايل كامل شود تا اين كه iptable برنامه اجرا شود.
كار را با كامپايل برنامه iptable ادامه دهيد . براي كامپايل iptable يك دستوري مشابه دستور زير صادر مي‌شود.
برنامه
برنامه قلمرو كاربر بايد به درستي كامپايل شود . در غير اين صورت بايد بتوانيد در ليت پست Netfilter عضو شويد . در اين جا شانس كمك فراوان است . چندين چيز اشتباه در مورد نصب iptable وجود دارد و بنابراين اگر اقدام صورت نمىگيرد نگران نباشيد . سعي كنيد تا به روش منطقي اشكال را بشناسيد و از كسي كمك بخواهيد . اگر همه چيز درست است آماده نصب هستند . براي اين كار بايد دستور زير ارسال شود .
برنامه
همه چيز بايد در برنامه اجرا شود . براي استفاده از هر برنامه iptable بايد اكنون نصب مجدد سيستم و kernel را انجام دهيد در صورتي كه قبلاً آن را انجام نداده ايد . براي اطلاعات بيشتر در مورد نصب برنامه كاربر از منبع بر فايل INSTALL در منبع مراجعه كنيد كه حاوي اطلاعات خارجي در مورد موضوع نصب است .
2-3-2 : نصب بر Red Hat 7/1
Red Hat از قبل با يك kernel x2/4نصب مي‌شود كه داراي Netfilter و iptable كامپايل شده در آن است . اين طرح داراي تمام برنامه هاي كاربر و فايل سيستم براي اجرا است . با اين وجود افراد Red Hat همه چيز را با استفاده از سيستم ipchain هماهنگ ناتوان كرده اند . براي رفع مشكل بايد ليست متفاوت بستي در نظر گرفته شد. و به اين دليل است كه iptable عمل نمىكند بنابراين بايد ديد كه سيستم ipchain چگونه عمل مىكند نصب iptable چگونه است .
نكته : امروزه نصب Red Hot 7/1 پيش فرض با نسخه قديمي برنامه فضاي كاربر عملي است و بنابراين ممكن است بخواهيد تا نسخه جديد برنامه را كامپايل كنيد و يك kernel كامپايل شده را نصب كنيد قبل از اين كه به طور كامل از iptable استفاده شود. ابتدا بايد طرح ipchains را غير فعال كنيد . بنابراين در آينده لجرا نمي‌شود براي اين كار بايد نام فايل را در ساختار دايركتوري etc/rcod/ تغيير دهيد . دستور زير بايد استفاده شود .
برنامه
به اين ترتيب به روابط نرم و رسم كردن دست نوشته Htcl…. در k 92 ipchain اشاره دارند . اولين مرحله كه در هر پيش فرض 6 است اولين دست نشته را نشان مىدهد . با تغيير اين حالت به اين k مىگوييم كه خدمات را kill كنيد و يا اين كه آنرا در صورتي كه قبلاً اجرا نشده است اجرا نكنيد . اكنون اين خدمات در آينده اجرا نخواهد شد .
با اين وجود براي توقف خدمات از حالت اجرايي بايد دستور ديگر را اجرا كنيم. اين يك دستور خدماتي است كه مىتواند براي اجراي فعلي استفاده شود اين دستور براي توقف خدمات ipchain ارائه مي‌شود.
دستور
در نهايت براي راه اندازي خدمات iptable اقدام خواهد شد . ابتدا بايد بدانيم كدام سطح اجرايي را مىخواهيم اجرا كنيم اين خود در سطح 2، 3، 5 قرار مىگيرد اين سطوح اجرايي براي موارد زير استفاده مىشوند .
- 2 Multiuser بدون NFS و يا 3 در صورتي كه شبكه وجود نداشته باشند .
- 3 مد چند كاربر كامل يعني سطح اجرايي طبيعي
- xll 5 اين در صورتي استفاده مي‌شود كه به طور خودكار در x windows باشيد.
براي توليد iptable در اين سطوح اجرايي به دستور زير نياز است :
برنامه
دستورات فوق به عبارت ديگر اجراي iptable را در سطح 2، 3، 5 باعث مىشوند . اگر مايل هستيد خدمات iptable در ديگر سطوح اجرا شوند بايد كه دستور صادر شود . با اين وجود هيچ يك از سطوح اجرايي استفاده نمىشوند و بنابراين نبايد آنرا براي سطوح اجرايي فعال كرد . سطح 1 براي حالت كاربر واحد است يعني وقتي كه يك جعبه نثبيت مي‌شود سطح 4 بايد غير استفاده باشد و سطح 6 براي shut down كامپيوتر است. براي فعال كردن خدمات iptable دستور زير اجرا مي‌شود.
دستور
هيچ قانوني در دست نوشته iptable وجود ندارد . براي اضافه كردن قوانين به يك جعبه Red Hot 7/1 دو روش وجود دارد .نخست آنكه بايد دست نوشته etc/rc… را ويرايش كنيد . اين اثر غير مطلوب حذف تمام قوانين را دارد در صورتي كه بسته iptable يا RPM ارتقا يافته باشد . اين روش به صورت 10 ad كردن مجموعه قوانين و ذخيره با دستور iptable- SNC است پس بايد 10 ad خودكار يا rcod صورت گيرد.
ابتدا بايد ديد كه چگونه نصب iptable با cut و past كردن iptable initod عملي است . براي اضافه كردن قوانيني كه زمان شروع خدمات كامپيوتر اجرا مىشوند بايد آنها را تحت عنوان در تابع starto اضافه كنيد . توجه كنيد كه اگر تحت بخش start عمل كنيد تابع starto اجرا ميشود ويرايش بخش stop) ) تغيير مىتواند نشان دهد كه كدام دست نوشته و در چه زماني اجرا مي‌شود و يا چه چيز وارد سطح اجرايي مي‌شود كه به iptables نياز ندارد بايد بخش restart و (ondrestarte) كنترل شود . توجه كنيد كه تمام اين اقدامات در صورتي كنترل مىشوند كه داراي شبكه Red Hot خودكار براي ارتقاي بسته‌ها باشيد . اين مىتواند با ارتقا از بسته iptable RPM حاصل شود .
روش دوم :نصب مستلزم اين موارد است : ابتدا بايد يك مجموعه قانون در فايل دست نوشته لايه اي نوشته شود و با تصميم در iptable نوشته شود كه نياز شما را برآورد اين بار آزمايش را فراموش نكنيد . وقتي يك نصب بدون مسئله صورت گيرد همان طور كه بدون اشكال ديده شد از دستور iptables - save استفاده كنيد . شما م/يتوانيد از آن به طور طبيعي استفاده كنيد و يا اين كه iptables - saves…. را استفاده كنيد كه ذخيره مجموعه قوانين در فايل etc/sy…. است . اين فايل به طور خودكار توسط دست نوشته iptable rcd براي احياي مجموعه قوانين در آينده استفاده خواهد شد روش ديگر ذخيره دست نوشته با service iptable save خودكار etc/syscn…. است بعداً كامپيوتر دوباره راه اندازي مي‌شود و دست نوشته iptable rcd از دستور iptable -restart براي ذخيره مجموعه قوانين از فايل save /etc/…. استفاده مىكند .
اين دو روش را با هم تركيب نكنيد زيرا ممكن است به هم آسيب برسانند و سيستم Firewall را تبديل كنند .
وقتي تمام اين مراحل كامل شد مىتوانيد نصب ipchain و بسته iptable را كنسل كنيد . اين بدان علت است كه نمىخواهيد سيستم ما برنامه جديد iptable كاربر را با برنامه قديمي از پيش نصب شده iptable تركيب كند. اين مرحله در صورتي نياز است كه بخواهيد iptable را از بسته منبع نصب كنيد .غير معمول نيست كه بسته جديد و قديم مخلوط شوند زيرا نصب مبناي rpm مىتواند بسته را در محل غير استاندارد نصب كند و ما با نصب بسته iptable مىتوانيم عمل نوشتن را تكرار كنيم . براي اين كار از دستور زير استفاده مي‌شود . برنامه
چرا ipchains در صورتي كه از آن استفاده نمىكنيد در اطراف باقي مىماند . حذف آن مانند روش بانيري هاي iptable است.
برنامه
بعد از اين كه كار كامل شد با ارتقاي بسته از منبع روبرو شده ايد و دستوالعمل نصب منبع دنبال خواهد شد هيچ يك از بانيري هاي قديمي ، كتابخانه ها و يا فايل شمول نبايد در اهداف باشند .

فصل 3 : عبور از جداول و زنجيره ها
در اين فصل عبور بسته ها از زنجيره هاي متفاوت و با نظم خود توصيف خواهند شد همچنين نظم عبور جداول بررسي مي‌شود و خواهيم ديد كه اين روند بعداً تا چه حد با ارزش خواهد بود در صورتي كه قوانين خاص را مىنويسيم.همچنين نقاط ورود مولف هاي وابسته به kernel به تصوير را بررسي خواهيم كرد تصميمات رديابي نيز بررسي مىشوند . اين امر در صورتي مهم است كه بخواهيم قوانين iptable را كه تغيير الگوي رديابي را براي بسته ها نشان دهند بنويسيم . بايد ديد كه چرا و چگونه اين بسته ها رديابي مىشوند . و نمونه هاي عالي DNAT و SNAT است بيت هاي Tos نبايد فراموش شوند .
1-3 : كليات :
وقتي كه بسته ها ابتدا وارد Firewall شود با سخت افزار برخورد مىكند و سپس وارد درايو وسيله مناسب در kernel مي‌شود . پس بسته از يك مجموعه مراحل در kernel عبور خواهد كرد قبل از اين كه به برنامه صحيح ارسال شود و يا به ميزبان ديگر برود. ابتدا بسته اي را بررسي مىكنيم كه براي ميزبان داخلي مفروض است . از چندين نرحله بايد عبور كرد قبل از اينكه به برنامه دريافت كننده برسيم .
توجه كنيد كه اين بار بسته به جاي عبور از زنجيره Fireward از INPUT عبور خواهد كرد اين كاملاً منطقي است شايد تنها چيز منطقي در مورد عبور جداول و زنجيره ها در چه سيستم شما در ابتدا همين باشد ولي اگر به أن فكر كنيد آنرا مفيد تر خواهيد ديد.
در اين مثال فرض مىكنيم كه بسته براي ميزبان ديگر بر شبكه ديگر مفروض است . بسته مراحل متفاوت را به شرح زير طي خواهد كرد .
همان طور كه مىتوان ديد يك سري مراحل فراوان وجود دارد . بسته مىتواند در هر زنجيره iptableمتوقف شود در صورتي كه شكل درست نداشته باشد . با اين وجود ما به جوانب iptable توجه داريم . هيچ زنجيره خاصي از جداول براي روابط متفاوت و يا مشابه آن وجود ندارد . Fireward هميشه عبور با تمام بسته هايي است كه به اين مسير و Firewall به جلو مىآيند .
نكته :از زنجيره INPUT براي فيلتر سناريوي قبل استفاده نكنيد . INPUT فقط براي بسته ها در ميزبان داخلي شما به كار مىرود كه در اطراف مقصد ديگر نيست . اكنون مىتوان ديد كه چگونه زنجيره هاي متفاوت در اين 3 سناريوي جداگانه عبور مىكنند اگر يك الگوي درست از طرح ارائه شود به شرح زير است .
براي تشريح اين تصوير بايد اين طرح را در نظر بگيريد . اگر يك بسته در تصميم رديابي اول داشته باشيم كه براي خود ماشين داخلي مفروض نيست مسير از زنجيره Forward است . اگر بسته برعكس براي آدرس IP باشد كه ماشين داخلي به آن گوش مىكند بسته از زنجيره ارسال مي‌شود و به ماشين داخلي مىرسد.
همانطور كه گفته شد بسته ها مىتوانند براي ماشين داخلي در نظر گرفته شوند ولي آدرس مقصد مىتواند از زنجيره PREUTING يا اقدام NAT تغيير كند . چون اين امر قبل از اولين رديابي تصميم عملي است بسته بعد از اين تغيير جستجو خواهد شد . به اين علت رديابي تصميم تغيير ميكند توجه كنيد كه تمام بسته ها از يك يا چند مسير در تصوير عبور ميكنند . اگر DNATبسته به يك شبكه صورت گيرد حركت از مابقي زنجيره انجام خواهد شد تا اين كه به شبكه برسيم .
نكته :اگر احساس مىكنيد كه اطلاعات بيشتر نياز داريد مىتوانيد از دست موشته آزمايشي بايد قوانين آزمايشي چكونگي عبور جداول در زنجيره ها را ارائه كند .




2-3 : جدول تركيبي
اين جدول همانطور كه گفته شد براي ترگيب بسته ها استفاده مي‌شود . به عبارت ديگر به آساني از تطابق تركيبي استفاده مي‌شود كه مىتواند تغيير فيلد TOSباشد .
نكته :شما نبايد از اين جدول براي فيلتر استفاده كنيد و يا هر DNAT , SNAT ويا Masquerading را در اين جدول استفاده نماييد .
اهدافي كه در جدول تركيبي معتبر عبارتند از MARK - TTL - TOS هرف TOSبراي تنظيم و تغيير فيلد نوع خدماتي در بسته استفاده مي‌شود . اين مىتواند براي نصب خواستني ها بر شبكه در مورد چگونگي مسير يابي بسته و غير استفاده شود . توجه كنيد كه اين كامل نشده است و واقعاً بر اينترنت اجرا نمي‌شود و بيشتر ردياب ها به ارزش در فيلد توجه ندارند و گاهي اوقات آنها مىتوانند عملكرد را ارائه كنند در اين جا بسته ها به اينترنت مىروند مگر اين كه بخواهيد تصميم را بر آن يا iprute 2 اراده كنيد .
هدف TTL براي تغيير TTL (زمان عصر ) در بسته استفاده مي‌شود ما مىتوانيم بگوييم كه بسته ها داراي يك TTL خاص هستند . يك دليل براي آن اين است كه نمي‌خواهيم خود را از ارائه دهنده خدمات اينترنت در كنيم . بعضي از ارائه دهندگان دوست ندارند كه كاربر ما چند كامپيوتر را به يك اتصال واحدتر راه اندازي كنند و ارائه دهندگان به دنبال توليد ارزش هاي متفاوت TTL توسط ميزبان هستند و اين خود نشانه اتصال كامپيوترها به يك ارتباط واحد است.
هدف MARK براي نصب ارزش مارك خاص در بسته استفاده مي‌شود . اين مارك ها مي‌توانند توسط برنامه iproute 2 براي مسيرهاي متفاوت بر بسته شناخته شوند و اين خود به علامت بستگي دارد ما مىتوانيم حد پهناي باند و رديف بندي طبقاتي را بر اساس اين علائم داشته باشيم.
3-3 : جدول nat
اين جدول بايد فقط براي NAT (ترجمه آدرس شبكه ) به بسته هاي متفاوت استفاده شود . به عبارت ديگر اين جدول براي ترجمه فيلد منبع بسته و يا فيلد مقصد به كار مىرود توجه كنيد كه همان طور كه گفته شد فقط بسته اول در جريان وارد اين زنجيره مي‌شود بعد از اين مابقي بسته ها به طور خودكار يك اقدام مانن بسته اول دارند . اهداف واقعي كه با اين امور انجام مىشوند عبارتند از : MASQUERADE - SNAT - DNAT
هدف DNAT عمدتاً در مواردي استفاده مي‌شود كه يك IP عمومي وجود دارد و ميخواهيم تا دسترسي را بهFIREWALL و ديگر ميزبانها آسان كنيد (مانند DMZ ) به عبارت ديگر ما آدرس مقصد را در بسته تغيير مىدهيم . آنرا به ميزبان برمي‌گردانيم
SNAT براي تغيير آدرس منبع بسته ها استفاده مي‌شود . در بيشتر موارد شبكه هاي داخلي يا DMZ پنهان مىشوند . يك مثال در واقع Firewall معلومات در خارج از آدرس IP است و بايد شماره IP شبكه داخلي با شماره Firewall عوض شود با اين هدف Firewall به طور خودكار بسته ها را SNAT و DE-SNAT مىكند و بنابراين مىتوان اتصالات را از LAN به اينترنت برقرار كرد اثر شبكه شما از 192/168/…/netmask استفاده مىكند بسته ها هرگز از اينترنت برنمىگردند زيرا LAN اين شبكه ها را به صورت خصوصي و يا براي استفاده در LAN جداگانه تنظيم كرده است .
هدف MASRUERADE مانند SNAT استفاده مي‌شود ولي هدف مربوطه كلي جاي بيشتر در كامپيوتر نياز دارد دليل آن اين است كه هر زبان كه هدف MASRUERADE با بسته در برخورد است به طور خودكار آدرس IP را براي استفاده كنترل مىكند آنرا مانند هدف SNAT استفاده خواهد كرد . اين امر با آدرس واحد IP عملي است . اين هدف كار درست با آدرس Dynamic DHCP IP را كه ISP آنرا براي اتصال ppp ، pppoe يا SLIP به اينترنت ارائه كرده است راه اندازي مىكند .
4-3 : جدول فيلتر :
اين جدول براي فيلتر بسته ها استفاده مي‌شود . ما مىتوانيم بسته ها را هماهنگ سازيم و آن ها را هر گونه كه مىخواهيم فيلتر كنيم . اينجا اقدام مخالف بسته ها عملي است و خواهيم ديد كه چه چيز در آنها وجود دارد و بسته به محتويات DROP يا ACCEPT را مشخص مىكنيم البته ممكن است فيلتر قبلي صورت گرفته باشند با اين وجود اين جدول محل تعيين فيلتر براي طراحي است . تقريباً تمام اهداف در اين زنجيره استفاده مىشوند . ما در مورد جدول فيلتر مهارت داريم و مىدانيم كه اين جدول محل درست فيلتر اصلي است .

فصل 4 : ماشين حالت
اين فصل در مورد ماشين حالت و جزئيات آن است . بعد از خواند فعل بايد بدانيد كه چگونه اين ماشين عمل خواهد كرد ما يك مجموعه مثال در مورد چگونگي عملكرد آن ارائه خواهيم كرد . همچنين يك مجموعه مثال از چگونگي بررسي اين ماشين ارائه شده است اينها روند كاربردي را توجيه مىكنند .
1-4 : مقدمه :
ماشين حالت يك بخش خاص در iptable است كه نبايد واقعاً ماشين حالت خوانده شود زيرا واقعاً يك ماشين رديابي اتصال است . با اين وجود بيشتر افراد آنرا با اين نام مىشناسند در تمام اين فصل از اين نام ها به صورت مترادف استفاده شده است . اين نبايد ابهام ايجاد مىكنند .رديابي اتصال در چهارچوب Netfilter صورت مىگيرد Firewall هايي كه اين را اجرا مىكنند Firewall حالتي نام دارند يك نوع از اين Firewall ايمن تر از Firewall غير حالتي است زير لبه ها در نوشتن قوانين سخت تر كمك مىكند .
در iptable بسته ها با اتصالات رديابي شد در 4 حالت ارتباط دارند . آنها عبارتند از: INVALIP , RELATED , ESTABLISHED , NEW . ما مرتبه را به تفصيل بررسي خواهيم كرد . با هماهنگي - STATE مىتوان نشان داد كه چه كسي جلسات جديد را آغاز مىكند .
بنابراين رديابي اتصال توسط چهارچوب خاص در kernel به نام conntrack صورت مىگيرد . conntrack مىتواند به صورت مدول يا بخش دروني خود kernel باردار شود در بيشتر موارد رديابي اتصال خاص نسبت به موتور پيش فرض نياز است . به اين علت قطعات خاص از آن وجود دارند كه پروتكل ICMP , UDP , TCP را كنترل مىكنند اين مدل ها اطلاعات خاص از بسته ها ارائه مىكنند به طوري كه بتوانند مسير جريان داده اي را دنبال كنند اين اطلاعات براي تعيين حالت جهان استفاده مىشوند به عنوان مثال جريان UDP با آدرس IP مقصد شناخته مي‌شود و آدرس IP منبع و port مقصد و منبع در آن نقش دارد .
در kernel قبلي احتمال خاموش و روشن كردن فرآيند قطعه زدايي وجود داشته است با اين وجود چون iptable و Netfilter معرفي مىشوند و رديابي اتصال صورت مىگيرد اين گزينه رها مي‌شود دليل آن اين است كه رديابي اتصال نمىتواند به درستي بدون قطعه زدايي بسته ها عمل كند و بنابراين قطعه زدايي با Conntrack تركيب مىشوند و اين به طور خودكار صورت مىگيرد . اين نمىتواند با خاموش كردن اتصال غيرفعال شود . تصميم زدايي هميشه در صورتي عملي است كه رديابي اتصال فعال شود.
تمام رديابي اتصال در زنجيره PREROUTING كنترل مي‌شود به جز بسته هاي داخلي كه در زنجيره OUT PUT كنترل مىشوند . اين بدان معناست كه iptable تمام محاسبات حالات را در زنجيره PREROUTING نشان مي‌دهد. اگر بسته اوليه را در يك جريان ارسال كنيم حالت در زنجيره ESTABLISHED - PREROUTING تغيير مىكند اگر اولين بسته فعال نشود حالت جديد در زنجيره PREROUTING قرار مىگيرد بنابراين تمام تغييرات و محاسبات در PREROUTING و يا زنجيره out put جدول nat صورت مىگيرد .
2-4 : ورودي Conntrack :
اكنون ورودي Conntrack و چگونگي خواندن آنرا در proc/…. بررسي خواهيم كرد . اين ليست ورودي جريان در پايگاه Conntrack است اگر يك مدل ip - conntrack فعال شود يك cat از proc/net…. به شرح زير است :
برنامه
اين مثال شامل تمام اطلاعاتي است كه مدل Conntrack نياز دارد تا براي نوع اتصال به كار برد ابتدا يك پروتكل به صورت tcp مطرح است . پس يك ارزش در كد گذاري اعشاري مطرح است بعد از آن بايد ديد كه چه مدت اين ورودي زنده است اين رقم در 117 ثانيه مشخص خواهد شد اين رقم پيش فرض بوده است . اكنون حالت واقعي در ورودي منظور است و بايد حالت SYN- SENY در نظر گرفته شود . ارزش دروني اتصال با ارزش مورد استفاده به خارجي iptable تفاوت دارد ارزش SYN- SENY مىگويد كه ما اتصال را در بسته TCP SYN در يك جهت قرار داده ايم سپس آدرس منبع IP ، آدرس مقصد IP ، port منبع و مقصد را بررسي خواهيم كرد . در اين جا كد كليد وار مفروض كرد كه برگشت ترافيك را در اين اتصال نشان مىدهد . مىتوان ديد كه از اين بسته ها چه چيز مفروض است اطلاعات آدرس مقصد و منبع IP را نشان مىدهند اين امر براي port منبع و مقصد مفروض است اين ارزش ها مرد توجه ما است .
ورودي ردياب اتصال مىتواند بر مجموعه متفاوت ارزشها باشد كه همگي در سر عنوان conntrack در فايل linux…. قرار گرفته اند . اين ارزشها به نوع پروتكل فرعي IP مورد استفاده بستگي دارد پروتكل ICMP , UDP ,TCP پيش فرض متفاوت ارزش مانند LINUX دارد در اين جا هر پروتكل را بررسي خواهيم كرد با اين وجود از آنها در اين فصل زياد استفاده نخواهيم كرد زيرا آنها در خارج از عوامل دروني conntrack نمىباشند همچنين بسته به چگونگي تغيير حالت ارزش پيش فرض زمان تا موفعي كه اين ارتباط تخريب شود تغيير خواهد كرد .
اخيراً يك patch جديد در patch - o- matic در دسترس است كه رديابي پنجره اي tcp نام دارد اين patch مىتواند تمام متغيرهاي Syctl را اضافه كند اين بدان معناست كه آنها در زمان حركت تغيير مىكنند اگر چه سيستم هنوز در حالت اجرايي است بنابراين اين خود كامپايل مجدد kernel را در زمان تغيير برنامه غير ضروري مىسازد . اينها از طريق فراخواني سيستم موجود در دايركتوري /proc/…. تغيير مىكند شما بايد به متغيير /proc/…. مراجعه كنيد.
وقتي يك اتصال يك ترافيك در دوجهت دارد ورودي conntrack مىتواند علامت [UNREPLED] را پاك كند و آنرا resetكند ورودي مىگويد كه اتصال شاهد ترافيك در دوجهت سند است و علامت [ASSURED] عوض مي‌شود علامت [ASSURED] مىگويد كه اين ارتباط تضمين شده است و اگر به ماكزيمم ارتباط برسيم پاك نمي‌شود بنابراين ارتباط به صورت [ASSURED] است و پاك نخواهد شد برخلاف اتصال به صورت [ASSURED] مقدار اتصالات جدول رديابي به متغيير نصب شده در تابع ip- sysctlدرkernel جديد بستگي دارد مقدار پيش فرض با اين ورودي بسته به مقدار حافظه تغيير خواهد كرد بر 128mb از RAM مىتوان به 8192 ورودي دست يافت در 256 MBاز RAM به 16376 ورودي دست مىيابيم شما مىتوانيد تنظيمات را از طريق /proc/…. بخوانيد و نصب كنند .
3-4 : حالات بخش كاربر
همانطور كه ديديد بسته ها مىتوانند حالات متفاوت در kernel داشته باشند و اين امر به نوع پروتكل مورد بحث بستگي دارد . با اين وجود در خارج از kernel فقط 4 حالت است كه توصيف شد اين حالات مىتواند به همه تطابق استفاده شوند كه بر اساس حالت رديابي فعلي معرفي شد. حالات معتبر عبارتند ازINWALIP , RELATEP , ESTABLISHED , NEW جدول زير هر يك را نشان مىدهد .
اين حالات مىتوانند با state - براي هماهنگي بر اساس روبط استفاده شوند اين خود ماشين حالت را قوي و كارآمد مىسازد ما بايد تمام port را بالاي lt 4 قرار دهيم تا ترافيك به شبكه داخلي برگردد با اين وجود ماشين حالت لازم نيست تا محل طولاني حاصل شود زيرا مىتوانيم Firewall را در ترافيك برگشتي قرار دهيم كه براي تمام ترافيك ها نياز نيست
4-4 : اتصالات TCP
در اين بخش و بخش بعدي بررسي حالات و چگونگي كنترل هر يك از 3 پروتكل ICMP , UDP , TCP آمده است همچنين خواهيم ديد كه چگونه اتصالات در هر پيش فرض كنترل مىشوند در صورتي كه به صورت اين 3 پروتكل طبقه بندي نشده باشند كار را با پروتكل TCP آغاز مىكنيم زيرا حالتي است و جزئيات جالب با توجه ب ماشين حالت در iptable دارد .
اين نوع رديابي اتصال مانند انواع كلي اتصال مفيد است در اينجا خواهيم ديد كه حالت جريان ورودي در طي مراحل متفاوت اتصال چگونه است همان طور كه ديديد رديابي واقعاً جريان اتصال TCP را از ديدگاه كاربر نشان نمىدهد . وقتي اين جا بستهSYN)) گزارش شد اتصال به صورت NEW است وقتي بسته به صورت SYN/ACK باشد يم اتصال بصورت ESTABLISHED مطرح است اگر اينها را در درجه دوم در نظر بگيريد دليل را خواهيد فهميد با اين اجراي خاص مىتوانيد به NEW و ESTABLISHED اجازه دهيد تا شبكه داخلي را رها كنند و فقط اتصال ESTABLISHED برمىگردد . برعكس اگر ماشين رديابي اتصال كل سيستم را به صورت NEW نشان دهد نمىتوان اتصال خارجي را در داخل متوقف كرد و NEW برمىگردد براي پيچيده كردن موضوع يك سري حالات دروني براي tcp مطرح مي‌شود و در قلمرو كاربر به كار ميرود آن منابع استانداردRFCV 93 به پروتكل كنترل انتقال صفحه 21-23 هستند اين ها را به شرح زير بررسي خواهيم كرد.
همانطور كه ديديد اين واقعاً از ديدگاه كارب رساده است با اين وجود با بررسي كلي ساختار از ديدگاه KERNEL روند كار مشكل مي‌شود اكنون يك نمونه خواهد آمد بايد ديد كه چگونه حالات در /proc/…. تغيير ميكند اولين حالت دريافت اولين بسته SYN در يك اتصال است.
برنامه
همانطور كه از ورودي فوق مي‌توان ديد ما يك حالت دقيق داريم كه در آن بسته SYN ارسال شده است ( علامت SYN - SENT تنظيم مي‌شود) و هيچ جوابي براي آن ارسال نشده است ( نمايش علامت UNREDLLED ) اين حالت دروني بعدي زماين حاصل مي‌شود كه يك بسته ديگر در ديگر جهت باشد.
برنامه
اكنون يك SYN/ACK برگشتي و دريافت خواهد شد وقتي اين بسته دريافت شد تغيير حالت روي مىدهد و اين زمان SYN- REC… مىگويد كه SYN اصلي به درستي ارائه شده است و بسته برگشتني SYN/ACK بغير از Firewall به درستي حركت كرده است به علاوه اين ورودي ردياب اتصال اكنون در دو جهت ترافيك دارد و بنابراين كاربرد داشته است اين روند صريح است ولي علامت [UNREPLED] ظاهر ميشود مرحله نهايي زماني حاصل ميشود كه ACK نهايي در بخش 3 مسيري باشد.
برنامه
در مثال آخر داراي ACK نهايي در بخش 3 مسيري هستيم و اتصال به حالت ESTABLISHED رسيده است ماداميكه مكانيزم دروني IPTABLE آگاه باشد بعد از چند بسته بيشتر اتصال دوباره [ASSURED] خواهد شد همانطور كه در مقدمه آمده است.
وقتي يك اتصال TCP بسته شد به روش زير صورت خواهد گرفت و حالت زير ار دارد همانطور كه ميتوان ديد اتصال هرگز بسته نميشود تا اين كه آخرين ACK نيز ارسال شود اين روند در توصيف چگونگي بسته شدن تحت شرايط طبيعي كاربرد ندارد يك اتصال مىتواند با ارسال يك RST (reset) بسته شود و اين در صورتي است كه انكار شده باشد در اين حالت يك اتصال بعد از زمان از پيش معلوم بسته خواهد شد .
وقتي اتصال TCP بسته شد وارد حالت TIME NAIT ميشود كه در پيش فرض 2 دقيقه است اين خود به گونه اي استفاده مي‌شود كه تمام بسته هايي كه از نظم خارج شده اند بتوانند در حالت تنظيم قرار گيرند حتي بعد از اين كه اتصال بسته شد اين يك نوع زمان با من است به طوري كه براي مسير ديگر حفظ شود و يا به پايانه اتصال برسد .
اگر اتصال توسط بسته RST به صورتreset درآيد حالت به close تبديل دستور اين بدان معنا است كه اتصال در هر پيش فرض 10 ثانيه قبل از بسته شدن فعال شود . بسته هاي RSTدر هر مفهوم تاييد مىشوند و اتصال را مستقيماً نقض مىكنند يك حالت ديگر نيز وجود دارد در اين جا ليست كامل حالات ممكن كه در جريان TCP ديده مىشوند و ارزش زماني آنها آمده است
اين ارزش ها به صورت مطلق مشخص نمىشوند آنها با تجديد kernelتغيير مىكنند و از طريق سيستم فايل proc عوض خواهند شد به متغير /proc/… تبديل مي‌شوند .
مقادير پيش فرض بايد عملاً تثبيت شوند اين مقادير در jiffites قرار گيــرنــد (11100 بخش از ثانيه ) و بنابراين 3000 به معناي 30 ثانيه است
نكته :توجه كنيد كه بخش كاربر در اين ماشين شاهد علامت TCPدر بسته TCP نيست اين روند مفيد نيست زيرا ممكن است بخواهيد بسته ها را در حالت NEW قرار دهيد تا از Firewall عبور كنيد ولي علامت NEW مشخص مي‌شوند و در بيشتر موارد به معناي بسته هاي SYNاست اين ويژگي با اجراي حالت فعلي ديده نمي‌شود حتي يك بسته بودن تنظيم بيت علامت ACK يك NEW است در صورتي كه هماهنگي بر بسته NEW ديده شود اين براي Firewalling استفاده مي‌شود ولي معمولاً در شبكه خانگي مفيد نيست در اين جا يك Firewallواحد وجود دارد براي رسيدن به اين رفتار از دستور State NEW packets ar / N . SYN bit set در ضميمه سوالات و مسائل رايج استفاده مي‌شود روش ديگر نصب توسعه tcp - window - tracking از patch - o- matic است كه يك Firewallرا در رديابي حالات بسته به نصب ويندوي tcp كمك مىكند .
5-4 : اتصالات UDP
اين اتصالات به تنهايي اتصالات حالتي نمى باشند بلكه بدون حالت هستند چندين دليل براي آن وجود داردو مهمترين انها اين است كه آنها داراي محل اتصال و يا محل بسته شدن نمىباشند . در بين آنها توالي ديده نمي‌شود دريافت 2 تا UDP DATA STAR در يك نظم خاص چيزي در مورد نظم و محل ارسال نمىگويد با اين وجود مىتوان حالات را بر اتصالات در kernel نصب كرد اين جا چگونگي رديابي اتصال و نمايش آن در conntrack آمده است.
همانطور كه مىتوان ديد اتصال دقيقاً مانند اتصال TCP رشد مىكند از ديدگاه كاربر اين روند عملي است از نظر دروني اطلاعات conntrack كلي متفاوت هستند ولي جزئيات يكي است اول ورودي را بعد از ارسال اولين بسته UDP بررسي خواهيم كرد :
برنامه
از اين حالت سرويس دهنده يك پاسخ به اولين بسته ارسال كرده است و اتصال اكنون به صورت ESTABLISHED است اين حالت و در رديابي اتصال ديده نمي‌شود همانطور كه مىتوان ديد اختلاف اصلي آن است كه علامت [UNREPLED] اكنون ديده نمبشودبه علاوه زمان پيش فرض به 180 ثانيه رسيده است ولي در اين مثال به 170 ثانيه در زمان 10 ثانيه اي رسيده است و 160 ثانيه خواهد شد يك نكته در اين جا ناديده گرفته شده است و مىتواند به بيت اشاره كند و [ASSURED] است براي اين علامت و تنظيم آن بر اتصال رديابي شد بايد يك مقدار ترافيك بر آن اتصال وجود داشته باشد .
برنامه
در اين حالت اتصال مورد تاييد است اتصال دقيقاً مانند مثال قبل است به جز آن براي علامت [ASSURED] اگر اين اتصال براي 18 ثانيه استفاده نشود زمان طولاني در ظاهر شدن دارد 180 ثانيه يك مقدار كم است ولي بايد براي بيشتر استفاده ها كافي باشد اين رقم براي مقدار كامل در هر بسته حاصل مي‌شود تا هماهنگي با يك ورودي ديده شود اين حالت را دروني گويند
6-4 : اتصالات ICMP
بسته هاي ICMP از جريان حالتي دور هستند زيرا فقط براي كنترل استفاده ميشوند و هرگز نبايد اتصال را برقرار كنند 4 نوع ICMP وجود دارد كه بسته هاي برگشتي توليد كىكند و اينها 2 حالت متفاوت دارند اين نيازهاي ICMP ميتواند حالتNEW و ESTABLISHED داشته باشند انواع ICMP عبارتند از تقاضا وپاسخ ECHO ، تقاضا وپاسخ it imestamp تقاضا وپاسخ INFORMATION و تقاضا وپاسخ آدرس . و بين آنها تقاضاي timestamp و Information دور هستند و ميتوانند حذف شوند با اين وجود پيام ECHO و چندين نصب مانند ميزبان pinging استفاده مي‌شود تقاضاي آدرس استفاده نمي‌شود ولي مىتواند در زمان خاص مفيد باشد براي بررسي چگونگي اين حالت به تصوير زير مراجعه كنيد .
همانطور كه ميتوان ديد ميزبان يك تقاضاي ECHO به هدف ارسال مىكند كه در واقع از سوي Firewall به صورت NEW در نظر گرفته ميشود اين هدف پاسخ به تقاضاي ECHO است كه ESTABLISHED خواهد بود وقتي اولين تقاضا ECHO د

مطالب مشابه ...










شناخت كاربردي Iptable( « پروژه آزمايشگاه مدار منطقي »)

۲۴-۸-۱۳۹۰ ۱۲:۲۵ عصر
جستجو یافتن همه ارسال های کاربر اهدا امتیازاهدای امتیاز به کاربر پاسخ پاسخ با نقل قول
 سپاس شده توسط senior engineer

برای بروز رسانی تاپیک کلیک کنید


مطالب مشابه ...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  مقاله جامع در مورد شناخت انواع سرطان و راههای پیشگیری و درمان سکوت تلخ 601 1,042 ۳۱-۱-۱۳۹۳ ۰۱:۴۴ عصر
آخرین ارسال: سکوت تلخ
  پروژه ساخت روبو حشره senior engineer 0 492 ۱۰-۱۰-۱۳۹۱ ۰۹:۳۱ عصر
آخرین ارسال: senior engineer
  پروژه ساخت مدار اینورتر 12 ولت به 230 ولت senior engineer 0 1,562 ۱۰-۱۰-۱۳۹۱ ۰۹:۲۱ عصر
آخرین ارسال: senior engineer
  پروژه ساخت مدار آمپلی فایر 300 وات senior engineer 0 2,072 ۱۰-۱۰-۱۳۹۱ ۰۹:۱۹ عصر
آخرین ارسال: senior engineer
  پروژه ساخت مدار آمپلی فایر کلاس a , b senior engineer 0 799 ۱۰-۱۰-۱۳۹۱ ۰۹:۱۷ عصر
آخرین ارسال: senior engineer
  پروژه شبيه سازي و بهينه سازی مصرف انرژی واحد بازيابي گوگرد | مهندسی شیمی senior engineer 0 414 ۲۷-۹-۱۳۹۱ ۰۹:۴۱ صبح
آخرین ارسال: senior engineer
  پروژه اسمز آب | مهندسی شیمی senior engineer 0 195 ۲۷-۹-۱۳۹۱ ۰۹:۱۴ صبح
آخرین ارسال: senior engineer
  پروژه نانوتکنولوژی در انتقال حرارت | مهندسی شیمی senior engineer 0 470 ۲۶-۹-۱۳۹۱ ۱۰:۴۵ عصر
آخرین ارسال: senior engineer
  پروژه HAZOP STUDY | مهندسی طراحی فرآیند های صنایع نفت senior engineer 0 1,981 ۲۶-۹-۱۳۹۱ ۱۰:۳۰ عصر
آخرین ارسال: senior engineer
  دانلود پروژه کشاورزی و منابع طبیعی | پروژه هوا و اقلیم senior engineer 0 666 ۲۶-۹-۱۳۹۱ ۱۰:۰۷ عصر
آخرین ارسال: senior engineer

پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان