iptables چیست ؟ iptables یک برنامه لینوکسی میباشد که برای config فیلترینگ packet و مجموعه قوانین برای linux 2.4.x و ورژن های بعدی میباشد و ابزاری بسیار مفید برای ادمین های شبکه است. پکیج iptables شامل ip6tables هم است که برای کانفیگ فیلترینگ پکت ipv6 مورد استفاده قرار میگیرد.
این مقاله به شما کمک میکند که بفهمید firewall در سیستم عامل linux چگونه کار میکند و اینکه iptables در linux چیست؟ فایروال سرنوشت پکت های ورودی و خروجی در سیستم را تعین میکند. iptables در حقیقت یک فایروال rule based میباشد و به صورت پیش فرض روی اکثر سیستم عامل ها نصب است و به صورت پیش فرض بدون هیچ قانونی راه اندازی شده است.
iptables در kernel 2.4 موجود بوده است و قبلا ipchains یا ipfwadm نامیده میشده است. iptables در حقیقت یکی از نخستین ابزاریست برای صحبت با kernel و تصمیم گیری در filter پکت ها. این مقاله به شما کمک میکند تا کامندهای اساسی iptables را یادبگیرید و همچنین قصد داریم قانون های عملی iptables را شرح دهیم که ممکن است شما هم به آنها نیاز داشته باشید.
سرویس های متفاوت برای پروتکل های متفاوت استفاده میشوند. مانند :
iptables مورد استفاده برای IPv4.
ip6tables مورد استفاده برای IPv6.
arptables مورد استفاده برای ARP.
ebtables مورد استفاده برای Ethernet frames..
پیش نیازها :
iptables نیازمند یک kernel هست که قابلیت filter کردن پکت (ip_tables) را داشته باشد. تمامی release های کرنل 2.4 به بالا شامل آن هستند.
قابلیت های اصلی :
فایل های اصلی iptables :
/etc/init.d/iptables
اسکریپت init برای start/stop/restart و ذخیره مجموعه قوانین.
/etc/sysconfig/iptables
مکانی که مجموعه قوانین ذخیره میشوند.
/sbin/iptables
باینری
سه جدول زیر در iptables موجود هستند :
در حال حاضر 4 عدد chain کلی وجود دارد :
INPUT :
chain پیش فرض برای ورود به سیستم
OUTPUT :
chain پیش فرض برای خروج از سیستم
FORWARD :
chain پیش فروض که پکت ها از طریق آن به اینترفیس دیگر ارسال میشوند
RH-Firewal-1-INPUT :
chain coustom که توسط کاربر تعریف میشود
توجه : فایل های اصلی بالا ممکن است در لینوکس ubuntu کمی متفاوت باشند.
طریقه start,stop,restart کردن فایروال iptables :
برای استارت کردن iptables به هنگام Boot سیستم دستور زیر را اجرا کنید :
ذخیره مجموعه قوانین iptables با دستور زیر انجام میشود. زمانی که سیستم reboot یا restart شود سرویس iptables قوانین موجود را لغو یا ریست میکند. دستور زیر مجموعه قوانین iptables را به صورت پیش فرض در فایل /etc/sysconfig/iptables/ ذخیره میکند و قوانین اجرا شده یا restor میشود در مواردی که iptables قوانین را لغو یا به اصلاح (flus) کند :
با دستور زیر وضعیت iptables را چک میکنیم :
L- :
مجموعه قوانین را list میکند.
v- :
verbose میکند.
n- :
به فرمت numeric نمایش میدهد.
دستور زیر قوانین iptables را به همراه شمارنده خط نمایش میدهد. با کمک گزینه line-numbers-- شما میتوانید قوانین را حذف یا اضافه کنید :
flushing یا حذف قوانین iptables با دستور زیر انجام میشود :
در حقیقت این دستور تمامی قوانین را از جداول پاک میکند. قبل از اجرا کردن این کامند از مجموعه قوانین تان backup بگیرید. برای حذف یا اضافه کردن قوانین ابتدا نگاهی به قوانین موجود در chain ها می اندازیم. دستور زیر باید مجموعه قوانین را در chain های input و output به همراه شمارنده خطوط نمایش دهد که کمک خواهد کرد بتوانیم قوانین را حذف یا اضافه کنیم :
اگر بخواهیم قانون شماره 5 را از chain input حذف کنیم دستور زیر را باید اجرا کنیم :
برای وارد کردن یا اضافه کردن قانون به chain input بین rule شماره 4 و 5 دستور زیر را اجرا میکنیم :
در این مقاله هدف ما آموزش کاربرد و استفاده پایه از iptables برای مبتدیان بود. شما ممکن است قوانین پیچیده ای را بعد از درک خوبی از iptables و tcp/ip ایجاد کنید و چقدر خوبه که شما هم تجربیات تون را برای ما به اشتراک بگذارید.
همچنین توصیه میشود مقالات زیر را مطالعه کنید :
دستورات مفید Firewalld برای تنظیم و مدیریت فایروال در لینوکس
تنظیمات FirewallD در لینوکس RHEL/CentOS 7 و Fedora 21
نحوه اضافه کردن یک Service یا Port به FirewallD
ترفندها و دستورات iptables
نحوه بستن/مسدود کردن ping در فایروال لینوکس
نحوه ی نصب و راه اندازی فایروال CSF در RHEL/CentOs و Fedora
آموزش نصب و کانفیگ pfsense 2.3.2 firewall/router
استفاده از آموزش های منطقه لینوکسی ها با کمی تغییر در عنوان و متن نوشته در سایت های مشابه به هیچ وجه مورد قبول منطقه لینوکسی ها نمی باشد.
موفق باشید
محمد هابیلی
ادامه دارد ....
این مقاله به شما کمک میکند که بفهمید firewall در سیستم عامل linux چگونه کار میکند و اینکه iptables در linux چیست؟ فایروال سرنوشت پکت های ورودی و خروجی در سیستم را تعین میکند. iptables در حقیقت یک فایروال rule based میباشد و به صورت پیش فرض روی اکثر سیستم عامل ها نصب است و به صورت پیش فرض بدون هیچ قانونی راه اندازی شده است.
iptables در kernel 2.4 موجود بوده است و قبلا ipchains یا ipfwadm نامیده میشده است. iptables در حقیقت یکی از نخستین ابزاریست برای صحبت با kernel و تصمیم گیری در filter پکت ها. این مقاله به شما کمک میکند تا کامندهای اساسی iptables را یادبگیرید و همچنین قصد داریم قانون های عملی iptables را شرح دهیم که ممکن است شما هم به آنها نیاز داشته باشید.
سرویس های متفاوت برای پروتکل های متفاوت استفاده میشوند. مانند :
iptables مورد استفاده برای IPv4.
ip6tables مورد استفاده برای IPv6.
arptables مورد استفاده برای ARP.
ebtables مورد استفاده برای Ethernet frames..
پیش نیازها :
iptables نیازمند یک kernel هست که قابلیت filter کردن پکت (ip_tables) را داشته باشد. تمامی release های کرنل 2.4 به بالا شامل آن هستند.
قابلیت های اصلی :
- لیست کردن محتوای مجموعه قوانین فیلتر کردن پکت ها
- اضافه حذف و تغییر رول ها در مجموعه قوانین فیلتر پکت ها
فایل های اصلی iptables :
/etc/init.d/iptables
اسکریپت init برای start/stop/restart و ذخیره مجموعه قوانین.
/etc/sysconfig/iptables
مکانی که مجموعه قوانین ذخیره میشوند.
/sbin/iptables
باینری
سه جدول زیر در iptables موجود هستند :
- Filter
- NAT
- Mangle
در حال حاضر 4 عدد chain کلی وجود دارد :
INPUT :
chain پیش فرض برای ورود به سیستم
OUTPUT :
chain پیش فرض برای خروج از سیستم
FORWARD :
chain پیش فروض که پکت ها از طریق آن به اینترفیس دیگر ارسال میشوند
RH-Firewal-1-INPUT :
chain coustom که توسط کاربر تعریف میشود
توجه : فایل های اصلی بالا ممکن است در لینوکس ubuntu کمی متفاوت باشند.
طریقه start,stop,restart کردن فایروال iptables :
کد PHP:
# /etc/init.d/iptables start
# /etc/init.d/iptables stop
# /etc/init.d/iptables restart
کد PHP:
#chkconfig --level 345 iptables on
کد PHP:
#service iptables save
L- :
مجموعه قوانین را list میکند.
v- :
verbose میکند.
n- :
به فرمت numeric نمایش میدهد.
کد PHP:
[root@linux-zone ~]# iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
6 396 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 5 packets, 588 bytes)
pkts bytes target prot opt in out source destination
کد PHP:
[root@linux-zone ~]# iptables -n -L -v --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 51 4080 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 45 packets, 5384 bytes)
num pkts bytes target prot opt in out source destination
flushing یا حذف قوانین iptables با دستور زیر انجام میشود :
کد PHP:
[root@linux-zone ~]# iptables -F
کد PHP:
[root@linux-zone ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
کد PHP:
[root@linux-zone ~]# iptables -L OUTPUT -n --line-numbers
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
کد PHP:
[root@linux-zone ~]# iptables -D INPUT 5
کد PHP:
[root@linux-zone ~]# iptables -I INPUT 5 -s ipaddress -j DROP
همچنین توصیه میشود مقالات زیر را مطالعه کنید :
دستورات مفید Firewalld برای تنظیم و مدیریت فایروال در لینوکس
تنظیمات FirewallD در لینوکس RHEL/CentOS 7 و Fedora 21
نحوه اضافه کردن یک Service یا Port به FirewallD
ترفندها و دستورات iptables
نحوه بستن/مسدود کردن ping در فایروال لینوکس
نحوه ی نصب و راه اندازی فایروال CSF در RHEL/CentOs و Fedora
آموزش نصب و کانفیگ pfsense 2.3.2 firewall/router
استفاده از آموزش های منطقه لینوکسی ها با کمی تغییر در عنوان و متن نوشته در سایت های مشابه به هیچ وجه مورد قبول منطقه لینوکسی ها نمی باشد.
موفق باشید
محمد هابیلی
ادامه دارد ....