در مورد محقق
من داراي كامپيوترهاي فراوان هستم . من يك كامپيوتر LAN دارم و تمام ماشين ها بر اينترنت وصل هستند ولي بايد LAN ايمن حفظ شود . iptables جديد يك نسخه ارتقا يافته از ipchain مىتوانيد يك شبكه ايمن بسازيد و اين امر با حذف بسته هاي آتي عملي است . با اين وجود FTP انفعالي و يا DGE در TRC مسائلي به دنبال دارند . مسائل دندانه اي كردن در كد iptables در سطح آغازين حل نشده اند . امروزه هر كس را كه از آنها استفاده مىكند به سوي نسخه توليد كامل راهنمايي مىكنم و ipfwadm را ارتقا دارم . اين كه فعلي مىتواند در صورت نياز استفاده شود .

چگونگي خواندن :
اين سند به درستي نوشته شده است . بنابراين مىتوانيد به نكات جالب iptables پي ببريد . اين به معناي اطلاعات خاصي در مورد اشكالات ايمني خاص در iptables يا Netfilter نيست اگر اشكالات خاص و رفتارهايي را در iptables و هر زير مولف يافتيد با ليت پست Netfilter تماس بگيريد و سپس خواهيد توانست اشكالات واقعي را بشناسيد و حل كنيد اشكالات ايمني واقعي در iptable و Netfilter فراوان هستند و يك يا دو اشكال در آن واحد گزارش شده است . آنها در صفوف اصلي Netfilter آمده اند بايد اطلاعات را در مورد موضوع ارائه كنند .

مىتوان گفت مجموعه قوانين موجود در اين سند پيرامون اشكالات واخل Netfilter نمىباشند . هدف اصلي توصيف چگونگي نصب قوانين در يك حالت ساده است به طوري كه بتوان مسائل داخل كرد به عنوان مثال اين سند نشان نمىدهد كه چگونه HTTP PORT به دلايل مفاد بسته مي‌شود آنطور كه Apache در نسخه ۱۲-۲-۱ گزارش كرد. اين سند براي هر كس قابل استفاده است و مىتواند نشان دهد كه چگونه با iptable مىتوان كار را آغاز كرد ولي در آن واحد يك روند تكامل را نيز پيچيده است . اين جا اهداف و هماهنگي ها در patch – matic بيان نمىشوند . ارتقا نياز است . اگر اطلاعات بيشتر در مورد اين ارتقا لازم داريد بايد patch – matic و ديگر اسناد را در صفوف اصلي Netfilter مطالعه كنيد .

شرط لازم :
اين سند به معلومات در مورد linux linux ، دست نوشته لايه اي ، و چگونگي كامپايل كردن kernel و بخش دروني آن نياز دارد .
من سعي كرده ام تا تمام شرايط را قبل از توصيف اين سند بررسي كنم ولي نمىتوان تمام اطلاعات قبلي را مطرح كرد .
نهادهاي مورد استفاده در اين سند : اين نهادهاي در سند زمان دستورات ، فايل و ديگر اطلاعات خاص استفاده مىشوند .

– گلچين كد و خروجي دستور اين چنين است و تمام خروجي ها در فونت پهناي ثابت و دستور مكتوب كاربر به صورت bold هستند:
– تمام دستورات و نام هاي برنامه در اين سند در حالت bold هستند:
– تمام item سيستم مانند سخت افزار و مولف دروني kernel و item سيستم انژاي مانند روابط حلقه اي كه در حالت italic آمده اند

– خروجي كامپيوتر به شكل this way در متن ظاهر مىشوند .
– نام فايل و مسير در سيستم فايل به شكل ….

فصل ۱ : مقدمه
۱-۱ : چرا اين سند نوشته شد :
من فضاي خالي بزرگي را در HOW TOS يافتم و در آنجا اطلاعات در مورد iptable و نقش Netfilter در linux 1/4x kernel جديد كافي نبود . در بين آنها مىخواهم به سوالاتي پاسخ دهم كه در مورد احتمال جديد مانند مطابق حالت بوده اند . بخش اعظم آن به صورت فايل rc…. است كه در دست نوشته etc…. آمده است . اين فايل اصولاً بر اساس ارتقاي idowt. است .

يك دست نوشته كوچك در مورد اجراي برنامه و راه اندازي سيستم به صورت rc…. در دسترس است .
۲-۱ : چگونگي نوشتن :

من با مارك باكر و ديگران در سيستم Netfilter مشورت كردم . بسياري از آنها در اين اثر مستند به من كمك نموده اند و در اين جا سعي كرده ام از سايت Fr.zentux.Net خود استفاده كنم . اين سند فرآيند نصب را مرحله به مرحله نشان مىدهد و در مورد طرح iptables است . من مثالهاي فايل re.Firewall و مثالهاي يادگيري استفاده از iptables را نيز ارائه كرده ام در اين جا بايد تابع زنجيره هاي اصولي باشيد و آنها را در كنار هم قرار دهيد . به اين ترتيب سند مىتواند آماده شود و روش منطقي تر را نشان دهد . هر زمان كه اين درك مشكل باشد به اين سند مراجعه كنيد .
۳-۱ : اصطلاحات مورد استفاده در سند :

اين سند داراي اصطلاحاتي است كه به تشريح نياز دارند قبل از اينكه آنرا مطالعه كنيد . در اين بخش توصيف آنها و چگونگي انتخاب آنها در سند آمده است .
ترجمه آدرس شبكه مقصد – 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 نشان مىدهد و همه در خارج آن .
قلمرو كاربر – به فضاي كاربر مراجعه كنيد .

فصل ۲ : آماده سازي : اين فصل توصيف درك نقش Netfilter و iptable در linux است . در اين جا بايد كار با آزمايش آغاز شود و نصب عملي شود . با زمان كافي مىتوانيد آنرا دقيقاً اجرا كنيد .
۱-۲ : كجا به iptable دست يابيم :

بسته فضاي كاربر iptables مىتواند از آدرس زير down load شود :

http……….
اين بسته iptable تسهيلات خاص فضاي kernel را نشان مىدهد كه در طي توليد سيستم طراحي شده اند مراحل لازم به تفصيل بررسي خواهند شد .
۲-۲ :نصب 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 يك هماهنگي ۳ بسته را در هر دقيقه نشان مي‌دهد . اين مدل مىتواند براي جلوگيري از علامت انكار خدماتي استفاده شود.

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 به ۲/۴ ارائه كنيد . اين جا kernel 2/6 استفاده خواهد شد .

همان طور كه مىتوان ديد يك سري گزينه معرفي شده است . در اين جا بايد ديد چه نوع رفتارهاي مازادي از مدلها حاصل مىشوند اينها تنها گزينه ها در linux 2,4,9, kernel هستند . اگر بخواهيد به اين گزينه ها توجه كنيد بايد تابع patch – o- matic در Netfilter را در نظر داشته باشيد و به گزينه ها در kernel توجه كنيد . تثبيت POM نيز مىتواند در kernel عملي شود و بايد بتوان به kernel دست يافت . اين توابع بايد در آينده اضافه شوند ولي هنوز ساخته نشده اند . اين خود دلايل متفاوت دارد مانند مسير غير ثابت به linux torvalds كه نمىتواند حفظ شود و يا مسير به kernel جريان اصلي كه هنوز آزمايشي است .

شما به گزينه هاي زير به صورت كامپايل در kernel نياز داريد تا دست نوشته rc…. را اجرا كنيد . اگر به گزينه هايي نياز داريد كه در ديگر دست نوشته ها نياز هستند به بخش دست نوشته زير مراجعه كنيد .
برنامه

در ميزان حداقل بايد از دست نوشته rc.Firewall.txt استفاده شود . در ديگر مثالها نشان مىدهم كه چه نوع شرطي در اين بخش نياز است . اكنون بايد دست نوشته اصلي مورد مطالعه در نظر باشد .
۳-۲ : نصب محل كاربر :

اول از همه بايد ديد كه چگونه بسته هاي iptable كامپايل مىشوند بايد ديد كه در بيشتر سيستم ها و كامپايل iptable بايد سيستم و كامپايل kernel صورت گيــــرد . تــــوزيع خاص نيز در بسته iptable عملي است و يكي از آنها RED HAT است . با اين وجود RED HAT در هر پيش فرضي غير فعال است . اكنون بايد ديد كه چگونه اين توزيعات در اين فصل بررسي خواهند شد.

۱-۳-۲ : كامپايل برنامه هاي قلمرو كاربر :
نخست آنكه بايد بسته هاي 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 در منبع مراجعه كنيد كه حاوي اطلاعات خارجي در مورد موضوع نصب است .
۲-۳-۲ : نصب بر 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 اشاره دارند . اولين مرحله كه در هر پيش فرض ۶ است اولين دست نشته را نشان مىدهد . با تغيير اين حالت به اين k مىگوييم كه خدمات را kill كنيد و يا اين كه آنرا در صورتي كه قبلاً اجرا نشده است اجرا نكنيد . اكنون اين خدمات در آينده اجرا نخواهد شد .

با اين وجود براي توقف خدمات از حالت اجرايي بايد دستور ديگر را اجرا كنيم. اين يك دستور خدماتي است كه مىتواند براي اجراي فعلي استفاده شود اين دستور براي توقف خدمات ipchain ارائه مي‌شود.
دستور

در نهايت براي راه اندازي خدمات iptable اقدام خواهد شد . ابتدا بايد بدانيم كدام سطح اجرايي را مىخواهيم اجرا كنيم اين خود در سطح ۲، ۳، ۵ قرار مىگيرد اين سطوح اجرايي براي موارد زير استفاده مىشوند .

– ۲ Multiuser بدون NFS و يا ۳ در صورتي كه شبكه وجود نداشته باشند .
– ۳ مد چند كاربر كامل يعني سطح اجرايي طبيعي
– xll 5 اين در صورتي استفاده مي‌شود كه به طور خودكار در x windows باشيد.
براي توليد iptable در اين سطوح اجرايي به دستور زير نياز است :

برنامه
دستورات فوق به عبارت ديگر اجراي iptable را در سطح ۲، ۳، ۵ باعث مىشوند . اگر مايل هستيد خدمات iptable در ديگر سطوح اجرا شوند بايد كه دستور صادر شود . با اين وجود هيچ يك از سطوح اجرايي استفاده نمىشوند و بنابراين نبايد آنرا براي سطوح اجرايي فعال كرد . سطح ۱ براي حالت كاربر واحد است يعني وقتي كه يك جعبه نثبيت مي‌شود سطح ۴ بايد غير استفاده باشد و سطح ۶ براي shut down كامپيوتر است. براي فعال كردن خدمات iptable دستور زير اجرا مي‌شود.
دستور

هيچ قانوني در دست نوشته iptable وجود ندارد . براي اضافه كردن قوانين به يك جعبه Red Hot 7/1 دو روش وجود دارد .نخست آنكه بايد دست نوشته etc/rc… را ويرايش كنيد . اين اثر غير مطلوب حذف تمام قوانين را دارد در صورتي كه بسته iptable يا RPM ارتقا يافته باشد . اين روش به صورت ۱۰ ad كردن مجموعه قوانين و ذخيره با دستور iptable- SNC است پس بايد ۱۰ 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 است.
برنامه
بعد از اين كه كار كامل شد با ارتقاي بسته از منبع روبرو شده ايد و دستوالعمل نصب منبع دنبال خواهد شد هيچ يك از بانيري هاي قديمي ، كتابخانه ها و يا فايل شمول نبايد در اهداف باشند .

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

۲-۳ : جدول تركيبي
اين جدول همانطور كه گفته شد براي ترگيب بسته ها استفاده مي‌شود . به عبارت ديگر به آساني از تطابق تركيبي استفاده مي‌شود كه مىتواند تغيير فيلد TOSباشد .

نكته :شما نبايد از اين جدول براي فيلتر استفاده كنيد و يا هر DNAT , SNAT ويا Masquerading را در اين جدول استفاده نماييد .
اهدافي كه در جدول تركيبي معتبر عبارتند از MARK – TTL – TOS هرف TOSبراي تنظيم و تغيير فيلد نوع خدماتي در بسته استفاده مي‌شود . اين مىتواند براي نصب خواستني ها بر شبكه در مورد چگونگي مسير يابي بسته و غير استفاده شود . توجه كنيد كه اين كامل نشده است و واقعاً بر اينترنت اجرا نمي‌شود و بيشتر ردياب ها به ارزش در فيلد توجه ندارند و گاهي اوقات آنها مىتوانند عملكرد را ارائه كنند در اين جا بسته ها به اينترنت مىروند مگر اين كه بخواهيد تصميم را بر آن يا iprute 2 اراده كنيد .

هدف TTL براي تغيير TTL (زمان عصر ) در بسته استفاده مي‌شود ما مىتوانيم بگوييم كه بسته ها داراي يك TTL خاص هستند . يك دليل براي آن اين است كه نمي‌خواهيم خود را از ارائه دهنده خدمات اينترنت در كنيم . بعضي از ارائه دهندگان دوست ندارند كه كاربر ما چند كامپيوتر را به يك اتصال واحدتر راه اندازي كنند و ارائه دهندگان به دنبال توليد ارزش هاي متفاوت TTL توسط ميزبان هستند و اين خود نشانه اتصال كامپيوترها به يك ارتباط واحد است.
هدف MARK براي نصب ارزش مارك خاص در بسته استفاده مي‌شود . اين مارك ها مي‌توانند توسط برنامه iproute 2 براي مسيرهاي متفاوت بر بسته شناخته شوند و اين خود به علامت بستگي دارد ما مىتوانيم حد پهناي باند و رديف بندي طبقاتي را بر اساس اين علائم داشته باشيم.
۳-۳ : جدول nat

اين جدول بايد فقط براي NAT (ترجمه آدرس شبكه ) به بسته هاي متفاوت استفاده شود . به عبارت ديگر اين جدول براي ترجمه فيلد منبع بسته و يا فيلد مقصد به كار مىرود توجه كنيد كه همان طور كه گفته شد فقط بسته اول در جريان وارد اين زنجيره مي‌شود بعد از اين مابقي بسته ها به طور خودكار يك اقدام مانن بسته اول دارند . اهداف واقعي كه با اين امور انجام مىشوند عبارتند از : MASQUERADE – SNAT – DNAT
هدف DNAT عمدتاً در مواردي استفاده مي‌شود كه يك IP عمومي وجود دارد و ميخواهيم تا دسترسي را بهFIREWALL و ديگر ميزبانها آسان كنيد (مانند DMZ ) به عبارت ديگر ما آدرس مقصد را در بسته تغيير مىدهيم . آنرا به ميزبان برمي‌گردانيم

SNAT براي تغيير آدرس منبع بسته ها استفاده مي‌شود . در بيشتر موارد شبكه هاي داخلي يا DMZ پنهان مىشوند . يك مثال در واقع Firewall معلومات در خارج از آدرس IP است و بايد شماره IP شبكه داخلي با شماره Firewall عوض شود با اين هدف Firewall به طور خودكار بسته ها را SNAT و DE-SNAT مىكند و بنابراين مىتوان اتصالات را از LAN به اينترنت برقرار كرد اثر شبكه شما از ۱۹۲/۱۶۸/…/netmask استفاده مىكند بسته ها هرگز از اينترنت برنمىگردند زيرا LAN اين شبكه ها را به صورت خصوصي و يا براي استفاده در LAN جداگانه تنظيم كرده است .
هدف MASRUERADE مانند SNAT استفاده مي‌شود ولي هدف مربوطه كلي جاي بيشتر در كامپيوتر نياز دارد دليل آن اين است كه هر زبان كه هدف MASRUERADE با بسته در برخورد است به طور خودكار آدرس IP را براي استفاده كنترل مىكند آنرا مانند هدف SNAT استفاده خواهد كرد . اين امر با آدرس واحد IP عملي است . اين هدف كار درست با آدرس Dynamic DHCP IP را كه ISP آنرا براي اتصال ppp ، pppoe يا SLIP به اينترنت ارائه كرده است راه اندازي مىكند .
۴-۳ : جدول فيلتر :
اين جدول براي فيلتر بسته ها استفاده مي‌شود . ما مىتوانيم بسته ها را هماهنگ سازيم و آن ها را هر گونه كه مىخواهيم فيلتر كنيم . اينجا اقدام مخالف بسته ها عملي است و خواهيم ديد كه چه چيز در آنها وجود دارد و بسته به محتويات DROP يا ACCEPT را مشخص مىكنيم البته ممكن است فيلتر قبلي صورت گرفته باشند با اين وجود اين جدول محل تعيين فيلتر براي طراحي است . تقريباً تمام اهداف در اين زنجيره استفاده مىشوند . ما در مورد جدول فيلتر مهارت داريم و مىدانيم كه اين جدول محل درست فيلتر اصلي است .

فصل ۴ : ماشين حالت
اين فصل در مورد ماشين حالت و جزئيات آن است . بعد از خواند فعل بايد بدانيد كه چگونه اين ماشين عمل خواهد كرد ما يك مجموعه مثال در مورد چگونگي عملكرد آن ارائه خواهيم كرد . همچنين يك مجموعه مثال از چگونگي بررسي اين ماشين ارائه شده است اينها روند كاربردي را توجيه مىكنند .
۱-۴ : مقدمه :
ماشين حالت يك بخش خاص در iptable است كه نبايد واقعاً ماشين حالت خوانده شود زيرا واقعاً يك ماشين رديابي اتصال است . با اين وجود بيشتر افراد آنرا با اين نام مىشناسند در تمام اين فصل از اين نام ها به صورت مترادف استفاده شده است . اين نبايد ابهام ايجاد مىكنند .رديابي اتصال در چهارچوب Netfilter صورت مىگيرد Firewall هايي كه اين را اجرا مىكنند Firewall حالتي نام دارند يك نوع از اين Firewall ايمن تر از Firewall غير حالتي است زير لبه ها در نوشتن قوانين سخت تر كمك مىكند .

در iptable بسته ها با اتصالات رديابي شد در ۴ حالت ارتباط دارند . آنها عبارتند از: INVALIP , RELATED , ESTABLISHED , NEW . ما مرتبه را به تفصيل بررسي خواهيم كرد . با هماهنگي – STATE مىتوان نشان داد كه چه كسي جلسات جديد را آغاز مىكند .

بنابراين رديابي اتصال توسط چهارچوب خاص در kernel به نام conntrack صورت مىگيرد . conntrack مىتواند به صورت مدول يا بخش دروني خود kernel باردار شود در بيشتر موارد رديابي اتصال خاص نسبت به موتور پيش فرض نياز است . به اين علت قطعات خاص از آن وجود دارند كه پروتكل ICMP , UDP , TCP را كنترل مىكنند اين مدل ها اطلاعات خاص از بسته ها ارائه مىكنند به طوري كه بتوانند مسير جريان داده اي را دنبال كنند اين اطلاعات براي تعيين حالت جهان استفاده مىشوند به عنوان مثال جريان UDP با آدرس IP مقصد شناخته مي‌شود و آدرس IP منبع و port مقصد و منبع در آن نقش دارد .