دیجی کانفیگ
مرجع تخصصی آموزش وبمستر

IPtables چیست؟ آموزش نصب و کار با فایروال IPtables لینوکس

اُکسین گستر

- تبلیغات -

IPtables یک فایروال قدرتمند رایگان برای سیستم عامل لینوکس است که امکان اعمال قوانین و محدودیت های خاص برای تبادل اطلاعات در شبکه را برای مدیر سرور فراهم می کند، فایروال IPtables در عین سادگی بسیار توانمند است و اجازه کنترل ترافیک شبکه در لایه چهارم شبکه (transport) و همچنین لایه های بالاتر و پایین تر را به ما می دهد.

در این مقاله دیجی گانفیگ شما را با فایروال IPtables آشنا می کنیم و روش نصب و کار با IPtables را نیز به شما عزیزان آموزش خواهیم داد، همراه ما باشید.

معمولا iptables در زمینه های مختلفی مثل کنترل پکت های ورودی و خروجی سیستم، کنترل و ایجاد دسترسی ها و محدودیت و… استفاده می شود. لازم به ذکر می باشد که فایروال IPtables محدود به پروتکل IPv4 بوده و نوع های دیگر این فایروال برای استفاده غیر از IPv4 به اسم های زیر می باشند:

  • IP6tables: استفاده برای پروتکل IPv6
  • arptables: استفاده برای پروتکل ARP

IPtables چیست؟ آموزش نصب و کار با فایروال IPtables لینوکس

برای نصب این فایروال می توانید از دستور زیر استفاده کنید اول repository سیستم را اپدیت می کنیم و سپس اقدام به نصب آن می کنیم.

sudo apt update
sudo apt install iptables

توضیح چند سوییچ این ابزار:

  • s : برای مشخص کردن IP آدرس
  • i : برای مشخص کردن اینترفیس یا پورت شبکه مورد نظر
  • p : برای مشخص کردن پروتکلی که عمل فیلترینگ روی آن انجام بشود برای مثال TCP ,UDP ,ICMP
  • j : برای مشخص کردن عملیاتی که بر روی این رول انجام بشود، برای مثال اجازه ورود یا خروج ترافیک شبکه

syntax دستوری این فایروال به این صورت می باشد:

iptables -A <chain> -i <interface> -p <protocol {udp/tcp} > -s <source> --dports <port> -j <target>

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

sudo iptables -L -n -v

فعال کردن ترافیک ورودی پورت ها:

SSH{22} ,https {443} ,http{80} ,telnet {23}
به این صورت رول ها را تعریف می کنیم:
IPtables -A INPUT -p tcp --dports 22 -j ACCEPT

IPtables -A INPUT -p tcp --dports 23 -j ACCEPT

IPtables -A INPUT -p tcp --dports 443 -j ACCEPT

IPtables -A INPUT -p tcp --dports 80 -j ACCEPT

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

sudo iptables -A INPUT -s 192.168.10.2 -j DROP

کامندی به منظورت بلاک کردن یک IP address و دسترسی نداشتن به سیستم ما (درصورت استفاده به منظور بلاک کردن ترافیکی خاص برای مثال TCP به این شکل عمل می کنیم و از سوییچ -p که برای مشخص کردن پروتکل است استفاده می کنیم)

sudo iptables -A INPUT -p tcp -s 192.168.10.2 -j DROP

نکته: باید به جای آدرس ۱۹۲.۱۶۸.۱۰.۲ آدرس ایپی مورد نظر را قرار دهید.

نحوه بستن پورت در IPtables (در این دستور ترافیک خروجی سیستم ما به پورت مورد نظر بسته می شود)

iptables -A OUTPUT -p tcp --drop port -j DROP

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

پست های مرتبط
iptables -A INPUT -p tcp --drop port -j DROP

نحوه بلاک کردن ترافیک خروجی به سمت یک سرور و یا سایت خاص (برای مثال اگر ما می خواهیم کاربران شبکه به سایت facebook.com دسترسی نداشته باشند به شکل زیر عمل می کنیم)

Host Facebook.com

Whois <Facebook IP address> | grep CIDR

IPtables -A OUTPUT -p tcp -d <Facebook range IP address> -j DROP

نحوه بستن پروتکل ICMP به منظور اینکه دیگران نتوانند از سیستم ما ping بگیرند:

iptables -A INPUT -p icmp -i eth0 -j DROP

نحوه ذخیره کارهایی که روی iptables انجام داده ایم درون یک فایل:

iptables-save > /home/$USER/Desktop/file.rulse

در دستور بالا به جای $USER باید یوزر خود را وارد کنید و مسیر دلخواه خود که برای مثال ما در داخل desktop با فایلی یه اسم file.rules ذخیره کردیم.

غیرفعال کردن ارسال ایمیل از سیستم شما (می توانید پورت های پروتکل SMTP را با دستور زیر غیرفعال کنید)

iptables -A OUTPUT -p tcp --dports 25,456,587 -j REJECT

بلاک کردن یک رنج IP (در دستور زیر ما رنج ۱۰.۱۰۰ را تا ۱۰.۲۰۰ بلاک کردیم)

iptables -A INPUT -m iprange --src-range 192.168.10.100-192.168.10.200 -j DROP

بلاک کردن تمامی ترافیک های ورودی به سیستم:

IPtables -A INPUT -j DROP

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

IPtables -A OUTPUT -j DROP

نکته: بعد از زدن این دستور شما هیچ ارتباطی به سمت بیرون نخواهید داشت.

برای حذف رول ها و قوانین مشخص شده در IPtables از سوییچ زیر استفاده می کنیم:

-F ( Flush )
IPtables -F

 

منبع howtogeek
اُکسین گستر

- تبلیغات -