تارا فایل

تحقیقی در مورد آشنایی با ابزارIPTables


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

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

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

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

مرحله
جدول
زنجیر
توضیحات
1

رسانه اتصال شبکه به اینترنت (مثلاً سیم)
2

ورود به کارت واسط شبکه (مثلاً eth0)
3
mangle
PREROUTING
اعمال تعریف شده در جدول mangle (تغییر TOS و غیره)
4
nat
PREROUTING
عموماً برای DNAT مورد استفاده قرار می گیرد
5

مسیریابی بسته: اینکه بسته به مقصد ماشین محلی ارسال شده یا باید از آن عبور کند؟
6
mangle
INPUT

7
filter
INPUT
تصفیه بسته هایی که به ماشین محلی ارسال شده اند.
8

برنامه کاربردی یا پروسه ماشین محلی (مثلاً برنامه کارگزار یا کارفرمای اجرا شده در این ماشین)

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

مرحله
جدول
زنجیر
توضیحات
1

برنامه کاربردی یا پروسه ماشین محلی (مثلاً برنامه کارگزار یا کارفرمای اجراشده در این ماشین)
2

تصمیم گیری درباره ی مسیردهی بسته: از چه آدرسی استفاده شود؟ از چه کارت واسط شبکه ای عبور داده شود؟…
3
mangle
OUTPUT

4
nat
OUTPUT
ترجمه ی آدرس بسته هایی که در ماشین محلی تولید می شوند
5
filter
OUTPUT
تصفیه ی بسته هایی که در ماشین محلی تولید می شوند
6
mangle

7
nat

اعمال ترجمه آدرس از نوع SNAT یا MASQUERADE
8

خروج از کارت واسط کاربر شبکه
9

رسانه اتصال شبکه به اینترنت (مثلاً سیم)
3. بسته هایی که از حفاظ عبور می کنند
قبل از اینکه چنین بسته ای بتواند از کارت واسط شبکه ورودی به کارت واسط شبکه خروجی منتقل شود، از زنجیرهای زیر می گذرد و قوانین جداول زیر روی آنها قابل اعمال است:
مرحله
جدول
زنجیر
توضیحات
1

رسانه اتصال شبکه به اینترنت (مثلاً سیم)
2

ورود به کارت واسط شبکه(مثلاً eth0)
3
mangle
PREROUTING
اعمال تعریف شده در جدول mangle (تغییر TOS و غیره)
4
nat
PREROUTING
عموماً برای DNAT مورد استفاده قرار می گیرد
5

مسیریابی بسته : اینکه بسته به مقصد ماشین محلی ارسال شده یا باید از آن عبور کند؟
6
mangle
FORWARD

7
filter
FORWARD
تصفیه بسته هایی که از حفاظ عبور می کنند
8
mangle
POSTROUTING

9
nat
POSTROUTING
اعمال ترجمه آدرس از نوع SNAT یا MASQUERADE
10

خروج از کارت واسط کاربر شبکه
11

رسانه اتصال شبکه به اینترنت (مثلاً سیم)

قوانین IPtables
قوانین ابزار اصلی کار با هر حفاظی را تشکیل می دهند. پیچیده ترین و پرهزینه ترین سیاست های امنیتی یک سازمان در نهایت برای تصفیه بسته ها به قوانین نه چندان پیچیده حفاظ تبدیل می شوند. فرمت کلی دستورات IPtables را می توان به صورت زیر بیان کرد:
iptables [-t table] Packet-Criteria-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، چهار حالت مختلف برای ارتباط های15 ایجاد شده در نظر گرفته می شود که با استفاده از آنها می توان بسته های متعلق به آنها را تصفیه کرد. حالت های مختلف عبارتند از:
o New: مشخصه ارتباط هایی است که تنها یک بسته در یک جهت ارسال کرده اند. در واقع پس از دیدن اولین بسته از هر ارتباط (بسته ای که پرچم16 SYN از سرآیند TCP آنها روشن باشد.)، وضعیت آن به New تغییر می کند.
o Established: مشخصه ارتباط هایی است که بسته در هر دو جهت از طریق آنها ارسال شده است. پس از دیدن اولین پاسخ به بسته ارسال شده (بسته ای که پرچم ACK از سرآیند TCP آنها روشن باشد)، مشخصه ارتباط ایجاد شده از New به Established تغییر می کند.
o Related: مشخصه ارتباط هایی است که بسته جدیدی ملاقات می کنند، با این تفاوت که بسته ایجاد شده به: ارتباط برقرار شده قبلی مرتبط است. یک مثال شناخته شده از این نوع ارتباطات، ارتباط داده ای17 در قرارداد FTP می باشد که به ارتباط کنترلی18 از آن مربوط می شود.

هدف ها(targets)
* همانگونه که ذکر شد، target بیان کننده ی عملی است که در صورت صدق کردن بسته مورد نظر در یکی از قوانین، روی آن انجام می شود. برای مشخص کردن هدف ها از گزینه ی -j استفاده می شود. بعضی از هدف های پرکاربرد IPtables عبارتند از:
LOG: برای ثبت یک رویداد در رویدادنامه IPtables بکار میرود (گاهی فقط می خواهیم ترافیک گذرنده از حفاظ را ثبت کنیم)
REJECT: یک پیغام خطا به عنوان پاسخ به مبداء بسته فرستاده می شود و سپس دور انداخته می شود.
DROP: بسته دور انداخته می شود. بدون اینکه پاسخی برای فرستنده ارسال شود.
ACCEPT: بسته پذیرفته می شود.
SNAT: آدرس مبداء بسته به آدرس جدیدی ترجمه می شود.
DNAT: آدرس مقصد به آدرس جدیدی ترجمه می شود.
MASQUERADE: آدرس مبداء جدید محاسبه شده و جایگزین آدرس فعلی می شود.
REDIRECT: برای برگرداندن بسته ها به ماشین محلی (که حفاظ روی آن نصب شده) مورد استفاده قرار می گیرد. از این امکان IPtables زمانی استفاده می شود که بخواهیم سرویس های نصب شده در ماشین حفاظ از دید کاربران شفاف19 باشد. فرض کنید می خواهیم در کنار 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
در غیر این صورت باید سورس یا بسته نرم افزاری قابل نصب20 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
نبشته 21 راه اندازی
برای اینکه دستورات جاری IPtables در سیستم مانا22 شوند و در هر بار راه اندازی سیستم بصورت خودکار در داخل حافظه بار شوند، باید از یک نبشته راه اندازی استفاده کرد. این نبشته در مسیر /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 این است که از پروتکل PPP23 پشتیبانی نمی کند. در نتیجه نمی توان از آن برای پیکربندی حفاظ سیستم هایی که با خط تلفن به اینترنت متصل می شوند، استفاده کرد.
gShield کامل ترین ابزار پیکربندی گرافیکی IPtables به نظر می رسد. چرا که بصورت کامل مستندسازی شده و فایل های پیکربندی آن قابل فهم است. علاوه بر این از امکانات ترجمه آدرس بسته ها و پیکربندی استاتیک (اتصال از طریق واسط ppp0) و پویای (اتصال از طریق واسط eth0) حفاظ برخوردار است.
با این وجود به نظر می رسد هیچ یک از این ابزارها نمی توانند به کلی جایگزین امکانات فراوانی شوند که از طریق خط فرمان IPtables در اختیار کاربران قرار می گیرد. ضمن اینکه به هیچ وجه شما را از درک عمیق ساختار داخلی (دستورات، جدول ها، زنجیرها، …) IPtables بی نیاز نمی کنند.
جهت مطالعه بیشتر
سایت netfilter به نوعی سایت رسمی IPtables محسوب می شود که آخرین نسخه های این حفاظ به همراه اخبار آخرین تغییرات، مستندات آموزشی و راهنمای کاربر مربوط به آن را در برگرفته و به عنوان یکی از معتبرترین و در دسترس ترین مراجع می تواند مورد استفاده قرار گیرد.
سایت LinuxGuruz مجموعه کامل و مفیدی از لینک های مرتبط با IPtables را گردآوری کرده است.
یک صفحه آموزنده و جامع برای یادگیری IPtables توسط Oskar Andreasson در این آدرس جمع آوری شده است.یک صفحه پرسش و پاسخ مناسب در مورد حفاظ ها از این آدرس قابل دسترسی است.
مراجع :
[1] کارگاه آموزشی IPtables، دوره آموزشی برگزارشده توسط مرکز امنیت شبک شریف در شرکت ایزایران، مهدی صمدی، زمستان 1381.
[2] http://www.jollycom.ca/iptables-tutorial/iptables-tutorial.html
[3] http://www.securityfocus.com/infocus/1410
[4] https://www.cae.wisc.edu/fsg/linux/linux-iptables.html

1 NAT(Network Address Translation)
2 Stateless
3 Connection
4 Statefull
5 Subtype
6 Table
7 Chain
8 Accept
9 Drop
10 Filter Tale

11 IANA (Internet Assigned Number Authority) سه دسته از آدرس ها را برای استفاده شبکه های محلی اختصاص داده است. این آدرس ها نمی توانند به عنوان آدرس IP عمومی بسته ها مورد استفاده قرار گیرند. محدوه آدرس های اختصاصی عبارتند از :
(10.0.0.0 – 10.255.255.255)
(172.16.0.0 – 172.31.255.255)
(192.168.0.0 – 192.168.255.255)
12 Time To Live
13 Type of Service
14 Mark
15 Connection
16 Flag
17 Data
18 Control
19 Transparent
20 Redhat Package Manager
21 Script
22 Persist


تعداد صفحات : حجم فایل:52 کیلوبایت | فرمت فایل : .rar

بلافاصله بعد از پرداخت لینک دانلود فعال می شود