کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

یکی از ابزار های قوی برای فایروال لینوکس استفاده از قابلیت IPTABLE است. فرقی نمی‌کند که شما در زمینه استفاده از سیستم عامل لینوکس تازه کار هستید یا یک مدیر و کاربر حرفه ای لینوکس باشید. راه اندازی iptables و کار با iptables در لینوکس برای شما مفید است. در ادامه آموزش iptables ما به شما نشان خواهیم داد که چگونه می‌توانید این برنامه را پیکربندی کنید.

آموزش کار با iptables

برای کار با iptables شما باید به یک سیستم یا سرور با سیستم عامل لینوکس دسترسی داشته باشید. فرآیند کار با iptables برای افراد مبتدی ممکن است کمی گیج کننده باشد اما اگر یکی از مدیران حرفه ای شبکه و یا کاربران حرفه ای لینوکس باشید فرآیند کار با iptables برای شما آسان خواهد بود. در ادامه با به شما نحوه آموزش کار با iptables و دستورات آن را یاد خواهیم داد تا بتوانید به راحتی فایروال لینوکسی خود را تنظیم نمایید.

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

آموزش کار با iptables و تنظیم فایروال لینوکس

 آموزش iptables

قبل از آموزش iptables شما باید با مفهوم این واژه آشنا شده و درباره آن اطلاعات مناسبی را کسب کنید. در واقع iptables یکی از ابزارهای خط فرمان لینوکس در زمینه دیوار آتش امنیتی است. در این خط فرمان شما می توانید از زنجیره ای از دستور ها برای مسدود کردن و یا مجاز کردن بخش و یا کل ترافیک ورودی و خروجی استفاده کنید.

در حالت کلی وقتی که یک اتصال در لینوکس به وجود می آید فایروال در هنگام کار با iptables به دنبال یک قانون و خط دستور می گردد که بتواند اتصال را با آن مطابقت دهد. اگر این قانون و خط دستور در هنگام راه اندازی iptables به وجود آمده باشد که از آن استفاده می‌کنند اما اگر چنین قانونی و خط دستوری وجود نداشته باشد فایروال به صورت پیش فرض اتصال را برقرار می کند.

در آموزش iptables شما باید به خوبی با زنجیر ها آشنایی داشته باشید. در iptables سه زنجیر وجود دارد

  1. زنجیره input

از این زنجیره برای بررسی اتصال های ورودی استفاده می شود. سلامتی اتصال ها در این زنجیره بررسی می شود. در هنگام کار با iptables اگر کاربر سعی کند SSH را به رایانه یا سرور شما وارد کن د iptables سعی خواهد کرد که آدرس IP را با قواعد و دستورات خود منطبق کرده و آن‌ها را در لیست ورودی قرار دهد.

  1. زنجیره Forward

از این زنجیره برای اتصال به روتر ها استفاده می شود. در حال عادی در هنگام کار با iptables اطلاعات ورودی ها به مقصد نهایی ارسال می شود اما ممکن است هدف نهایی یک روتر تنظیم شده باشد. البته این احتمال خیلی کم وجود دارد اما با این حال شما می توانید از این بخش برای این منظور استفاده کنید. شما در این حالت اطلاعات را به سمت یک روتر مخصوص هدایت می کنید و از آن روتر به مقصد های خود ارسال می شوند.

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

آموزش کار با iptables و تنظیم فایروال لینوکس

 

در تصویر بالا شما مشاهده می کنید که در هنگام کار با iptables هیچ گونه خطا و پیغام هشداری برای داده های ورودی و فوروارد شده و خروجی ها نمایش داده نشده است. در این حالت اتصال ها در سلامت کامل به سر می‌برند و هیچ محدودیتی برای داده ها ایجاد نشده است. در این تصویر مشاهده می‌کنید که اطلاعات ورودی بر اساس حجم 11 گیگابایت بوده که بعد از بررسی و پردازش به مقدار 17 گیگابایت تبدیل شده است و در واقع 5 گیگابایت قوانین و دستورات به آن اضافه شده است. البته همان‌طور که مشاهده می کنید زنجیره Forward هیچ فرآیند روی اطلاعات پردازش شده نداشته است و دلیل آن این است که هیچ عملیاتی روی اطلاعات انجام شده و فقط از سرور مخصوص آن عبور کرده است.

  1. زنجیره Output

از این زنجیره برای بررسی اتصالات خروجی استفاده می شود. در این حالت اگر بخواهید پینگ مثلاً  آدرس مانند howtogeek.com را بررسی کنید این زنجیره برای شما بررسی می‌کند که آیا قوانین مربوط به بررسی قبل از ارسال و دریافت بسته ها، روی اطلاعات اجرا می شود یا خیر. در واقع قبل از اینکه بسته های شما به سمت خروجی بروند باید قوانین خاص که در هنگام کار با iptables آن‌ها را ایجاد کرده اید روی اطلاعات پردازش شوند.

 فرآیند راه اندازی iptables

برای راه اندازی iptables باید به این نکته توجه کنید که تقریباً در تمامی مدل های لینوکس فرآیند راه اندازی iptables از ابتدا انجام شده است و شما فقط باید بسته نصبی آن را مجدد فراخوانی کنید. برای اینکار می توانید از دستور زیر استفاده کنید.:

sudo apt-get install iptables

گزینه های رابط کاربری در هنگام راه اندازی iptables وجود دارد اما به عنوان یک کاربر لینوکس باید در هنگام راه اندازی iptables بتوانید از خط دستور و فرمان های دستوری استفاده کنید. نکته مهم در هنگام راه اندازی iptables و پیکربندی iptables استفاده و تعیین قوانین در SSH سرور است و در این حالت باید به شدت به دستوراتی که می خواهید انجام شود دقت کنید چرا که با یک دستور اشتباه سرور می تواند اتصال شما را به صورت دائم قفل کند و تا زمانی که دسترسی فیزیکی به سرور نداشته باشد اتصال شما به سرور ممکن نباشد.

 کار با iptables و تنظیم قوانین خاص:

رفتار پیش فرض زنجیره ها و قوانین آن‌ها

قبل به از شروع به کار با iptables باید مشخص کنید که می خواهید رفتار این سه زنجیره به چه صورت باشد؛ به عبارت دیگر باید مشخص کنید که اگر اتصال انجام شده با هیچ یک از این سه حالت تطابق نداشت چه اتفاقی رخ دهد.

برای اینکه زنجیره ها در خط فرمان لینوکس با ترافیک ها و اتصال های نامرتبط چه رفتاری داشته باشد باید در ابتدا آن‌ها را فراخوانی کنید. برای اینکار باید از دستور

iptables –L

استفاده کنید. در تصویر زیر مشاهده می کنید که ما برای اینکه خروجی بهتری داشته باشید از دستور grep استفاده کرده ایم و با توجه به تصویر زیر زنجیره ها ترافیک ها و اتصال های نامربوط را قبول می‌کنند.

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

آموزش کار با iptables و تنظیم فایروال لینوکس

مدیران شبکه ها بار ها به صورت پیشفرض در سرور های لینوکس از این دستور استفاده می کنند در واقع آن‌ها بیشتر مایل هستند که اتصال های ناخواسته قبول شده و ترافیک ها مورد قبول واقع شود.

دستور مناسب برای پذیرش ترافیک های ناخواسته به صورت زیر است:

 

iptables –policy INPUT ACCEPT

iptables –policy OUTPUT ACCEPT

iptables –policy FORWARD ACCEPT

البته باید به این نکته توجه داشته باشید که این دستورات خیلی کلی بوده و در هنگام کار با iptables شما می توانید قواعد پیچیده تری را به دستورات iptables اضافه کنید. به عنوان مثال شما می توانید یک پورت خاص را ببندید و یا ورودی های یک آی پی خاص را برای همیشه مسدود کنید.

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

آموزش کار با iptables و تنظیم فایروال لینوکس

در حالت کلی شما می توانید فرآیند های زیر را برای اتصال های ناخواسته ایجاد کنید:

  1. اتصال را قبول کنید

در این حالت شما باید اتصال را قبول کرده و ورود اطلاعات آن را رها کنید. در این صورت اطلاعات به راحتی وارد سیستم شما شده و هیچ پردازشی روی آن انجام نمی شود.

  1. اتصال را رد کنید

در این حالت شما می توانید اتصال و ورود اطلاعات به داخل سیستم را در هنگام راه اندازی iptables قطع کرده و آن را به صورت کامل مسدود کنید. اگر نمی خواهید یک منبع خاص به سیستم شما وصل شود می توانید از این روش برای مسدود کردن آن استفاده کنید. شما حتی می توانید یک پیغام نیز برای ورودی مسدود شده ارسال کنید و دلیل خود را برای عدم پذیرش و مسدود کردن آن به کاربر اعلام کنید. در این حالت کاربر متوجه خواهد شد که توسط فایروال مسدود شده است.

  1. مجاز یا مسدود کردن اتصال های خاص یا بخشی از اتصال ها

در این حالت شما می توانید با پیکربندی فایروال خود و راه اندازی iptables به راحتی آدرس های خاص را مسدود کنید و یا روی آن‌ها محدودیت ایجاد کنید. در هنگام کار با iptables شما می توانید آدرس ها و ای پی ها و پورت ها را مسدود کنید. به عنوان مثال شما می توانید اتصالات را به صورت Drop پیکربندی کنید و بر اساس نیاز خود به زنجیره ها و دستورات اعمال شده در هنگام کار با iptables، اتصالات را قبول یا درخواست آن‌ها را رد کنید.

در مثال زیر روش مسدود کردن یک آی پی خاص با استفاده از قابلیت Drop در هنگام کار با iptables نشان داده شده است.:

iptables -A INPUT -s 10.10.10.10 -j DROP.

در مثال زیر اتصال از یک رنج آی پی خاص مسدود شده است در این حالت در هنگام راه اندازی iptables شما می توانید یک رنج خاص از ای پی ها را مسدود کنید. برای این کار می توانید از کد دستوری زیر استفاده کنید:

 

iptables -A INPUT -s 10.10.10.0/24 -j DROP

یا از کد زیر استفاده کنید:

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

 

همچنین کد زیر به شما نشان می دهد که می توانید از اساس یک نوع اتصال خا مانند اتصال SSH یک آی پی را مسدود کنید.:

iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -j DROP

شما می توانید در این دستور به جای SSH از هر نوع پروتکل دیگری نیز استفاده کنید. برای مثال نحوه مسدود کردن اتصال SSH از هر آی پی آدرس با استفاده از کد زیر امکان پذیر است:

iptables -A INPUT -p tcp –dport ssh -j D

کار با iptables و استفاده از اتصالات دو طرفه

بسیاری از پروتکل ها به ارتباطات و اتصال های دو طرفه نیاز دارند. به عنوان مثال اگر بخواهید اتصالات SSH را روی سیستم خود راه اندازی کنید باید به زنجیره های ورودی و خروجی یک قاعده و قانون جدید اضافه کنید. اگر بخواهید فقط ورود از طریق SSH به سیستم شما مجاز باشد نیاز به اضافه کردن این قانون جدید نیست.

در این حالت باید از قابلیت محدودیت اتصال در هنگام کار با iptables به وجود می آید. این قابلیت به شما این امکان را می دهد که نیاز به برقراری ارتباط دو طرفه وجود دارد و یا فقط سیستم مجاز به برقراری ارتباط یک طرفه است. در مثال زیر در یک اتصال از طریق SSH برای یک رنج آی پی مجاز است اما اتصال از طریق SSH برای یک رنج آی پی در محدوده یک پورت خاص مجاز نیست:

iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -m state –state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp –sport 22 -d 10.10.10.10 -m state –state ESTABLISHED -j ACCEPT

در هنگام کار با iptables باید به این نکته توجه داشته باشید که اجرای دستورات تا زمانی که سرور روشن است و در حال اجرا است انجام می شود اما وقتی که سرور خاموش شود این دستورات از بین می روند. برای رفع این مشکل شما باید این دستورات را در سرور ذخیره کنید.

کار با iptables در لینوکس، آموزش کدها و دستورات لازم برای کار در لینوکس

آموزش کار با iptables و تنظیم فایروال لینوکس

 

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

به عنوان مثال

 

  • در لینوکس اوبونتو باید از دستور زیر استفاده شود:

sudo /sbin/iptables-save

 

  • در لینوکس رد هد باید از دستورات زیر استفاده شود:

/sbin/service iptables save

یا

/etc/init.d/iptables save

 

 پاک کردن دستورات در هنگام کار با iptables:

برای پاک کردن دستورات می توانید از دستور flush استفاده کنید.

iptables -F

 

iptables در لینوکس بسیار کاربرد دارد. در واقع تنظیم فایروال لینوکس با استفاده از iptables به راحتی امکان پذیر تر است و با استفاده از iptables در لینوکس شما می توانید اتصال ها به سیستم و سرور خود را به راحتی مدیریت کنید و وردی و خروجی اطلاعات را زیر نظر داشته باشید.

سؤالات متداول:

  1. چرا در هنگام کار با iptables باید قوانین ایجاد شده برای SSH دقت کنیم؟

به این دلیل باید دقت کنیم که یک دستور اشتباه می تواند دسترسی ما به سرور را قطع کند و برای ادامه کار و ای برطرف کردن محدودیت ها باید به صورت فیزیکی در کنار سرور مستقر شویم و از راه نزدیک سرور را کانفیگ و راه اندازی مجدد کنیم.

  1. آیا می توان یک پورت خاص را در هنگام راه اندازی iptables مسدود کرد؟

بله شما می توانید در هنگام کار با iptables یک پورت خاص را به صوت ویژه مسدود کنید حتی این پورت می تواند در یک رنج آی پی باشد. در حالت کلی این رنج ای پی مجاز به ورود به سیستم بوده ولی ورود اطلاعات از طریق یک پورت خاص ممکن نباشد.

  1. از iptables برای چه منظور استفاده می شود؟

Iptables در لینوکس به عنوان یک از ابزار های مهم در فایروال استفاده می شود. شما با استفاده از این ابزار می توانید اطلاعات ورودی و خروجی به سیستم و یا سرور را مدیریت کنید.

No votes yet.
Please wait...

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    منو اصلی