05-02-2011، 12:10 AM
برای شروع وارد مباحث تکنیکی IPTables نمیشیم چون عموما در کلاس هایی که برگزار کردم و در لاگ هایی که بودم عمومیت کاربران از نرم افزار IPTables می ترسن و احساس می کنن که هیچ وقت نمی تونن ازش سر دربیارن و اگه کوچکترین تنظیماتی روش انجام بدن کل اینترنتشون قطع میشه O: درصورتی که IPTables به سادگی و با قدرت زیاد همه چیز رو در اختیار شما گذاشته...
ورژن های مختلفی از IPTables وجود داره برای مثال:
IPTables این ورژن مختص IPv4 هستش.
IP6Tables همونطور که از اسمش پیداست برای IPv6 طراحی شده.
arptables برای مدیریت بسته های ARP
ebtables برای مدریت فریم های Ethernet بوجود آمده.
دستورات IPTables بسته به نوع کاربردشون در جداولی (Table) ذخیره می شن که این جداول خود شامل زنجیره ای ( Chain ) از فرامین هستند.
یکی از مهمترین این جداول جدول Filtering هستش که وظیفه اون سیاست گذاری و دادن مجوز برای ورود و خروج بسته های TCP/IP به سیستم است. این جدول شامل سه زنجیر INPUT برای ترافیک ورودی به سیستم ، OUTPUT برای ترافیک خروجی از سیستم و FORWARD برای ترافیک فوروارد شده از سیستم است.
از دیگر جداول IPTABLES می شه به موارد زیذ اشاره کرد:
....... table
nat table
mangling table
که بصورت مختصر جدول ....... رو معرفی کردیم و موارد دیگه رو در زمان شروع مباحث اون جدول معرفی می کنیم.
به عنوان اولین گام مایل هستیم که اجازه ندیم به هیچ کامپیوتری که سرور ما رو PING کنه یعنی اصطلاحا می خوایم PING رو ببندیم...
برای این کار باید به ترافیک پروتکل ICMP اجازه ورود ندهیم... برای این منظور باید به صورت زیر عمل کنیم:
با مجوز کاربر ROOT وارد سیستم شوید.
فرمان زیر رو اجرا کنید:
iptables -A INPUT -p ICMP -j DROP
فرمان زیر میگه که در انتهای ( بخاطر استفاده از سویچ A یعنی Append ) زنجیر INPUT ( یعنی ترافیک ورودی) پروتکل ICMP را DROP کن.
نوع پروتکل رو با سویچ p- مشخص می کنیم که در جلوی این سویچ می تونیم موارد TCP ، UDP ، ICMP و all رو بنویسیم.
برای مشخص کردن نحوه برخورد با ترافیک مورد نظر از سویچ j- استفاده می کنیم به معنی jump به موارد DROP ، LOG ، ACCEPT ، REJECT هستش. در اینجا تفاوتی که بین DROP و REJECT هست و اون هم این هستش که در DROP برای کاربر پیامی مبنی بر حذف بسته اش ارصال نمی شه ولی در REJECT به فرستنده پیام یک بسته عدم قبول ترافیک ارسال میشه.
در پست های بعدی در این مورد بیشتر صحبت خواهیم کرد.
ورژن های مختلفی از IPTables وجود داره برای مثال:
IPTables این ورژن مختص IPv4 هستش.
IP6Tables همونطور که از اسمش پیداست برای IPv6 طراحی شده.
arptables برای مدیریت بسته های ARP
ebtables برای مدریت فریم های Ethernet بوجود آمده.
دستورات IPTables بسته به نوع کاربردشون در جداولی (Table) ذخیره می شن که این جداول خود شامل زنجیره ای ( Chain ) از فرامین هستند.
یکی از مهمترین این جداول جدول Filtering هستش که وظیفه اون سیاست گذاری و دادن مجوز برای ورود و خروج بسته های TCP/IP به سیستم است. این جدول شامل سه زنجیر INPUT برای ترافیک ورودی به سیستم ، OUTPUT برای ترافیک خروجی از سیستم و FORWARD برای ترافیک فوروارد شده از سیستم است.
از دیگر جداول IPTABLES می شه به موارد زیذ اشاره کرد:
....... table
nat table
mangling table
که بصورت مختصر جدول ....... رو معرفی کردیم و موارد دیگه رو در زمان شروع مباحث اون جدول معرفی می کنیم.
به عنوان اولین گام مایل هستیم که اجازه ندیم به هیچ کامپیوتری که سرور ما رو PING کنه یعنی اصطلاحا می خوایم PING رو ببندیم...
برای این کار باید به ترافیک پروتکل ICMP اجازه ورود ندهیم... برای این منظور باید به صورت زیر عمل کنیم:
با مجوز کاربر ROOT وارد سیستم شوید.
فرمان زیر رو اجرا کنید:
iptables -A INPUT -p ICMP -j DROP
فرمان زیر میگه که در انتهای ( بخاطر استفاده از سویچ A یعنی Append ) زنجیر INPUT ( یعنی ترافیک ورودی) پروتکل ICMP را DROP کن.
نوع پروتکل رو با سویچ p- مشخص می کنیم که در جلوی این سویچ می تونیم موارد TCP ، UDP ، ICMP و all رو بنویسیم.
برای مشخص کردن نحوه برخورد با ترافیک مورد نظر از سویچ j- استفاده می کنیم به معنی jump به موارد DROP ، LOG ، ACCEPT ، REJECT هستش. در اینجا تفاوتی که بین DROP و REJECT هست و اون هم این هستش که در DROP برای کاربر پیامی مبنی بر حذف بسته اش ارصال نمی شه ولی در REJECT به فرستنده پیام یک بسته عدم قبول ترافیک ارسال میشه.
در پست های بعدی در این مورد بیشتر صحبت خواهیم کرد.