فایروال Iptables چیست ؟ + آموزش نصب و استفاده
در این آموزش با فایروال Iptables و نحوه نصب و کارکرد ان اشنا خواهید شد، با ما همراه باشید.
آموزش و اشنایی با فایروال Iptables
همه ما نام دیوار آتش یا همان Firewall را شنیده ایم. می دانیم که فایروال برای محافظت از سیستم ما مشغول
به کار است. در سیستم عامل ویندوز دیوار آتش را با نام Firewall در قسمت کنترل پنل میبینیم. البته این
آیتم، فایروال نرم افزاری است که ما از آن استفاده می کنیم.
Iptables Firewall نام دیوار آتشی است که در لینوکس مورد استفاده قرار میگیرد. حال میخواهیم بدانیم
Iptables چیست و چگونه کار میکند.
همچنین برای اشنایی با روش های امن سازی لینوکس می توانید اموزش امنیت لینوکس را در پن تست کور مشاهده کنید.
فایروال Iptables چیست؟
در لینوکس کنترل شبکه و ورودی خروجی های آن بر عهده Netfilter است که در هسته قرار دارد. برای
ارتباط با Netfilter از پوسته کنترلی و واسط به نام Iptables استفاده میشود. Iptables به طور پیشفرض بر
روی نسخه های 6 و قبل تر از آن نصب می باشد و در نسخه های 7 به بعد رابط نرم افزاری جدید به نام
Firewalld نصب شده است.
Iptables ابزاری است برای برقراری ارتباط با Hook (قالب های Netfilter) که با استفاده از خط فرمان مجوز
ها و قوانین را اعمال میکنیم. قوانین وضع شده بر روی Iptables برای بررسی داده ها و پکت ها از قالب های
نت فیلتر استفاده میکند.
قالب های Netfilter
- NF_IP_PRE_ROUTING
- NF_IP_LOCAL_IN
- NF_IP_FORWARD
- NF_IP_LOCAL_OUT
- NF_IP_POST_ROUTING
Iptables چگونه کار می کند؟
فایروال Iptables بسته ها و داده های ورودی را بر اساس موارد زیر دسته بندی میکند :
● Tables(جداول): مجموعه ای زنجیره ها.
● Chains( زنجیره ها): مجموعه ای از قوانین.
● Rules( قوانین): مشخص کننده نوع رفتار با داده ها.
● Targets( اهداف): کار با هر داده یک هدفی دارد که باید تصمیم گیری شود چه کاری انجام میدهد.
( … و drop، Accept)
در Iptables سه نوع table داریم که هر کدام دارای زنجیره ها و قوانین خاص خودش است.
1 .Filter : این جدول وظیفه اعمال مجوزها برای ورودی/خروجی را دارد. دارای سه زنجیره ،INPUT
OUTPUT و FORWARD است
[Table = Filter < Chains = [ OUTPUT, INPUT, FORWARD
- INPUT : ترافیک ورودی به سیستم
- OUTPUT : ترافیک خروجی از سیستم
- FORWARD : ترافیک وارد شده به سیستم
2 .Nat : این جدول وظیفه اعمال مجوزها برای عملیات مسیریابی را دارد. دارای سه زنجیره ،OUTPUT
PREROUTING و POSTROUTING است.
[Table = Nat < Chains = [ OUTPUT, PREROUTING, POSTROUTING
- OUTPUT : ترافیک خروجی از سیستم
- PREROUTING : ترافیک ورودی در شبکه مقصد
- POSTROUTING : ترافیک خروجی در شبکه مبدا
3 .Mangle : این جدول وظیفه بررسی داده ها پیش از ورود به دو جدول بالا را دارد. میتوانیم بر روی header داده ها (بسته ها) تغییراتی اعمال کنیم. دارای 5 زنجیره زیر است :
[Table = Mangle < Chains = [ INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
این جدول دارای 3 هدف TTL، TOS و Mark است.
(Service of Type (TOS : مشخص کردن نوع سرویس.
(Live to Time (TTL : مشخص کردن زمان زنده بودن بسته. )یعنی اگر بسته تا تایم مشخص به
مقصد نرسید، از بین برود.
Mark : نشانه گذاری بسته ها. (برای مسیریابی و…)
اگر Iptables بر روی سیستم شما به طور پیش فرض نصب نیست می توانید از دستور زیر اقدام به نصب و یا
بروزرسانی آن کنید.
sudo apt-get install iptables
مهمترین دستورات Iptables
برای استفاده از دستورات شما باید دسترسی به root را داشته باشید تا بتوانید مجوز ها را اعمال کنید.
ابتدا خط فرمان های فایروال را توضیح میدهیم سپس به سراغ دستورات مهم آن میرویم.
- L- یا list– : لیست کردن روال ها.
- t- یا table– : انتخاب جدول مورد نظر.
- n- : نمیاش ای پی.
- v- : نمایش جزئیات در فایروال Iptables.
- j- یا jump– : اگر داده با قوانین مطابقت داشته باشد، هدف اعمال میشود.
- D- یا delete– : حذف یک یا چند قانون.
- s- یا rules-list– : لیست قوانین موجود در زنجیره.
- I- یا insert– : ایجاد و اضافه کردن قانون برای یک موقعیت مشخص.
- R- یا replace– : جایگزین کردن یک قانون در زنجیره.
- c- یا check– : چک کردن وجود قانون قبل از نوشتن دوباره آن.
- F- یا flush– : حذف تمام قوانین موجود در زنجیره مورد نظر.
- N- یا chain-new– : ایجاد زنجیره جدید توسط کاربر.
- X- یا chain-delete– : حذف زنجیره ساخته شده توسط کاربر.
- E- یا chain-rename– : تغییر نام زنجیره مورد نظر.
- P- یا policy– : ایجاد مجوز بر روی زنجیره ها.
- numbers-line– : نمایش شماره خط قانون در صورت وجود.
- A- یا append– : اضافه کردن قوانین به انتهای زنجیره.
- Z- یا zero– : صفر کردن شمارنده داده.
در صورت علاقه مند بودن به مباحث شبکه پیشنهاد میکنیم اموزش امنیت شبکه را مشاهده کنید.
دستورات فایروال Iptables
1 . نمایش وضعیت فایروال :
iptables -L -n -v
2 . تغییر وضعیت فایروال :
service Iptables stop
خاموش کردن فایروال :
service Iptables start
روشن کردن فایروال Iptables :
service Iptables restart
راه اندازی مجدد فایروال :
service Iptables stop
Chkconfing Iptables off
پس از خاموش کردن فایروال و راه اندازی مجدد سرور وضعیت Iptables به صورت قبل باقی می ماند.
3 . حذف قوانین از فایروال Iptables
iptables -L INPUT -n –line-numbers
iptables -L OUTPUT -n –line-numbers
iptables -L OUTPUT -n –line-numbers | less
iptables -L OUTPUT -n –line-numbers | grep 202.54.1.1
با استفاده از این دستورات، ابتدا شماره خط را بدست می آورید سپس با استفاده از خط و یا ip بدست آمده
اقدام به حذف آن روال می کنید.
Iptables -D INPUT 5
یا
Iptables -D INPUT -s 127.0.0.1 -j DROP
4 . حذف تمام قوانین :
Iptables -F
5 . مسدود کردن ترافیک OUTPUT، INPUT و FORWARD :
Iptables -P INPUT DROP
Iptables -P OUTPUT DROP
Iptables -P FORWARD DROP
آموزش دستورات کاربردی دیگر Iptables
6 .مسدود کردن ترافیک ورودی برای IP یا رنج ip :
Iptables -A INPUT -s 127.0.0.1 -j DROP
Iptables -A INPUT -s 127.0.0.0./24 -j DROP
دستور اول مسدود کردن ترافیک ورودی یک IP
دستور دوم مسدود کردن ترافیک ورودی رنج IP مورد نظر
7 . مسدود کردن ترافیک خروجی برای IP :
Iptables -A OUTPUT -d 127.0.0.1 -j DROP
Iptables -A OUTPUT -d 127.0.0.0./24 -j DROP
دستور اول مسدود کردن ترافیک خروجی یک IP در فایروال Iptables
دستور دوم مسدود کردن ترافیک خروجی رنج IP مورد نظر
8 . Ping از داخل به خارج :
iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
9 . Ping از خارج به داخل :
iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT
10 . اجازه استفاده از چند پورت در ورودی خروجی :
Iptables -A INPUT -P tcp -m multiport –dports 22,80,443 -j ACCEPT
Iptables -A OUTPUT -P tcp -m multiport –dports 22,80,443 -j ACCEPT
11 . جستجو در قوانین :
Iptables -L INPUT -v -n | grep 127.0.0.1
12 .ذخیره کردن اطلاعات :
service Iptables save
امیدواریم از این آموزش لذت برده باشید موفق و پیروز باشید.