ورود/ایجاد حساب کاربری
   منوی اصلی
· خانه
· لیست کاربران
· جستجو
· آمار مشاهدات
· آرشیو مقالات


- شرح
· راهنمای نویسندگان
· درباره ما

   همکاری با نشریه
در صورتی که مایل به همکاری با نشریه هستید، می‌توانید در لیست پستی نشریه عضو شده و در جریان امور قرار گیرید. برای اطلاعات بیشتر، اینجا کلیک کنید.

   کاربران
سردبیر
هیچ مدیر کمکی حاضر
همکاران
هیچ مدیر کمکی حاضر
اعضا:
جدیدترین:جدید امروز:0
جدیدترین:جدید دیروز:0
جدیدترین:مجموع:2471
جدیدترین:جدیدترین:
ufumenarayu
اعضا:حاضر
اعضا:اعضا:0
مهمان‌ها:مهمان‌ها:14
مجموع:مجموع:14
کاربران حاضر
هیچ کاربر حاضری وجود ندارد

   ورود کاربران




 


 برای ورود مشکل دارید؟
 ثبت نام کاربران جدید

آشنایی با IPTABLES بخش پنجم

(1268 مجموع کلمات موجود در متن)
(8835 بار مطالعه شده است)  نسخه چاپی

آشنایی با iptables بخش پنجم

iptables matches

Matchها شرایط خاصی را در داخل بسته تعیین می‌کنند که باید یا درست باشد یا غلط. یک rule می‌توانند حاوی چندین Match باشد. مثلا ما می‌خواهیم بسته‌هایی را تطبیــق دهیم کـــه از یک آدرس IP خاصی در شبکه و از port خاصی به بـــالا آمده باشد. اگر هر کدام از matchهای یـک rule نادرست باشد، آن rule اشتباه بوده و rule بعدی تست می‌شود تا زمانی که تمام matchهای یک rule با بسته‌ی مورد نظر مطابقت کند.

در اینجا matchها را به پنج دسته تقسیم می‌کنیم:


۱) Generic Matchها که در تمام ruleها می‌توانند استفاده شوند.

۲) TCP Matchها که تنها به بسته‌های TCPاعمال می‌شوند.

۳) UDP Matchها که به بسته‌های UDP اعمال می‌شوند.

۴) ICMP Matchها که تنها برای بسته‌های ICMP اعمال می‌شوند.

۵) Matchهای مخصوص مانند state، owner، limit و غیره.


Generic Matches


Match

-p, --protocol

مثال

# iptables -A INPUT -p tcp

توضیح

این match برای چــک کردن پروتکل‌های معـــین مثــل TCP ،UDP و ICMP استــفــاده می‌شود. این پروتکل‌ها بــایــد در فــایــل /etc/protocols/ مشخـص شده باشند. همچنین به جای ذکر نام پروتکل می‌توان از یک عدد صحیح به جـــای آن نیز استفاده کرد. مثلا ICMP با عدد ۱، TCP با عدد ۶ و UDP بــا عدد ۱۷. در نهـــایت می‌تـــوانیم از کلمه‌ی کلیدی ALL برای پروتکل های ICMP ،TCP و UDP نیز استفاده کرد که برای آن عدد صفر را در نظر گرفته‌اند.

Match

-s, --src, --source

مثال

# iptables -A INPUT -s 192.168.1.1

توضیح

این match به آدرس IP مبدا مربوط می‌شود. شکل اصـلی آن برای تطبیق آدرس IP تنها مانند مثال بالا مورد استفاده قرار می‌گیـــرد. همچنـــین می‌توانیم از شــکل آدرس IP و ماسک شبکه استفاده کنیم. برای ایـــن کــار هم می‌توانیم ماسک شبکه را به صورت عمومی و هم به صورت شکل CIDR نشان دهیم. مثـلا 255.255.255.0/192.168.0.0 را بـــه صــورت 24/192.168.0.0 نشـــان دهــیــم. همجنین می‌توانیم از علامت ! برای معکوی کردن match ها استفاده کرد.

Match

-d, --dst, --destination

مثال

# iptables -A INPUT -d 192.168.1.1

توضیح

این match برای تطبیق بسته‌ها بر پایه‌ی آدرس IP مقصد استفاده می‌شود.

Match

-i, --in-interface

مثال

# iptables -A INPUT -i eth0

توضیح

این match برای رابطی که بسته از طریق آن وارد شده است استفاده می‌شود. توجه شود که این انتخاب تنها برای زنجیره‌های INPUT ،FORWARD و PREROUTING قــــانونی محسوب می‌شود. در صورت استفاده از زنجیره‌های دیگر با یک پیغام error مواجه می‌شوید.

Match

-o, --out-interface

مثال

# iptables -A FORWARD -o eth0

توضیح

این match برای تــطابق بسته‌هایی کــــه از رابط خـاصی قصد خروج دارند، استفاده می‌شوند. این match برای زنجیره‌های OUTPUT ،FORWARD و POSTROUTING استفاده می‌شود.

Match

-f, --fragment

مثال

# iptables -A INPUT -f

توضیح

این match برای تطابق قسمت‌های دوم و سوم یک بسته‌ی پراکنده استفاده می‌شود. هدف از این کار آن است که هیچ راهی برای تعیین شماره پورت های مبدا و مقصد، انواع ICMP و چیزهای دیگر در بسته‌های پراکنده وجود ندارد. همچنین این بسته‌ها برای حمله‌های ترکیبی استفاده می‌شوند.



TCP matches

این بخش matchهایی را تشـــریح می‌کند که بـــه طور انحصاری برای جریان های TCP مورد استفاده قرار می‌گیرد. برای استفاده از این matchها باید گزینه p tcp- را حتما در سمت چپ matchهای مخصوص پروتکل در خط دستور ذکر کنید.

Match

--sport, --source-port

مثال

# iptables -A INPUT -p tcp --sport 22

توضیح

برای تطبیق بسته‌های مبنی بر شماره پورت مبدا اســتفاده می‌شود. این match همچنین می‌تواند از نام سرویس به جای شماره پورت استفاده کند. اگر شمــاره نام سرویس را مشخص کنید، نام آن باید در فایل etc/services/ ذکر شده باشد تــــا iptables بتواند شماره پورت را بیابد. البته اگر شماره پورت را ذکر کنید، rule شما سریعتر load می‌شــــود. در ضمن با استفاده از این match می‌توانید برای تطبیق محدوده‌ای از IPها استفاده کنید. بــــرای مثال sport 22:80 شـــماره پورتهــای بــیــن ۲۲ تــا ۸۰ را شامل می‌شــــود و source-port :80 شماره پورتهای بین ۰ تا ۸۰.

Match

--dport, --destination-port

مثال

# iptables -A INPUT -p tcp --dport 22

توضیح

این match برای تطابق بسته‌های TCP مطابق پورت مقصد استفاده می‌شود.

Match

--tcp-flags

مثال

# iptables -p tcp --tcp-flags SYN,FIN,ACK SYN

توضیح

این match برای تطابق TCP flag در بسته‌ها استــــفاده می‌شود. match ابتـــدا لیستی از flagها را برای مقایسه می‌گیرد، سپـــس لیستی از flagهایی را کـــه باید 1 باشند را برمی‌دارد. محتویات این لیست ها(مانند مثال) بایــد به وسیله‌ی کاما از هم جدا شوند. matchها پـرچم های SYN، ACK، FIN، RST، URG و PSH را می‌شناسند و کلمات ALL و NONE را نیز می‌شناسند. tcp-flags ALL NONE-- بدین معـناست که تمام پرچم های TCP را چک کرده و اگر هیچ کدام set نشده باشند عمل تطبیق را انجام دهد.

Match

--syn

مثال

# iptables -p tcp --syn

توضیح

این match از ipchains به یادگـــار مانده است. ایــــن match زمانی عمـل تطبیق را انجام می‌دهد که بیت SYN ست شده باشد و بیت های ACK و RST ست نشده باشند.

Match

--tcp-option

مثال

# iptables -p tcp --tcp-option 16

توضیح

ایـــن Match بـــرای بسته‌های مبنی بر TCP option تطبیق داده می‌شود. tcp option بخش مخصوصی از سرآیند TCP می‌باشد. این بـــخـــش شامل ۳ فیلد متفاوت می‌باشد. اولین فیلد ۸ بیت طــول دارد و به ما می‌گوید کدام Option در این جریان به کار رفـــته است، فیلد دوم نیز با طول ۸ بیت به ما می‌گوید که طول فیلد Option چقدر است.



UDP matches

Match

--sport, --source-port

مثال

# iptables -A INPUT -p udp --sport 53

توضیح

این match برای تطابق بسته‌ها مبنی بــر پورت منبع UDP آنها استفاده می‌شود. این match هم پورتهای تنها و هم محدوده‌ای از پورتها را پشتیبانی می‌کند.

Match

--dport, --destination-port

مثال

# iptables -A INPUT -p udp --dport 53

توضیح

این match هم مشابه بالایی کار می‌کند.



ICMP matches

بسته‌های ICMP از انواع بدون اتصال هستند، اما عمــر آنـهـا نسبت بـه بسته‌های UDP کمتر است. این بسته‌ها معمولا بــرای گـــزارش خطا و پیگیری اتصالات و مشــابه اینها مورد استفاده قرار می‌گیرند. ICMP پروتکلی وابسته به IP نیست، بلکه پروتکلی است که پروتکل IP را تکمیل می‌کند و بــرای گـــزارش خطاها مورد استفاده می‌گیرد. سرآیند این بسته‌ها نسبت به بسته‌های IP کوچکتر است، اما در بعضی موارد بـــا آن تفاوت دارد. مهمتــرین خصوصیت آن این است که به ما می‌گوید بسته مربوط به چیست. برای این بسه‌ها تنها یک match وجود دارد که در زیر تشریح می‌شود:

Match

--icmp-type

مثال

# iptables -A INPUT -p icmp --icmp-type 8

توضیح

این match برای تشخـــیص نوع ICMP به کار می‌رود. نــــوع ICMP هم به وسیله‌ی شماره‌ی عددی شان و هم به وسیله‌ی نامشان قابل شناسایی هستند. مقادیــــر عـددی در RFC 792 مشخص شده‌اند. برای گرفتن لیست کامل نام و مقدار دستور iptables --protocol icmp --help را اجرا کنید.



Explicit matches

این دسته‌از matchها آنهایی هستند که باید صریحا توسط m- یا match-- به کـار بــرده شـــونــد. بعضی از این matchها مخصوص پروتکل‌ها و بعضی دیگر ممـکن است که ربطی به پروتکل‌ها نداشــته باشد. این قبیل match ها می‌تواند از نوع NEW یا ESTABLISHED یا RELATED باشنـد. بعضی دیگر هم ممکن است بـــرای تســــت کـردن یـــا اهداف آزمایشی و یا تنها برای نشان دادن آنچه که iptables بــــا آن همخوانی دارد به کــــار روند. بــه همیـــن دلیـــل از پـرداختن به آنها در اینجا خودداری می‌کنیم. برای یافتن لیست کاملی از این matchها می‌توانید به ] مراجعه کنید.



PDF Version

مترجم: ایرج هدایتی shotorbaan@yahoo.co.uk
منبع : http://iptables-tutorial.frozentux.net/iptables-tutorial.html

[1] http://iptables-tutorial.frozentux.net/iptables-tutorial.html#EXPLICITMATCHES

تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.