021-91014618

بررسی فایروال Iptables در لینوکس

اگر مدتی است که از کامپیوتر استفاده می کنید، حتما با کلمه فایروال آشنا هستید. ما می دانیم که همه چیز از ظاهر پیچیده به نظر می رسد، اما از طریق این آموزش، می خواهیم اساس IPTable و استفاده از دستورات کاربردی در لینوکس را توضیح دهیم تا حتی اگر دانشجوی شبکه هستید یا می خواهید در شبکه ها غوطه ور شوید، بتوانید از آن بهره مند شویید.

IPTables فایروالی است که بیشتر در لینوکس استفاده می شود. برای استفاده از آن قلق هایی وجود دارد که بیان می کنیم.

IPTables چیست؟

نحوه عملکرد فایروال بسیار ساده است. فایروال با ایجاد یک مانع بین شبکه‌های امن و غیرامن، از سیستم شما در برابر بسته‌های مخرب محافظت می‌کند.

اما چگونه می‌توانیم تعیین کنیم که چه چیزهایی ایمن هستند و چه چیزهایی نیستند؟ با نصب فایروال به‌طور پیش‌فرض، شما قادر به تنظیم قوانین برای فایروال خود خواهید بود، اما برای نظارت دقیق‌تر بر روی بسته‌های ورودی و خروجی، به IPTable نیاز دارید.

IPTable ها می‌توانند برای استفاده‌های شخصی یا به‌صورت سراسری در شبکه‌ها به کار روند. با کمک IPTables، می‌توانیم مجموعه‌ای از قوانین را تعریف کنیم که به وسیله آن‌ها قادر به نظارت، مجاز کردن یا مسدود کردن بسته‌های شبکه ورودی و خروجی خواهیم بود.

به جای تمرکز بر جنبه‌های نظری، ما بر آنچه در عمل اهمیت دارد تمرکز خواهیم کرد. بنابراین، بیایید با درک اصول اولیه IPTables شروع کنیم.

درک مفهوم IPTables

هنگام بحث در مورد IPTables، باید ۳ اصطلاح را درک کنیم: جداول، زنجیره‌ها و قوانین. از آنجایی که این ها بخش های مهمی هستند، ما قصد داریم در مورد هر یک از آن ها بحث کنیم.

پس بیایید با جداول شروع کنیم.

جداول در IPTables

۵ نوع جدول در IPTables وجود دارد و هر کدام قوانین متفاوتی اعمال می کنند. با رایج ترین جدول «Filter» شروع می کنیم.

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

NAT (Network Address Translation): همانطور که از نامش پیداست، این جدول به کاربران اجازه می دهد تا ترجمه آدرس های شبکه را تعیین کنند. نقش این جدول تعیین این است که تشخیص دهند آیا باید مبدا و مقصد آدرس بسته را تغییر داد یا خیر.

Mangle Table: این جدول به ما امکان می دهد هدر IP بسته ها را تغییر دهیم. برای مثال، می‌توانید TTL (Time to Live یا به اختصار TTL به مدتی که یک بسته (packet) در سطح شبکه اعتبار دارد گفته می‌شود) را برای افزایش یا کاهش پرش‌های شبکه که بسته می‌تواند حفظ کند، تنظیم کنید. به طور مشابه، سایر هدرهای IP را نیز می توان با توجه به اولویت شما تغییر داد.

جدول RAW: کاربرد اصلی این جدول ردیابی اتصالات است؛ زیرا مکانیزمی برای علامت گذاری بسته ها برای مشاهده بسته ها به عنوان بخشی از یک جلسه در حال انجام فراهم می کند.

جدول امنیتی (Security Table): با استفاده از جدول امنیت، کاربران می توانند علائم زمینه امنیتی SELinux داخلی را روی بسته های شبکه اعمال کنند.

جدول های RAW و Security کاربرد زیادی ندارند و معمولا ۳ گزینه اول به عنوان جدول اصلی محاسبه می شوند.

از مبحث جدول ها عبور کردیم، اکنون نوبت آن است که در مورد زنجیر ها گفت و گو کنیم.

زنجیره ها در IPTables

زنجیره ها در نقاطی از مسیر شبکه رفتار می کنند که ما می توانیم قوانین را اعمال کنیم. در IPTables ما ۵ نوع زنجیره داریم و در مورد هر کدام بحث خواهیم کرد. به خاطر داشته باشید که هر نوع زنجیره ای برای هر نوع Table موجود نیست.

پیش مسیریابی (Pre-routing): این زنجیره به هر بسته ورودی پس از ورود به پشته شبکه اعمال می شود و این زنجیره حتی قبل از تصمیم گیری در مورد مسیریابی در مورد مقصد نهایی بسته پردازش می شود.

Input Chain: نقطه ای است که یک بسته به پشته شبکه وارد می شود.

Forward Chain: نقطه ای است که بسته از طریق سیستم شما ارسال شده است.

زنجیره خروجی (Output Chain): زنجیره خروجی هنگامی که از طریق سیستم شما منشا گرفته و خارج می شود به بسته اعمال می شود.

پس از مسیریابی (Post-routing): این کاملا برعکس زنجیره پیش از مسیریابی است و پس از تصمیم گیری در مورد مسیریابی برای بسته های ارسال شده یا خروجی اعمال می شود.

اکنون، تنها چیزی که برای بحث باقی می‌ماند، قوانین است و این ساده‌ترین مورد از ۳ موردی است که در اینجا بحث کرده‌ایم. بنابراین بیایید آنچه را که در بخش نظری باقی مانده است کامل کنیم.

قوانین در IPTables

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

اگر یک قانون شرط را برآورده نکرد، به قانون بعدی پرش می شود و اگر شرط را برآورده کرد، قانون بعدی با مقدار هدف مشخص می شود.

هر قانون دارای دو جزء است: جزء تطبیق و جزء هدف.

Matching Component یا جز تطبیق، شرایط مختلفی برای تعریف قوانینی هستند که می توانند با پروتکل، آدرس IP، آدرس پورت، رابط ها و هدر مطابقت داشته باشند.

Target Component یا جز هدف، اقدامی است که پس از برآورده شدن شرایط فعال می شود.

این قسمت توضیح بود و اکنون دستورات اولیه مربوط به IPTables در لینوکس را پوشش خواهیم داد.

نصب فایروال IPTables در لینوکس

در توزیع‌های لینوکس مدرن مانند Pop!_OS، این فایروال از قبل نصب شده است، اما اگر سیستم شما فاقد بسته IPTables است، می‌توانید به راحتی آن را با دستورالعمل‌های داده شده نصب کنید:

برای نصب IPTable ها بر روی توزیع های لینوکس مبتنی بر RHEL مانند Rocky Linux، AlmaLinux و CentOS Stream، از دستور dnf زیر استفاده کنید.

$ sudo dnf install iptables-services

مهم: اگر از فایروال استفاده می‌کنید، قبل از شروع نصب، باید آن را غیرفعال کنید. برای متوقف کردن کامل فایروال، باید از دستورات زیر استفاده کنید:

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
$ sudo systemctl mask firewalld

برای نصب IPTables بر روی توزیع های لینوکس مبتنی بر دبیان مانند اوبونتو و کالی لینوکس، از دستور apt زیر استفاده کنید.

$ sudo apt install iptables

پس از نصب IPTables، می توانید فایروال را با دستورات داده شده فعال کنید:

$ sudo systemctl enable iptables
$ sudo systemctl start iptables

برای نظارت بر وضعیت سرویس IPTable، می توانید از دستور داده شده استفاده کنید:

$ sudo systemctl status iptables

لینوکس

اصول اولیه دستور IPTables در لینوکس

پس از اتمام نصب، می‌توانیم با سینتکس IPTables ادامه دهیم که به شما امکان می‌دهد پیش‌فرض‌ها را تغییر دهید و به شما امکان می‌دهد طبق نیاز خود پیکربندی کنید.

سینتکس اصلی IPTables به شرح زیر است:

# iptables -t {type of table} -options {chain points} {condition or matching component} {action}

بیایید توضیح دستور بالا را بفهمیم:

جدول ها

قسمت اولt-است که می‌توانیم از میان هر ۵ گزینه جدول موجود را انتخاب کنیم و اگر قسمتt-را از دستور حذف کنید، از جدول فیلتر استفاده می‌کند زیرا نوع جدول پیش‌فرض است.

گزینه های زنجیره ای

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

A- یک قانون جدید به زنجیره در انتهای زنجیره اضافه می کند.

C- قانون را بررسی می کند که آیا الزامات زنجیره را برآورده می کند یا خیر.

D- به کاربران اجازه می دهد تا یک قانون موجود را از زنجیره حذف کنند.

F- هر قانون تعریف شده توسط کاربر را حذف می کند.

I- به کاربران اجازه می دهد تا یک قانون جدید در موقعیت مشخص شده اضافه کنند.

N- یک زنجیره کاملاً جدید ایجاد می کند.

v- هنگامی که با گزینه لیست استفاده می شود، اطلاعات دقیق را به ارمغان می آورد.

X-زنجیره را حذف می کند.

مولفه تطبیق (Matching Component)

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

Protocols -p
Source IP -s
Destination IP -d
IN interface -i
OUT interface -o

برای TCP، آن ها به شرح زیر هستند:

-sport
-dport
--tcp-flags

مولفه عمل (Action Component)

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

پرکاربردترین عمل Jump (-j) است که چندین گزینه را در اختیار ما قرار می دهد مانند:

ACCEPT: برای پذیرش بسته ها و پایان دادن به عبور استفاده می شود.

DROP: برای رها کردن بسته ها و پایان دادن به پیمایش استفاده می شود.

REJECT: این کاملا شبیه DROP است اما بسته های رد شده را به منبع ارسال می کند.

RETURN: این کار عبور از بسته را در زنجیره فرعی متوقف می کند و بسته خاص را بدون تأثیر به زنجیره برتر ارسال می کند.

هنگامی که کار با نحو تمام شد، به شما نشان خواهیم داد که چگونه می توانید از IPTables از جمله پیکربندی اولیه استفاده کنید.

فهرست کردن مجموعه فعلی قوانین IPTables

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

$ sudo iptables -L

لینوکس

اجازه/رد کردن ترافیک شبکه در پورت های خاص

در این بخش به شما نشان خواهیم داد که چگونه می توانید ترافیک شبکه را برای پورت های خاص مجاز یا رد کنید. ما برخی از پورت های شناخته شده را به شما نشان خواهیم داد تا جایی که می خواهیم مفید باشیم.

اگر می خواهید ترافیک شبکه HTTPS را مجاز کنید، باید پورت شماره ۴۴۳ را با استفاده از دستور داده شده مجاز کنیم:

$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

به طور مشابه، شما همچنین می توانید ترافیک وب HTTP را با دستور داده شده غیرفعال کنید:

$ sudo iptables -A INPUT -p tcp --dport 80 -j REJECT

توضیح گزینه های دستوری استفاده شده:

  • p- برای بررسی پروتکل مشخص شده استفاده می شود و در مورد ما TCP است.
  • dport– برای تعیین پورت مقصد استفاده می شود.
  • j- برای اقدام (پذیرفتن یا رها کردن) استفاده می شود.

کنترل ترافیک با آدرس IP

بله، شما همچنین می توانید ترافیک شبکه را از طریق یک آدرس IP کنترل کنید. نه تنها یک یا دو، بلکه دامنه آدرس های IP را نیز کنترل کنید و ما به شما چگونگی آن را نشان می دهیم.

برای اجازه دادن به یک آدرس IP خاص، از ساختار دستور داده شده استفاده کنید:

$ sudo iptables -A INPUT -s 69.63.176.13 -j ACCEPT

به طور مشابه، برای رها کردن بسته ها از IP خاص، باید از ساختار دستور داده شده استفاده کنید:

$ sudo iptables -A INPUT -s 192.168.0.27 -j DROP

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

$ sudo iptables -A INPUT -m range --src-range 192.168.0.1-192.168.0.255 -j REJECT

قانون تعریف شده توسط کاربر را حذف کنید.

گاهی اوقات ممکن است در هنگام ایجاد قوانین در نهایت اشتباه کنیم و بهترین راه برای غلبه بر این اشتباهات حذف آن ها است. حذف قوانین تعریف شده ساده ترین فرآیند در سراسر این راهنما است و برای حذف آن ها، ابتدا باید آن ها را فهرست کنیم.

برای فهرست کردن قوانین تعریف شده با اعداد، از دستور داده شده استفاده کنید:

$ sudo iptables -L --line-numbers

 

 

 

 

 

آخرین نوشته ها

تماس با ما

 کرج، شاهین ویلا، بلوار امام خمینی ، خیابان نهم شرقی ، برج شاهین ،طبقه اول واحد2

 91014618

  info@shopingserver.net

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

سبحان لطیف کار

سبحان لطیف کار

مطالب مرتبط