امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره فعالستاره فعال
 

 

در مبحث iptables شما با مفاهیم کلی و دستورات و کامند های آن و جدول های مختلف و همچنین زیر شاخه های آن آشنا می شوید.

IPTables فایروال پیش فرض سیستم لینوکس می باشد، از قدرت بالایی بهره برداری میکند که پایداری بسیاری دارد که قبل از آن به اسم IPchange بود. با قدرتمند کردن و اضافه کردن بعضی از دستورات به IPTables تبدیل شد.

طریقه کار iptables

وقتی به لینوکس ما کانکشنی برقرار شد یا اینکه کانکشن خروجی دیگری از سیستم عامل لینوکس به محیط بیرون بخواهد برقرار شود این کانکشن با لیست دستورات iptables بررسی شده و با توجه به پالیسی نوشته شده در فایروال اجازه ورود یا خروج پاکت راخواهد داد و همچنین لازم به ذکر است کلی دستورات به صورت خطی بررسی شده اگر کانکشن با یکی از آنها مطابقت داشت آن دستور در مورد آن کانکشن برقرار خواهد شد اگر به هیچ کدام از دستورات نوشته شده مطابقت نداشت از دستورات پیشفرض نوشته شده در iptable طبعیت خواهد کرد

Iptables tables and chains

هسته لینوکس با استفاده از امکانات Netfilter به فیلتر کردن بسته، می پردازد و اجازه میدهد بعضی از بسته ها با استفاده از پسورد وارد شود و دیگر بسته اجازه وارد شدن نداشته باشند
که هسته آن از لینوکس درست شده که در آن پنج جدول از پیش طراحی شده که شامل:

Filter: این جدول به طور پیش فرض برای مدیریت بسته های شبکه است

NAT: برای تغییر بسته برای یک اتصال جدید کاربرد دارد مثلا تبدیل ای پی اینترنت به ای پی شبکه داخلی و برعکس مورد استفاده قرار میگیرد

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

Raw: عمدتا برای پیکربندی معافیت در طول ردیابی اتصال در ترکیب با هدف NOTRACK است

Security: برای کنترل دسترسی اجباری قوانین شبکه مورد استفاده قرار میگیرد

Filter table جدول های فیلتر شامل

Input chain کلیه بسته های ورودی به سیستم عامل

Output chain کلیه بسته های خروجی از سیستم عامل

Forward chain کلیه بسته هایی که از طریق این سیستم عامل بخواهد فوروارد شود

NAT table جدول نت

Pre-routing بسته های شبکه را زمانی که آنها می رسند تغییر می دهد و مغمولا برای برای destination network مورد استفاده قرار میگیرد

Output تغییر میدهد بسته های تولید شده در شبکه داخلی قبل از اینکه خارج شود

Post-routing تغییر می دهد بسته ها را قبل از اینکه از شبکه خارج شوند

Mangle table جدول های منگل

Input بسته های شبکه را برای میزبان تغییر می دهد (مارک دار می کند)

Output بسته های تولید شده از شبکه را قبل از فرستادن تغییر می دهد (مارک دار می کند)

Forward تغییر میدهد (مارک دار می کند) پاکت های شبکه که می خواهد روت شود به نقطه دیگر

Pre-routing تغییر میدهد (مارک دار می کند) پاکت های شبکه را قبل از اینکه روت شوند

Post-routing تغییر میدهد (مارک دار می کند) پاکت های شبکه را بعد از اینکه روت شوند

Raw table جدول های raw

Output اجرا پاکت های که در شبکه داخلی تولید شده اند قبل از اینکه خارج شوند

Pre-routing اجرای بسته های ورودی قبل از اینکه خارج شوند

Security table جدول های Security

Input اجرا روی پاکت های که به شبکه وارد می شوند

Output اجرا روی پاکت های که از شبکه خارج می شوند

Forward اجرا روی پاکت های که از شبکه می خواهند روت شوند به جای دیگری

Iptables command قوانین و دستورهای موجود در iptables

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

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

N- برای ایجاد زنجیر جدید مورد استفاده قرار می¬گیرد که میتوان به آن یک اسم اختصاصی بدهیم

E- برای تغییر اسم زیر شاخه ساخته شده به کار میرود

X- برای پاک کردن زیر شاخه تولید شده به کار می رود

F- برای پاک کردن قوانین مورد استفاده قرار می¬گیرد.

I- برای وارد کردن دستوری خاص به یک سطر از یک زیر شاخه

L- لیست کلیه دستورات یک زیر شاخه را لیست خواهد کرد

P- برای تغییر پالیسی دیفالت استفاده می شود

R- جایگزین کردن دستوری بهجای دستور قبلی در یک زیر شاخه

Z- برای صفر کردن کلیه کانتر های داخل فایروال

Iptables parameter options

p- برای مشخص کردن نوع پروتکل مورد استفاده قرار می¬گیرد.

s- یا source– برای مشخص کردن شماره ip مبدا مورد استفاده قرار می¬گیرد.

d- یا destination– برای مشخص کردن شماره ip مقصد مورد استفاده قرار می¬گیرد.

i- یا in-interface– برای مشخص کردن کارت شبکه ورودی مورد استفاده قرار می¬گیرد.

o- یا out-interface– برای مشخص کردن کارت شبکه خروجی مورد استفاده قرار می¬گیرد.

j- مشخص کردن نحوه برخورد با بسته مورد استفاده قرار می¬گیرد. این سویچ به معنی jump بوده و به موارد DROP ، LOG ، ACCEPT و REJECT اشاره می کند.

m- برای مشخص کردن ماژول مورد استفاده قرار می گیرد.

c- این دستور شمارنده های داخل فایروال را فعال می کند که در طول وارد کردن یا اجرا کردن یا جایگزین کردن می باشد
[!] این دستور در ابتدای پارامتر های فوق دستور را به صورت منفی اجرا خواهد کرد

Saving rules

iptables-save > /etc/iptables.rules برای پشتیبان گیری تنظیمات مورد استفاده قرار می¬گیرد.

post-down iptables-save > /etc/iptables.rules برای پشتیبان گیری تنظیمات قبل از هر خاموش شدن سیستم مورد استفاده قرار می¬گیرد.

iptables-restore < /etc/iptables.rules برای بازیابی تنظیمات مورد استفاده قرار می¬گیرد.

مهم ترین و پرکاربردترین دستورات و تنظیمات iptables

پاک کردن تمام تنظیمات جاری

Iptables -F

یجاد تنظیمات عمومی و مسدود کردن همه دسترسی ها

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

مسدود کردن یک ip خاص

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

باز کردن پورت SSH برای تمامی ارتباطات ورودی

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

باز کردن پورت ssh برای یک ip یا رنج ip خاص

iptables -A INPUT -i eth0 -p tcp -s xxx.xxx.xxx.xxx/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i eth0 -p tcp -s xxx.xxx.xxx.xxx --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

باز کردن پورت http

iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

باز کردن پورت https

iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

باز کردن چند پورت بصورت یکجا

iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

باز کردن پورت برای ارتباط خروجی ssh

iptables -A OUTPUT -o eth0 -p tcp -d 192.168.101.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

باز کردن پورت https برای ارتباطات خروجی

iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

جاد امکانping از داخل به خارج

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

ایجاد امکانping از خارج به داخل

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

یجاد امکان دسترسی loopback

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

یجاد امکان دسترسی به شبکه خارجیeth1 از شبکه داخلی eth0

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

باز کردن دسترسی خروجی پورت dns

iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT

iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

ذخیره تغییرات iptables

service iptables save

 

به اشتراک بگذارید