Iptables فایروال پیش فرض سیستم Linux میباشد، از قدرت بالایی بهرهبرداری میکند که پایداری بسیاری دارد که قبل از آن به اسم IPchange بود. با قدرتمند کردن و اضافه کردن بعضی از دستورات به Iptables تبدیل شد.
طریقه کار iptables: وقتی به Linux ما کانکشنی برقرار شد یا اینکه کانکشن خروجی دیگری از سیستم عامل Linux به محیط بیرون بخواهد برقرار شود این کانکشن با لیست دستورات iptables بررسی شده و با توجه به پالیسی نوشته شده در فایروال اجازه ورود یا خروج پاکت را خواهد داد و همچنین لازم به ذکر است کلی دستورات به صورت خطی بررسی شده اگر کانکشن با یکی از آنها مطابقت داشت آن دستور در مورد آن کانکشن برقرار خواهد شد اگر به هیچ کدام از دستورات نوشته شده مطابقت نداشت از دستورات پیش فرض نوشته شده در iptables تبعیت خواهد کرد.
Iptables tables and chains: هسته Linux با استفاده از امکانات Netfilter به فیلتر کردن بسته، میپردازد و اجازه میدهد بعضی از بستهها با استفاده از پسورد وارد شود و دیگر بسته اجازه وارد شدن نداشته باشند که هسته آن از Linux درست شده که در آن پنج جدول از پیش طراحی شده که شامل:
Filter: این جدول به طور پیش فرض برای مدیریت بستههای شبکه است.
NAT: برای تغییر بسته برای یک اتصال جدید کاربرد دارد مثلاً تبدیل IP اینترنت به IP شبکه داخلی و برعکس مورد استفاده قرار میگیرد.
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 ، ACCو 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
منبع: VOIPIRAN
دیدگاه خود را بنویسید