فایروال تحت شبکه لینوکسی IPtables

آشنایی و کار با فایروال تحت شبکه لینوکسی IPtables

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

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

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

برای نصب این فایروال می توانید از دستور زیر استفاده کنید اول 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

فایروال تحت شبکه لینوکسی IPtables

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

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

نکته: باید به جای آدرس 192.168.10.2 آدرس ایپی مورد نظر را قرار دهید.

نحوه بستن پورت در 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

 

فایروال تحت شبکه لینوکسی IPtables

نحوه بستن پروتکل 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 (در دستور زیر ما رنج 10.100 را تا 10.200 بلاک کردیم)

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

امیدوارم که از این آموزش لذت کافی را برده باشید.

نویسنده: مهدیس تنگسیری نژاد

نوشتن دیدگاه

آدرس ایمیل شما منتشر نخواهد شد.