PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : iptables



damashi
February 15th, 2012, 04:19
iptables یکی از مهم‌ترین ارکان مدیریت سرور است. ابزاری که سن تولدش در دنیای متن باز (Open Source) فاصله زیادی با شروع نهضت متن‌ باز ندارد. Iptables نام ابزاری است که قادر به اجرای هر سیاستی در سطح لایه ترانسفر و تا حدودی لایه‌های پایین‌تر و بالا‌تر شبکه را دارد اما شهرت و محبوبیت اصلی این نرم‌افزار سطح هسته به انعطاف بی حد و حصر آن در لایه ترانسفر مربوط می‌شود آنجا که حرف از روتینگ بسته‌ها (Packets) و وضعیت آنها است.
Iptables توسط تیم netfilter طراحی شد. در ابتدا به علت ساختار زنجیره‌ای طراحی آن، به نام ipchain شهرت یافت (هم اکنون هم در سیستم عامل BSD از این نسخه که حال برای خود انشعابی خاص شده است استفاده می‌شود) اما بعدها نام iptables بر آن گذاشته شد. این دیوار آتش (Firewall) در ابتدا تنها می‌توانست سیاست‌های بسیار محدودی فقط روی بسته‌های ورودی اعمال کند اما به مرور زمان قسمت‌های ماژول مانندی به آن اضافه شد.
کار با iptables بر خلاف تصوری که در قدم اول در ذهن هر خواننده‌ای شکل می‌گیرد بسیار ساده است. همه چیز در قالب زنجیره‌هایی شکل می‌گیرد که به هم پیوسته می‌شوند. سه زنجیره اصلی عبارتند از INPUT،OUTPUT و FORWARD. این سه زنجیره بر حسب نامشان تمام بسته‌های ورودی را به دست شما می‌سپارند تا هر سیاستی که می‌خواهید بر آنها اعمال کنید.
فرض کنید می‌خواهید تمام بسته‌های ICMP را مسدود کنید؛ برای این کار باید به سراغ زنجیره INPUT برویم که تمام بسته‌های ورودی با تمام Payload وHeader شان به محض ورود به سیستم عامل به آنجا می‌روند، برویم. همه چیز کاملا ساده است :

Iptables –A INPUT –p icmp –j DROP
سوییچ A تعیین کننده نوع بسته‌های مورد نظر است سوییچ p نشان دهنده پروتکل بسته‌های ورودی است که در اینجا بسته‌های ICMP که همان بسته‌های PING هستند، انتخاب شده است و در آخر سوییچ j است که مخفف کلمه jump (به معنی پرش) است. خوب حال کمی تخصصی‌تر به این دستور نگاه می‌کنیم. در دستور بالا ما ۲ زنجیره (chain) اصلی داریم: یکی به نام DROP و یکی INPUT. همان طور که از نام زنجیره DROP پیدا است، وظیفه آن، از رده خارج کردن بسته‌ها و جلوگیری از رسیدن آنها به فرآیند مورد نظر را دارد. ناگفته پیدا است که می‌توانیم بسته ورودی را به انتخاب خودمان به هر زنجیره‌ای بفرستیم. به عنوان مثال در زیر چند خط دستور می نویسیم که تمام ترافیک پورت ۸۰ را به یک زنجیره از پیش تعریف نشده می‌‌برد و اگر ترافیک از مبدا خاصی بود اجازه ادامه را از آن می‌گیریم در غیر این صورت بسته به هدف خود می‌رسد:


iptables –N SUN-ARMY-CHAIN
iptables –A SUN-ARMY-CHAIN –s 192.168.1.20 –j DROP
iptables –A SUN-ARMY-CHAIN –j ACCEPT
iptables –A INPUT -p tcp –source-port 80 –j SUN-ARMY-CHAIN

خوب خط به خط دستورها را می‌خوانیم :
در دستور اول یک زنجیره به نام SUN-ARMY-CHAIN ایجاد می‌شود سپس می‌گوییم هر بسته ورودی اگر از آدرس مبدا (source)ذکر شده ارسال شده باشد، از رده خارج می‌شود؛ در غیر این صورت تایید شده و به هدف می‌رسد.
حال شاید برای شما این سوال شود که اگر ما تعدادی شرط داشتیم و بسته ورودی در هیچ کدام از شرط‌ها صدق نکند چه اتفاقی می‌افتد پاسخ این است که هیچ بسته ورودی وجود ندارد که عضو یکی از سه زنجیره اصلی نباشد.
خوب در مرحله بعد باید بگویم که هر زنجیره یک سیاست کلی دارد که در صورتی که یک بسته در هیچ کدام از شروط صدق نکند سیاست اصلی دربارهٔ آن به اجرا در می‌آید که به صورت پیش تعریف شده قبول همه بسته‌ها است.
زنجیره‌های اصلی
[LEFT] REJECTاین زنجیره بسته را از رده خارج کرده و یک پیام برای صاحب بسته ارسال می‌کند:.
DROP: این زنجیره هم مانند زنجیره قبل عمل می‌کند با این تفاوت که پیام برای ارسال‌کننده ارسال نمی‌شود.
LOG: این زنجیره بسته ورودی خود را لاگ می‌کند.
ACCEPT: بسته اجازه عبور پیدا می‌کند.

Aries
January 20th, 2013, 10:48
با اجازه من این لینک راهنمای iptable رو اینجا اضافه میکنم، باشد که رستگار شویم :))
منو که رستگار کرد :)
Iptables Basic Guide :Iptables Basic Guide - Softpedia (http://news.softpedia.com/news/Iptables-Basic-Guide-35969.shtml)

shingo
January 20th, 2013, 12:43
ممنون از هردو

mahleghaaa
August 23rd, 2013, 12:31
سلام
من دارم برای پایان نامم یک کاری مثل حالت facebook رو انجام میدم که وقتی مثلا face book بخواد باز بشه جاش یه هانی پات باز میشه که پیوند داده است. من این کار را با لینوکس دارم انجام میدم و در virtual box . سوالم اینه؟ در روتر لینوکسی اومدم با دستور route del -net 192.168.65.0/24 پینگ های 65.0 را بستم و با route add -net 192.168.65.0 gw 192.168.66.3 پینگ های 65 را به 66.3 هدایت کردم ولی این دستور با reset کردن از بین میره . میدونم با iptables save میشه بصورت دائم ذخیره کرد ولی من مراحل دقیقش رو نمیدونم. محبت میکنید راهنمایی کنید؟ ممنونم .

InterServer.ir
August 26th, 2013, 11:01
من تنها دنبال یک دستور خاص هستم که پیداش نکردم تا امروز و این غیر فعال کردن گزارشات iptables هست که وقتی سرور ddos میشه مجبورم میکنه اول اینترنت سرور رو قطع کنم تا از کنسول بتونم کانفیگ مورد نظر رو انجام بدم معمولا تو SSH مشکلی نیست و نمیاد ولی کنسول سرور اذیت میکنه کسی کدش رو داره؟ یک بار دیتا سنتر برام انجام داد ولی نگفت چطور ! تو KVM سرور های اختصاصی واقعا مکافاته!